在您的网络服务器上运行 SQL Server 是好、坏还是无关紧要?
我使用的是 Server 2008 和 SQL Server 2005,但我认为这对这个问题并不重要。
在您的网络服务器上运行 SQL Server 是好、坏还是无关紧要?
我使用的是 Server 2008 和 SQL Server 2005,但我认为这对这个问题并不重要。
对于小型网站,这并没有什么区别。但是,随着负载的增加,它的扩展性真的很差,而且比你想象的要快:
如果你能负担得起,花几块钱买第二台服务器可能会更好,也许使用 PostgreSQL。由于许可成本,一台 IIS 服务器和一台 PostgreSQL 的成本与 IIS + SQL Server 的成本差不多……
较大的商店可能不会认为这是最佳实践……但是,如果您不处理每秒数百个请求,则可以将它们放在一个盒子上。
事实上,对于小型应用程序,您会在后端看到更好的性能,因为数据不必通过网络传输。一切都与规模有关。
请记住,数据库服务器会消耗内存。这是硬敲学校的一个重要教训:如果您决定在与您的 Web 服务器相同的机器上运行 SQL Server 2005(这就是您在问题中提到的设置),请确保您进入 Sql Server Management Studio 并这样做:
如果您不这样做,SQL Server 最终将占用您服务器的所有 RAM 并无限期地挂起。这将导致您的服务器或多或少地溅射和死亡。如果您不知道这一点,排除故障可能会非常令人沮丧。
我已经这样做了好几次了。如果您拥有大型公司的基础设施并且无法扩展,那么您不会这样做,但这对很多事情都很好。
这真的取决于你的网络服务器和你的 sql 服务器正在做多少工作。
如果没有更多信息,我怀疑你会得到任何有用的答案。
如果您的 Web 服务器是可公开访问的,那么从安全角度来看,这是一个非常糟糕的主意。
尽管从路由、防火墙、端口、身份验证等角度来看,它使很多事情变得更加困难,但分离是好的。当您的数据库服务器在 Web 服务器上运行时,如果您的 Web 服务器受到威胁,那么您的 sql 服务器也会受到威胁。
当您将它们放在单独的盒子上时,您已经提高了一点。
要保护您的 Web 服务器和数据库服务器,还有很多工作要做,但为什么要让它变得比需要的更容易呢?
我会说最好在同一台服务器上运行它们,直到它成为一个问题。这样一来,您就可以为自己节省一些金钱和时间。一旦该站点成功并需要进行一些架构更改,它应该已经为自己付出了代价。
记得备份:)
这将取决于服务器的预期负载。对于小型站点,完全没有问题(如果配置正确)。对于大型站点,您可能需要考虑将负载分布在不同的服务器上:Web 服务器、文件服务器、数据库服务器等。
我一遍又一遍地看到这个问题。正确的答案是将 SQL Server 放在一台机器上,将 IIS(Web 服务器)放在另一台机器上。您的钱将用于 SQL Server 机器,因为必须购买正确的驱动器系统和 RAM 以支持高效的服务器,但 Web 服务器可以是一个大大缩小且价格更便宜的机器,只需一个镜像驱动器集。