拥有多个 SQL Server 2005 实例而不是只有一个带有前缀数据库的实例的成本是多少(CPU 或内存方面)?
一家公司有三个应用程序提供商。他们每个人都将安装一个应用程序,并且每个人都需要两个或三个数据库。他们应该都使用同一个实例还是每个提供者都应该使用它自己的命名实例?
一种或其他设置是否有任何强有力的理由?
拥有多个 SQL Server 2005 实例而不是只有一个带有前缀数据库的实例的成本是多少(CPU 或内存方面)?
一家公司有三个应用程序提供商。他们每个人都将安装一个应用程序,并且每个人都需要两个或三个数据库。他们应该都使用同一个实例还是每个提供者都应该使用它自己的命名实例?
一种或其他设置是否有任何强有力的理由?
在同一硬件上安装单独实例的唯一有力理由是,如果您有非常严格的安全隔离要求。否则总是最好只有一个实例。一个实例可以针对您面临的负载更好地优化所有硬件资源。多个实例不会相互通信,它们会重叠内存、I/O 和 CPU 负载,从而导致性能下降。
此外,单个实例比单独的实例更易于管理、监控和故障排除。
如果您将 SQL Server 分解为单独的实例(或者可能是单独的虚拟机),则优点是:
更好的资源限制。SQL 2008 的资源调控器是一个好的开始,但仍然没有那么细粒度,尤其是在限制 IO 方面。使用虚拟服务器,您可以在虚拟机级别限制 CPU、内存和 IO,从而即使在旧版本的 SQL Server 上也可以限制资源。
更容易的性能升级和降级。如果需要扩展一个虚拟机,例如它的应用程序突然变得更流行,您可以将其 VMotion 移动到更强大的机器上而不会中断。另一方面,如果您使用多个实例,则您正在寻找一个耗时且劳动密集型的安装。
更灵活的中断窗口- 如果您将所有数据库都放在一个操作系统上(多个 SQL 实例),那么您必须进行大量协调才能完成 Windows 补丁。如果它们被分解到不同的虚拟客人上,那么您可以在对每个客人(及其匹配的数据库)最方便的时候进行修补。
更好的安全限制。如果一个 SQL Server 遇到问题并且第三方需要参与故障排除,您可以授予他们操作系统级别的权限,而不必担心他们会对安装在盒子上的其他 SQL Server 做什么。
应用程序兼容性问题较少。某些应用程序与 SQL Server 的命名实例不兼容。
不过,这并不是所有的独角兽和彩虹。多实例和/或虚拟服务器方法的一些缺点包括:
我与 SQL Server 专家 Kevin Kline 和 Ron Talmage 进行了关于整合与虚拟化的网络广播。不过,需要注册。
如果您想走这条路,我建议将实例分离到不同的硬件上,而不是在同一台机器上运行单独的实例。如果这些实例中的每一个都打算被锤击,我宁愿它全部锤击一个实例,而不是在同一个盒子上锤击三个实例,增加的开销涉及保持这些实例。
将应用程序保存在单独的实例上。这样,提供者就无法看到彼此的工作。他们可能会更喜欢这种方式,因为他们会将他们的应用程序视为专有信息。此外,他们可能需要对数据库进行不同的设置(例如排序规则)。
这样做的缺点是实例将需要更多内存。
如果任何应用程序的负载很重,则可能需要将其放在自己的服务器上,或者至少放在它自己的物理独立磁盘卷上。通常,单独的实例比单独的数据库服务器的 VM 更可取。