请问什么是数据库的实例?

时间:2021-07-20 04:49:53

http://topic.csdn.net/u/20090801/11/1c62497b-ad9e-4835-888f-9aba349f63e8.html?72412

这个帖子里面的问题,还是没搞懂

一台服务器有多个数据库实例 这是什么意思?哪位举个例子说明一下?


请教楼上高手 

1 混合验证是先进行windows验证,再进行数据库验证吗? 

2 链接字符串里面直接用服务器端的ip,用户名,密码,那么还要在客户机上装sql server客户端实用工具干嘛?


这两个问题,我还是没搞懂

7 个解决方案

#2


   所谓的“实例”,就是一个SQL Server数据库引擎。SQL Server 2000支持在同一台计算机上同时运行多个SQL Server数据库引擎实例。每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库引擎实例的方式与连接其他计算机上运行的SQL Server数据库引擎的方式基本相同。由于实例各有一套不为其他实例共享的系统及用户数据库,所以各实例的运行是独立的,一个实例的运行不会受其他实例运行的影响,也不会影响其他实例的运行。在一台计算机上安装多个SQL Server实例,就相当于把这台计算机模拟成多个数据库服务器,而且这些模拟的数据库服务器是独立且同时运行的。

 

       实例包括默认实例和命名实例两种。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同,修改计算机名会同步修改默认实例名(SQL Server 7.0只能被安装为默认实例,在修改计算机名后,会导致SQL Server服务无法启动,需要执行SQL Server安装程序进行自动修复才能解决启动问题),客户端连接默认实例时,将使用安装SQL Server实例的计算机名。



1:不是
2:可以不装,客户端工具是用来连接数据库的时候,配置端口,ip,协议

#3


说白了,一个实例就是一个数据库服务器,在同一计算机可以安装多个SQL SERVER数据库实例,并且并不干拢,每个实例有实例名+端口号等来标识
默认实例名是计算机名,命名实例名由计算机名+实例名组成。
例如可以把用户的数据库放到名一个实例上,金蝶的放到一个实例上,但是所有数据库都在同一计算机上。
明白了吗?

#4


回答好快呀!我刚打了几字就到3楼了

#5


引用 3 楼 soft_wsx 的回复:
说白了,一个实例就是一个数据库服务器,在同一计算机可以安装多个SQL SERVER数据库实例,并且并不干拢,每个实例有实例名+端口号等来标识
默认实例名是计算机名,命名实例名由计算机名+实例名组成。
例如可以把用户的数据库放到名一个实例上,金蝶的放到一个实例上,但是所有数据库都在同一计算机上。
明白了吗?


没明白呀,难道mssql连着安装两次就是两个实例?

感觉实例就有点像进程,一个exe文件同时运行两次,就是两个进程

那么如何创建两个数据库实例哪?

#6


帮你顶!希望更形象点的举例

#7


什么是数据库实例?

一、

就是一个在数据库中存在的,现实的数据库例子!数据库实例就是后台进程和数据库文件的集合。
一个SQL Server服务器就是一个实例,2000支持在同一个NT/2000 Server操作系统装多个服务器,换言之,就是多个实例。 多个 SQL Server 实例 ,Microsoft® SQL Server™ 2000 支持在同一台计算机上同时运行多个 SQL Server 数据库引擎实例。每个 SQL Server 数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的 SQL Server 数据库引擎实例的方式与连接其它计算机上运行的 SQL Server 数据库引擎的方式基本相同。
二、

有两种类型的 SQL Server 实例:
1)、默认实例
SQL Server 2000 数据库引擎默认实例的运行方式与 SQL Server 早期版本的数据库引擎相同。默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名。如果应用程序在请求连接 SQL Server 时只指定了计算机名,则 SQL Server 客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有 SQL Server 应用程序的兼容性。一台计算机上只能有一个默认实例,而默认实例可以是 SQL Server 的任何版本。 
2)、命名实例
除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。应用程序必须提供准备连接的计算机的名称和命名实例的实例名。计算机名和实例名以格式 computer_name\instance_name 指定。 一台计算机上可以运行多个命名实例,但只有 SQL Server 2000 数据库引擎才可作为命名实例运行。SQL Server 早期版本中的数据库引擎不能作为命名实例运行。
实例主要应用于数据库引擎及其支持组件,而不应用于客户端工具。如果安装了多个实例,则每个实例都将获得各自唯一的一套:系统和用户数据库。
-----------------------------------------------------------------------------------------------------------------------------------

所谓“SQL实例”,实际上就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。 在一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL Server,命名设置保持默认的话,那这个实例就是默认实例。
   一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
所以说,默认实例的名称是与计算机名相同,而不是称为"local",但一般情况下,如果要访问本机上的默认SQL服务器实例,使用计算机名、(local)、localhost、127.0.0.1、. 、本机IP地址,都可以达到相同的目的。但如果要访问非本机的SQL服务器,那就必须使用计算机\实例名的办法。

-------------------------------------------------------------------------------------------------------------------------------------

三、处理多个实例  
   尽管多个Microsoft SQL Server 2000 实例可在单台计算机上运行,但实例间没有直接连接。每个实例以多种方式运行,就像位于单独的服务器上。连接某一实例的应用程序除了通过分布式查询外,不能访问其它实例中创建的数据库中的对象。实例之间不能共享数据库和数据库文件。  

   SQL   Server   2000   数据库引擎的命名实例与默认实例的行为几乎相同。两者的主要差别是命名实例要求用户必须提供标识命名实例的计算机名和实例名。如果仅指定computername,则使用默认实例。如果指定computername\instancename,则使用命名实例。    

   服务管理器。    

  如果在服务管理器中仅指定computername,则可停止和启动默认实例。如果指定 computername\instancename,则可停止和启动命名实例。当启动特定的实例时,对于任何使用具有访问数据库权限的授权ID连接实例的应用程序,都可使用在该实例中创建的所有数据库。  

   SQL   Server   企业管理器。    

  通过SQL Server   企业管理器,用户可以注册自己拥有权限的任何一个实例。在注册实例后,可根据授予的权限,创建、编辑和除去数据库中与实例相关联的对象。还可为该实例创建、编辑和除去数据转换服务、复制和SQL Server代理对象。  

   

 

应用程序。    

  在一个应用程序中,如果在连接请求中指定 computername 作为服务器名参数,则连接计算机上的默认实例。用户可访问自己拥有访问权限的默认实例中的任何数据库。如果指定   computername\instancename   作为服务器名称参数,则连接命名实例。用户可访问自己拥有访问权限的命名实例中的任何数据库。当连接特定的实例时,只能通过分布式查询访问其它实例中的数据库对象,正如只能通过分布式查询访问其它服务器中的数据库对象一样。

应用程序指定实例名的方式各不相同:  

ADO 应用程序在提供程序字符串中指定"Server=computername\instancename"。有关更多信息,参见连接多个SQL Server 实例。  

OLE DB应用程序在提供程序字符串中指定"Server=computername\instancename"。也可将DBPROP_INIT_DATASOURCE设置为   computername\\instancename(反斜杠必须通过另一个反斜杠转义)。有关更多信息,请参见建立与数据源的连接。      

ODBC应用程序在SQLDriverConnect上指定的连接字符串中指定"Server=computername\instancename"。也可为SQLConnect上的参数   ServerName指定computername\\instancename,或通过已为服务器名称指定computername\instancename的数据源进行连接。有关更多信息,请参见SQLDriverConnect和 QLConfigDataSource支持。  

SQL DMO应用程序可使用SQLServer2对象管理SQL Server 2000实例。有关更多信息,请参见 SQLServer2对象。    

命令提示实用工具。    

  使用命令提示实用工具时,可通过   computername\instancename   使用服务器开关指定实例,例如:       

  osql   -E   -Scomputer1\instance1  

  sqlservr   /Sinstance1  

  isql   实用工具不支持命名实例。  

SQL   Server   2000   客户端组件。 使用SQL Server 2000客户端组件的应用程序可枚举用于连接的实例:  

   用于 SQL Server 2000   的 OLE DB 提供程序使用   ISourcesRowset::GetSourcesRowset   返回实例名。命名实例名作为格式为   computername\instancename   的数据源名返回,其中的   computername   可以是单台计算机的名称,也可以是故障转移群集的虚拟服务器名称。默认实例名作为格式为   computername   的数据源名返回,不带实例名。  

   SQLServer2000 ODBC 驱动程序支持 SQLBrowseConnect 和 SQLSetConnectAttr   的扩展,这使应用程序得以枚举服务器上的实例。ODBC   应用程序还可确定   computername   是单个计算机名还是故障转移群集的虚拟服务器名。有关更多信息,请参见   SQLBrowseConnect。  

     SQL-DMO应用程序可使用 SQLServer2 对象枚举实例。SQLServer2 对象还提供诸如 SQLServer 名和实例的 SQL   Server代理服务名,以及实例是在单个计算机上运行还是在故障转移群集上运行等方面的信息。有关更多信息,请参见   SQLServer2  对象。  

    DB-Library   和用于   C   语言的嵌入式   SQL   不支持命名实例。    

标识实例  

  性能监视器计数器、事件探查器事件和事件查看器应用程序日志中的   Windows   事件都标识与它们相关联的   SQL   Server   实例。      

  如果连接命名实例,则   @@SERVERNAME   函数返回的字符串以   servername\instancename   的格式标识实例名。如果连接默认实例,则   @@SERVERNAME   仅返回   servername。有关更多信息,请参见   @@SERVERNAME。  

   SERVERPROPERTY   函数的INSTANCENAME 属性报告所连接实例的实例名。如果连接默认实例,则   INSTANCENAME   返回   NULL。另外,SERVERNAME   属性将返回与   @@SERVERNAME   返回的格式相同的字符串,并在连接命名实例时具有格式   servername\instancename。有关更多信息,请参见   SERVERPROPERTY。  

      尽管   @@SERVERNAME   和   SERVERNAME   报告的字符串采用相同的格式,但它们报告的信息可以不同,例如:         

  @@SERVERNAME   返回的字符串受   sp_addserver   和   sp_dropserver   操作的影响,而   SERVERNAME   报告的字符串则不受影响。       

  SERVERNAME   可自动报告计算机网络名中的更改,而   @@SERVERNAME   不报告这些更改,除非使用   sp_dropserver   和   sp_addserver   更改它报告的名称。

#1


#2


   所谓的“实例”,就是一个SQL Server数据库引擎。SQL Server 2000支持在同一台计算机上同时运行多个SQL Server数据库引擎实例。每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库引擎实例的方式与连接其他计算机上运行的SQL Server数据库引擎的方式基本相同。由于实例各有一套不为其他实例共享的系统及用户数据库,所以各实例的运行是独立的,一个实例的运行不会受其他实例运行的影响,也不会影响其他实例的运行。在一台计算机上安装多个SQL Server实例,就相当于把这台计算机模拟成多个数据库服务器,而且这些模拟的数据库服务器是独立且同时运行的。

 

       实例包括默认实例和命名实例两种。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同,修改计算机名会同步修改默认实例名(SQL Server 7.0只能被安装为默认实例,在修改计算机名后,会导致SQL Server服务无法启动,需要执行SQL Server安装程序进行自动修复才能解决启动问题),客户端连接默认实例时,将使用安装SQL Server实例的计算机名。



1:不是
2:可以不装,客户端工具是用来连接数据库的时候,配置端口,ip,协议

#3


说白了,一个实例就是一个数据库服务器,在同一计算机可以安装多个SQL SERVER数据库实例,并且并不干拢,每个实例有实例名+端口号等来标识
默认实例名是计算机名,命名实例名由计算机名+实例名组成。
例如可以把用户的数据库放到名一个实例上,金蝶的放到一个实例上,但是所有数据库都在同一计算机上。
明白了吗?

#4


回答好快呀!我刚打了几字就到3楼了

#5


引用 3 楼 soft_wsx 的回复:
说白了,一个实例就是一个数据库服务器,在同一计算机可以安装多个SQL SERVER数据库实例,并且并不干拢,每个实例有实例名+端口号等来标识
默认实例名是计算机名,命名实例名由计算机名+实例名组成。
例如可以把用户的数据库放到名一个实例上,金蝶的放到一个实例上,但是所有数据库都在同一计算机上。
明白了吗?


没明白呀,难道mssql连着安装两次就是两个实例?

感觉实例就有点像进程,一个exe文件同时运行两次,就是两个进程

那么如何创建两个数据库实例哪?

#6


帮你顶!希望更形象点的举例

#7


什么是数据库实例?

一、

就是一个在数据库中存在的,现实的数据库例子!数据库实例就是后台进程和数据库文件的集合。
一个SQL Server服务器就是一个实例,2000支持在同一个NT/2000 Server操作系统装多个服务器,换言之,就是多个实例。 多个 SQL Server 实例 ,Microsoft® SQL Server™ 2000 支持在同一台计算机上同时运行多个 SQL Server 数据库引擎实例。每个 SQL Server 数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的 SQL Server 数据库引擎实例的方式与连接其它计算机上运行的 SQL Server 数据库引擎的方式基本相同。
二、

有两种类型的 SQL Server 实例:
1)、默认实例
SQL Server 2000 数据库引擎默认实例的运行方式与 SQL Server 早期版本的数据库引擎相同。默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名。如果应用程序在请求连接 SQL Server 时只指定了计算机名,则 SQL Server 客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有 SQL Server 应用程序的兼容性。一台计算机上只能有一个默认实例,而默认实例可以是 SQL Server 的任何版本。 
2)、命名实例
除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。应用程序必须提供准备连接的计算机的名称和命名实例的实例名。计算机名和实例名以格式 computer_name\instance_name 指定。 一台计算机上可以运行多个命名实例,但只有 SQL Server 2000 数据库引擎才可作为命名实例运行。SQL Server 早期版本中的数据库引擎不能作为命名实例运行。
实例主要应用于数据库引擎及其支持组件,而不应用于客户端工具。如果安装了多个实例,则每个实例都将获得各自唯一的一套:系统和用户数据库。
-----------------------------------------------------------------------------------------------------------------------------------

所谓“SQL实例”,实际上就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。 在一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL Server,命名设置保持默认的话,那这个实例就是默认实例。
   一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
所以说,默认实例的名称是与计算机名相同,而不是称为"local",但一般情况下,如果要访问本机上的默认SQL服务器实例,使用计算机名、(local)、localhost、127.0.0.1、. 、本机IP地址,都可以达到相同的目的。但如果要访问非本机的SQL服务器,那就必须使用计算机\实例名的办法。

-------------------------------------------------------------------------------------------------------------------------------------

三、处理多个实例  
   尽管多个Microsoft SQL Server 2000 实例可在单台计算机上运行,但实例间没有直接连接。每个实例以多种方式运行,就像位于单独的服务器上。连接某一实例的应用程序除了通过分布式查询外,不能访问其它实例中创建的数据库中的对象。实例之间不能共享数据库和数据库文件。  

   SQL   Server   2000   数据库引擎的命名实例与默认实例的行为几乎相同。两者的主要差别是命名实例要求用户必须提供标识命名实例的计算机名和实例名。如果仅指定computername,则使用默认实例。如果指定computername\instancename,则使用命名实例。    

   服务管理器。    

  如果在服务管理器中仅指定computername,则可停止和启动默认实例。如果指定 computername\instancename,则可停止和启动命名实例。当启动特定的实例时,对于任何使用具有访问数据库权限的授权ID连接实例的应用程序,都可使用在该实例中创建的所有数据库。  

   SQL   Server   企业管理器。    

  通过SQL Server   企业管理器,用户可以注册自己拥有权限的任何一个实例。在注册实例后,可根据授予的权限,创建、编辑和除去数据库中与实例相关联的对象。还可为该实例创建、编辑和除去数据转换服务、复制和SQL Server代理对象。  

   

 

应用程序。    

  在一个应用程序中,如果在连接请求中指定 computername 作为服务器名参数,则连接计算机上的默认实例。用户可访问自己拥有访问权限的默认实例中的任何数据库。如果指定   computername\instancename   作为服务器名称参数,则连接命名实例。用户可访问自己拥有访问权限的命名实例中的任何数据库。当连接特定的实例时,只能通过分布式查询访问其它实例中的数据库对象,正如只能通过分布式查询访问其它服务器中的数据库对象一样。

应用程序指定实例名的方式各不相同:  

ADO 应用程序在提供程序字符串中指定"Server=computername\instancename"。有关更多信息,参见连接多个SQL Server 实例。  

OLE DB应用程序在提供程序字符串中指定"Server=computername\instancename"。也可将DBPROP_INIT_DATASOURCE设置为   computername\\instancename(反斜杠必须通过另一个反斜杠转义)。有关更多信息,请参见建立与数据源的连接。      

ODBC应用程序在SQLDriverConnect上指定的连接字符串中指定"Server=computername\instancename"。也可为SQLConnect上的参数   ServerName指定computername\\instancename,或通过已为服务器名称指定computername\instancename的数据源进行连接。有关更多信息,请参见SQLDriverConnect和 QLConfigDataSource支持。  

SQL DMO应用程序可使用SQLServer2对象管理SQL Server 2000实例。有关更多信息,请参见 SQLServer2对象。    

命令提示实用工具。    

  使用命令提示实用工具时,可通过   computername\instancename   使用服务器开关指定实例,例如:       

  osql   -E   -Scomputer1\instance1  

  sqlservr   /Sinstance1  

  isql   实用工具不支持命名实例。  

SQL   Server   2000   客户端组件。 使用SQL Server 2000客户端组件的应用程序可枚举用于连接的实例:  

   用于 SQL Server 2000   的 OLE DB 提供程序使用   ISourcesRowset::GetSourcesRowset   返回实例名。命名实例名作为格式为   computername\instancename   的数据源名返回,其中的   computername   可以是单台计算机的名称,也可以是故障转移群集的虚拟服务器名称。默认实例名作为格式为   computername   的数据源名返回,不带实例名。  

   SQLServer2000 ODBC 驱动程序支持 SQLBrowseConnect 和 SQLSetConnectAttr   的扩展,这使应用程序得以枚举服务器上的实例。ODBC   应用程序还可确定   computername   是单个计算机名还是故障转移群集的虚拟服务器名。有关更多信息,请参见   SQLBrowseConnect。  

     SQL-DMO应用程序可使用 SQLServer2 对象枚举实例。SQLServer2 对象还提供诸如 SQLServer 名和实例的 SQL   Server代理服务名,以及实例是在单个计算机上运行还是在故障转移群集上运行等方面的信息。有关更多信息,请参见   SQLServer2  对象。  

    DB-Library   和用于   C   语言的嵌入式   SQL   不支持命名实例。    

标识实例  

  性能监视器计数器、事件探查器事件和事件查看器应用程序日志中的   Windows   事件都标识与它们相关联的   SQL   Server   实例。      

  如果连接命名实例,则   @@SERVERNAME   函数返回的字符串以   servername\instancename   的格式标识实例名。如果连接默认实例,则   @@SERVERNAME   仅返回   servername。有关更多信息,请参见   @@SERVERNAME。  

   SERVERPROPERTY   函数的INSTANCENAME 属性报告所连接实例的实例名。如果连接默认实例,则   INSTANCENAME   返回   NULL。另外,SERVERNAME   属性将返回与   @@SERVERNAME   返回的格式相同的字符串,并在连接命名实例时具有格式   servername\instancename。有关更多信息,请参见   SERVERPROPERTY。  

      尽管   @@SERVERNAME   和   SERVERNAME   报告的字符串采用相同的格式,但它们报告的信息可以不同,例如:         

  @@SERVERNAME   返回的字符串受   sp_addserver   和   sp_dropserver   操作的影响,而   SERVERNAME   报告的字符串则不受影响。       

  SERVERNAME   可自动报告计算机网络名中的更改,而   @@SERVERNAME   不报告这些更改,除非使用   sp_dropserver   和   sp_addserver   更改它报告的名称。