为 Web 应用程序分配单独的 SQL 数据库?还是将两个 Web 应用程序托管在同一个 SQL 上?

为 Web 应用程序分配单独的 SQL 数据库?还是将两个 Web 应用程序托管在同一个 SQL 上?

好的,我的 Hyper-V Server 2012 看起来像这样:我们当前有 2 个 VM 在生产中,一个运行 SharePoint 2010,另一个托管 SharePoint 的 SQL Server 2008 R2。

我们正准备添加另一台虚拟机来托管我们网站的电子商务网店。我找到了一个开源的虚拟机,它使用 MSSQL Server(nopCommerce)。我的问题是:这里的 SQL 服务器角色的最佳实践是什么?我是否应该使用我们现有的 SQL Server(当前托管 SharePoint)来同时托管两个数据库?或者我应该在 WebStore VM 上安装 SQL Server 的本地实例,这样我最终会得到 2 个专用于 SharePoint 的 VM 和 1 个专用于 Web Store 的 VM?或者我是否应该为 Web Store 创建另一个 SQL Server VM,这样我就有 2 个用于 SharePoint 的 VM 和 2 个用于 Web Store 的 VM?(这对我来说似乎资源昂贵。)

我们还有其他考虑:我们的库存跟踪系统目前作为 SharePoint 上的 Access Web-App DB 托管。我们希望我们的库存数据能够填充 Web 商店。从我的 Google 搜索来看,将 SQL 数据库链接在一起似乎不是什么大问题,而且这种情况经常发生。但我还不熟悉 SQL 最佳实践,我不知道这是否更适合将数据库保存在同一台服务器上。

答案1

这个问题没有正确答案,只有适合你的,如果我们不了解您的具体情况,我们就无法真正帮助您解决这个问题。

将所有数据库放在一台大型服务器上可以减少管理开销,简化备份,并且可以独立于其他服务器升级 SQL 服务器。所有 IOPS 都集中在一个地方,因此您可以升级一台服务器来改进许多不同的应用程序。

但是,在单个服务器上拥有多个大型应用程序可能会有问题,因为如果单个数据库超出了单个服务器的大小(例如大型 Sharepoint 安装),那么您的其他数据库可能会缺乏资源,然后您必须努力将它们分离出来。

将应用程序服务器和 SQL 服务器放在一起可以简化配置,并且您无需担心故障点。如果您想在电子商务商店非常繁忙时提高其性能,但不关心内部 SharePoint,那么您只需增加单个应用程序即可。使用完全独立的虚拟机(假设这些机器是虚拟的),灾难恢复/高可用性会更简单。

目前,SQL Server 许可是按核心进行的,并且我相信你可以每个核心有多个实例,所以如果它们都位于同一台服务器上,则可能没有什么可以节省许可成本。

我们将两者混合在一起 - 某些东西都包含在单个虚拟机中,但较大的东西有单独的专用 SQL 服务器,而其他较小的东西有单独的共享 SQL 服务器。

这完全取决于您想要管理什么。

相关内容