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

我们计划使用三个不同的数据库部署电子商务解决scheme,所有这些数据库都将托pipe在MS SQL Server 2008 R2中。 整个堆栈将托pipe在VMWare环境中(两台具有并行虚拟机设置的物理机器)。

我所面临的问题是,是否只将三个数据库托pipe在SQL Server的一个实例中,或者将它们分隔成多个虚拟机。 我可以看到一些额外的成本,作为多个虚拟机的缺点(更多的许可费用,内存中的多个操作系统副本),我可以看到更好的分离作为多个虚拟机(CPU,IO,安全)的优势。

由于供应商在数据库中是相同的,所以我的主要问题是我能获得多lessCPU / IO分配的控制权。 特别是:如果将所有三个数据库放到一个虚拟机上,会对一个数据库产生不良的查询的可能性,从而使性能下降?

编辑回复DaveH / Thirster42:

该堆栈旨在在两台物理机器上进行复制,使用数据库之间的集群。 IO是一个潜在的瓶颈,虽然我们打算购买托pipe公司提供的性能最高的SAN空间。 不同的数据库之间的负载会有所不同,因为它是一个新的系统,所以仍然很难猜测。 我们正在谈论的CMS数据库,微软商务服务器数据库和客户销售跟踪数据库的快餐定购网站每月约300万页面浏览量。 我们期望在销售和交叉销售分析中广泛使用,以及在客户数据库中进行一些复杂的客户分析查询(这是令人害怕的)。

我真的无法预见从三个独立虚拟机的性能收益,主要是因为我猜他们会在同一个主机上,因此仍然会争夺磁盘I / O。 另外,单独的虚拟机的任何查询,通过数据库将不得不击中其他vms。 分开虚拟主机也意味着更多的开销。 每个虚拟机意味着更多的主机开销,更多的开销每个单独的操作系统。 这些都是你可以分配给一个vm的所有资源。

这取决于利用率,以及需要增加多less。 在VMware中垂直扩展(增加CPU和内存)只能这么做。 内存中的多个O / S副本不一定适用,因为VMware将在VM之间共享内存 。

[注意]:由于某些原因,http链接不工作,所以这里是关于内存共享的一个小的描述的链接: http : //www.cdhtalkstech.com/2008/11/03/memory-sharing- – VMWare的有它和最别人鸵鸟政策部分-1 /

我很好奇你为什么要在两个ESX主机上部署SQL集群? 你有VirtualCenter吗? 所以,总结一下,在单个虚拟机上运行3个DB是很好的,直到你需要扩展。 然后我会考虑把它们拆分出来,并且可能把我的ESX主机放到一个集群中,并启用HA,DRS,也许可以容错。 :d

祝你好运!