MS SQL Server:一个或多个虚拟机上有多个数据库吗?

MS SQL Server:一个或多个虚拟机上有多个数据库吗?

我们计划使用三个不同的数据库部署电子商务解决方案,所有数据库均托管在 MS SQL Server 2008 R2 中。整个堆栈将托管在 VMWare 环境中(两台物理机,并行设置 VM)。

我的问题是,是否只将三个数据库托管在一个 SQL Server 实例中,还是将它们分成多个 VM。我可以看到一些增加的成本是多个 VM 的缺点(更多的许可费用、内存中的多个操作系统副本),我可以看到更好的分离是多个 VM 的优势(CPU、IO、安全性)。

由于各个数据库的供应商相同,我的主要问题是我能对 CPU/IO 分配获得多少控制权。具体来说:将所有三个数据库放在一个虚拟机上是否会导致对一个数据库的查询不佳,从而降低所有三个数据库的性能?

编辑回复 DaveH/Thirster42:

该堆栈旨在在两台物理机器上复制,使用数据库之间的集群。IO 是一个潜在的瓶颈,尽管我们打算购买托管公司提供的最高性能 SAN 空间。不同数据库之间的负载会有所不同,而且由于它是一个新系统,因此仍然很难猜测。我们讨论的是 CMS 数据库、MS Commerce Server DB 和一个快餐订购网站的客户销售跟踪数据库,该网站每月的页面浏览量约为 300 万次。我们预计追加销售/交叉销售分析将被广泛使用,并且客户数据库上会有一些复杂的客户分析查询(这很可怕)。

答案1

说实话,我无法预见拥有三个独立虚拟机会带来多大的性能提升,主要是因为我猜它们将位于同一台主机上,因此仍将争夺磁盘 I/O。此外,使用独立虚拟机时,跨数据库的任何查询都必须访问其他虚拟机。独立虚拟机还意味着更多的开销。每个虚拟机都意味着主机上的开销更大,每个独立操作系统的开销也更大。这些都是您可以分配给一个虚拟机的资源。

答案2

这取决于利用率以及您需要扩展的程度。VMware 中的垂直扩展(添加 CPU 和内存)只能达到这个程度。内存中的操作系统的多个副本不一定适用,因为VMware 将在虚拟机之间共享内存

[旁注]:由于某种原因,http 链接无法工作,因此这里是关于内存共享的简短描述的链接:http://www.cdhtalkstech.com/2008/11/03/memory-sharing-–-vmware 有它而其他公司没有-第 1 部分/

我很好奇您为什么要在两个 ESX 主机上部署 SQL 集群?您有 VirtualCenter 吗?总而言之,在需要扩展之前,在单个 VM 上运行 3 个 DB 是不错的选择。然后我会考虑将它们拆分出来,并可能将我的 ESX 主机放在一个集群中,并启用 HA、DRS 和容错功能。:D

祝你好运!

相关内容