SQL Server:什么是命名实例和默认实例?


35

什么是命名实例和默认实例?它们之间有什么区别?为什么使用它们?

Answers:


30

据微软有关命名与默认

客户端应用程序连接到Microsoft SQL Server 2005实例以使用SQL Server数据库。每个SQL Server实例由一组具有独特设置的独特服务组成。目录结构,注册表结构和服务名称都反映了您在安装过程中标识的特定实例名称。

实例可以是默认的未命名实例,也可以是命名实例。在默认实例中安装SQL Server 2005时,不需要客户端指定实例名称即可建立连接。客户端只需知道服务器名称。

命名实例由计算机的网络名称加上您在安装过程中指定的实例名称来标识。客户端在连接时必须同时指定服务器名称和实例名称。

默认情况下,除非您指定实例名称,否则SQL Server将安装在默认实例中。但是,除非在安装过程中强制执行默认安装,否则SQL Server Express始终会安装在命名实例中。


17

另外,您只能安装一个默认实例(未命名实例),但可以安装许多命名实例。

许多第三方软件通常会使用默认的命名实例,尽管他们可能没有提及。从上面的答案中可以清楚地看到原因,标准版本默认情况下安装未命名实例,而Express版本默认情况下安装命名实例。

从这个角度了解差异是很重要的,因为如果您正在运行2或3个DB Server,则可能永远无法连接到正确的版本。因为第三方软件在您认为默认实例是它尝试连接的SQLEXPRESS实例时正在寻找它。如果您不知道如何连接到命名实例与未命名实例,则可以大大增加故障排除时间。

因此,如果要连接到命名或未命名版本,请遵循以下准则。

MY-MACHINE-NAME\SQLEXPRESS  /* named version - correct */
MY-MACHINE-NAME             /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */

请注意,即使默认实例具有名称,也不能通过其名称引用它!


5

除了Brett G发布的解释外,以下是使用它们的一些原因:

  • 您可以使用不同版本的SQL来拥有不同的实例(即,默认情况下使用SQL 2008,命名实例使用SQL 2005)
  • 关注点分离,无论是与您的应用程序或安全性相关联的东西
  • 不同的开发环境
  • 不同的应用程序环境(即本地与第三方)

使用它们的各种原因。:P并不意味着它总是一个好主意


5

另一个实际的不同:SQL2005及更高版本允许您在每个系统上安装16个或更多实例。由于许可是按物理CPU,按SQL Server的每次安装(而不是按实例!)进行的,因此这意味着您最多可以运行16个SQL Server 2005实例,而无需多花一分钱。

鉴于每个插槽的CPU许可证价格可以达到$ 15000(!),这对于具有16个内核和256GB内存的大型安装来说是必须具备的。


1

您还可以设置内存上限并为每个实例分配限制处理器使用率。您还可以为“需要”系统管理员权限的供应商编写的应用程序创建实例,因此不会使其他应用程序面临风险。


0

最好的原因之一是数据库分离。如果您正在开发自己的应用程序并使用它包装SQL Express,则将其安装到自己的实例中是很有意义的。此外,如果用户愿意,还可以选择指定现有的SQL安装。

如果您有一个非常重要的数据库,希望确保没有其他人可以访问,则可以使用非常有限的安全授权将其放入自己的实例中。假设这是您的产品数据库,然后将其复制到同一服务器上**的报告数据库**,该服务器仅对人员开放。尽管将用户(管理员)错误限制为只有少数几个人,但用户意外地可以访问生产数据库的可能性很小,但该人实际上只能将能够更新生产实例上的安全组的人员限制为只有少数人。

**优良作法是将报告服务器设置为单独的计算机,但我仅以此为例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.