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

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

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

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

是否有充分的理由采用某种设置?

答案1

在同一硬件上安装单独实例的唯一重要原因是,如果您有非常严格的安全隔离要求。否则,最好只有一个实例。一个实例可以更好地优化所有硬件资源以应对您面临的负载。多个实例彼此之间不通信,并且它们重叠内存、I/O 和 CPU 负载,导致性能下降。

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

答案2

如果将 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 一起进行有关整合与虚拟化的网络广播。但是,需要注册。

答案3

如果您打算采用这种方式,我建议将实例分离到不同的硬件上,而不是在同一台机器上运行单独的实例。如果这些实例中的每一个都打算受到重击,我宁愿全部重击一个实例,也不愿在同一台机器上重击三个实例,并增加维护这些实例的开销。

答案4

将应用程序放在单独的实例上。这样,提供商就看不到彼此的工作。他们可能更喜欢这种方式,因为他们会将他们的应用程序视为专有信息。此外,他们可能需要在数据库上进行不同的设置(例如排序规则)。

这样做的缺点是实例将需要更多的内存。

如果任何应用程序负载过重,则可能需要将其放在自己的服务器上,或者至少放在自己的物理上独立的磁盘卷上。通常,对于数据库服务器,单独的实例比单独的虚拟机更可取。

相关内容