加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

数据库,数据库实例和服务器,分别指的啥哦。

发布时间:2022-10-25 10:49:52 所属栏目:MySql教程 来源:
导读:  什么是数据库实例?

  一、

  就是一个在数据库中存在的,现实的数据库例子!数据库实例就是后台进程和数据库文件的集合。

  一个SQL Server服务器就是一个实例,2000支持在同一个NT/2000 Serv
  什么是数据库实例?
 
  一、
 
  就是一个在数据库中存在的,现实的数据库例子!数据库实例就是后台进程和数据库文件的集合。
 
  一个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 更改它报告的名称。
 
  默认实例
 
  SQLServer2000数据库引擎默认实例的运行方式与SQLServer早期版本的数据库引擎相同。默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名。如果应用程序在请求连接SQLServer时只指定了计算机名,则SQLServer客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有SQLServer应用程序的兼容性。
 
  一台计算机上只能有一个默认实例,而默认实例可以是SQLServer的任何版本。
 
  命名实例
 
  除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。应用程序必须提供准备连接的计算机的名称和命名实例的实例名。计算机名和实例名以格式computer_name\instance_name指定。
 
  一台计算机上可以运行多个命名实例数据库实例,但只有SQLServer2000数据库引擎才可作为命名实例运行。SQLServer早期版本中的数据库引擎不能作为命名实例运行。
 
  数据库实例由各种高速缓冲池以及后台进程组成。
 
  数据库是数据以某中方式组织起来的数据集合,物理存储为数据库文件,数据库实例负责维护,访问这些数据。
 
  打个比方:你在文本中有一些数据(数据库文件)需要计算,你就要写一个程序(后台进程),计算这些数据,如果计算中有中间结果,你就需要把数据的中间结果放到内存中的一个区域中(高速缓冲池),然后再取出这些中间结果计算。
 
  当然这只是打个比方,实际数据库实例要处理的东西要多得多。
 
  每个实例运行一个对应一个SqlServer服务(sqlserver.exe)
 
  答:一个实例,对应一个服务,与其他实例完全独立
 
  比如你机器名是A
 
  你可以在机器上建立两个命名实例X,Y
 
  连接时
 
  指定A\X,A\Y
 
  而如果是默认实例,指定A即可。
 
  个很形象的例子(呵呵):
 
  一个实例就像一台绞肉机,每台绞肉机都可以绞肉。
 
  大块的肉放进去做为输入(T-SQL),碎肉挤出来做为输出(结果集)。
 
  你每运行一次安装程序,只能装一台绞肉机。
 
  当然,你可以在服务器上装好几台绞肉机,但是必须有不同的名字:绞肉机A,绞肉机B...
 
  默认安装是,绞肉机的名字好像叫MSSQLSERVER
 
  如果你装了好几台绞肉机,使用的时候要这样去连接:
 
  \\ServerName\InstanceNameA
 
  \\ServerName\InstanceNameB
 
  \\ServerName\InstanceNameC
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!