MS SQL 服务器:单个或多个实例?

8 performance sql-server

拥有多个 SQL Server 2005 实例而不是只有一个带有前缀数据库的实例的成本(CPU 或内存方面)是多少?

一家公司拥有三个应用程序提供商。他们每个人将安装一个应用程序,每个人都需要两个或三个数据库。他们应该都使用相同的实例还是每个提供者都应该使用它自己的命名实例?

一种或其他设置是否有任何充分的理由?

Rem*_*anu 6

在同一硬件上安装单独实例的唯一充分理由是,如果您有非常严格的安全隔离要求。否则最好只有一个实例。单个实例可以更好地针对您面临的负载优化所有硬件资源。多个实例不会相互通信,它们会重叠内存、I/O 和 CPU 负载,从而导致性能下降。

此外,单个实例比单独的实例更易于管理、监控和故障排除。


Bre*_*zar 5

如果将 SQL Server 拆分为单独的实例(或者可能是单独的虚拟机),则优点是:

更好的资源限制。SQL 2008 的资源调控器是一个好的开始,但仍然不够细粒度,尤其是在限制 IO 方面。使用虚拟服务器,您可以在虚拟机级别限制 CPU、内存和 IO,从而即使在旧版本的 SQL Server 上也能限制资源。

更容易的性能升级和降级。如果需要扩展一台虚拟机,比如它的应用程序突然变得更受欢迎,您可以将其 VMotion 到更强大的机器上,而不会中断。另一方面,如果您正在使用多个实例,那么您正在寻找一种耗时且劳动密集型的安装。

更灵活的中断窗口- 如果您的所有数据库都在一个操作系统上(多个 SQL 实例),那么您必须进行大量协调才能进行 Windows 补丁。如果它们被拆分到不同的虚拟来宾上,那么您可以在对每个来宾(及其匹配的数据库)最方便的时候进行修补。

更好的安全限制。如果一个 SQL Server 遇到问题并且第三方需要参与故障排除,您可以授予他们操作系统级别的权限,而不必担心他们会对安装在盒子上的其他 SQL Server 做什么。

应用程序兼容性问题较少。某些应用程序与 SQL Server 的命名实例不兼容。

不过,并不是所有的独角兽和彩虹。多实例和/或虚拟服务器方法的一些缺点包括:

  • 可能更昂贵 - 您必须为虚拟化层付费,并且根据您的某些软件的许可方式,您可能需要为此支付不同的费用。某些实用程序根据主机上的 CPU 数量获得许可,并非所有 CPU 都可以分配给 SQL Server。
  • 可能更困难的故障排除 - 一些供应商喜欢将矛头指向虚拟化层。
  • 更多操作系统管理 - 您添加的每个操作系统都意味着更多的管理和维护。

与 SQL Server 专家 Kevin Kline 和 Ron Talmage进行了关于整合与虚拟化网络广播。不过,这需要注册。


The*_*TXI 2

如果您想走这条路,我建议将实例分离到不同的硬件上,而不是在同一台计算机上运行单独的实例。如果这些实例中的每一个都打算被锤击,我宁愿它全部锤击一个实例,而不是在同一个盒子上锤击三个实例,而这会增加保持这些实例运行的开销。