Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214287
  • 博文数量: 123
  • 博客积分: 3066
  • 博客等级: 中校
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-23 21:22
文章分类

全部博文(123)

文章存档

2012年(1)

2010年(1)

2009年(48)

2008年(73)

我的朋友

分类: Oracle

2008-12-19 09:51:45

ORACLE9i数据库名、实例名、服务名之间的关系

Oracle中存在着这些容易混淆的名称:

*        数据库名

*        实例名

*        ORACLE_SID

*        服务名

*        域名

*        全局数据库名

oracle7/8/9i/10g中都有数据库名和实例名,在9i10g中又引进了三个新的数据库标识类参数:数据库域名(db_domain)、全局数据库名(global_dbname)和数据库服务名(service_names)。下面介绍一下这些名称的关系:

1.      数据库名

用于区分一个数据库的内部标识,在安装数据库、创建新数据库、创建控制文件、修改数据库结构、利用RMAN备份时都需要使用数据库名。

存在于(但不仅限于)以下地方:

(1)    以二进制方式存储在控制文件中。

(2)    Pfile/spfile中:db_name

(3)    数据库物理结构文件目录中

D:\oracle\oradata\db_name\*.*

D:\oracle\admin\db_name\*.*

查询方法:select name from v$database;

2.      实例名

用于和操作系统进行联系。在操作系统中要取得与数据库之间的交互必须使用实例名。例如,要和某一个数据库服务器连接,则必须知道其数据库实例名,知道数据库名是没用的。在安装/创建数据库后,实例名允许修改的。

存在于(但不仅限于)以下地方:

(1)    Windows nt/2000注册表中(oracle_sid

(2)    pfile/spfile中:instance_name

(3)    数据库参数文件名中:init.ora

查询方法:select instance_name from v$instance;

与数据库名的关系:一般是一一对应的,RAC中除外。

3.      ORACLE_SID

细心的朋友可以发现,2.3中有个问题:2中讲的是instance_name,但2.3存储的却是oracle_sid

因为从名称上来说,instance_name=oracle_sid。对于数据库实例名的描述,有时使用instance_name,有时使用oracle_sid,这两个都是数据库实例名。但instance_nameoracle数据库参数,而oracle_sid是操作系统环境变量。

Oracle_sid用于和操作系统交互。也就是说,在操作系统中要想得到实例名,必须使用oracle_sid。例如同一服务器上创建了多个数据库,则就有多个对应的实例,可以通过在操作系统中设置oracle_sid指定要登录的数据库:

$oracle_sid=orcl

$export oracle_sid

C:\>set oracle_sid=orcl

存在于(但不仅限于)以下地方:

(1)    Windows nt/2000注册表中(oracle_sid

(2)    数据库参数文件名中:init.ora

实例名除用于和操作系统联系外,还用于网络连接,即与客户端或其他服务器之间的连接。配置网络连接,就是配置网络连接串。

例如登录某远程数据库:

C:\>sqlplus xtjb/xtjb@s101

这里的s101就是一个网络连接串。

oracle的不同版本中,网络连接串的内容是不同的。在网络驱动版本为sql*netnet8时,网络连接串使用数据库实例名构造;网络驱动版本为net8inet services时,网络连接串使用数据库服务名构造(服务名见后面介绍)。见图3中的填写说明。

4.      域名

9i/10g中新引进参数。在数据库名称后面增加域名构成,类似网络中的域名,使数据库的取名在整个网络环境中唯一。

域名主要用于分布式数据库中数据库之间的连接。例如,在一个网络中有两个数据库,数据库名都是orcl,若这连个数据库之间要建立连接,则必须使用不同的域名加以区分。

5.      全局数据库名

9i/10g中新引进参数。全局数据库名=数据库名+域名。

6.      服务名

9i/10g中新引进参数。服务名=全局数据库名。

当使用网络驱动net8i, net servicesoracle9i/10g服务器连接时,不再使用实例名,而使用数据库服务名。

7.      补充

当同一网络中两个数据库的global_dbname相同时,可以通过修改域名和服务名的方式进行调整(当然也可以修改数据库名,不过太繁琐)。

修改完毕后,需修改监听中的全局数据库名,并重启监听(见8中例子)。

8.      举例

(1)    创建一个数据库,全局数据库名为ora.worldSID(实例名)为orasid。见图1

(2)    创建完毕后,使用服务名(全局数据库名)建立网络连接。见图2、图3

(3)    查询各个名称

SQL> show parameter db_name

 

NAME                                 TYPE        VALUE

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

db_name                              string      ora

 

SQL> show parameter db_domain

 

NAME                                 TYPE        VALUE

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

db_domain                            string      world

 

SQL> show parameter instance_name

 

NAME                                 TYPE        VALUE

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

instance_name                        string      orasid

 

SQL> show parameter service_names

 

NAME                                 TYPE        VALUE

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

service_names                        string      ora.world

 

SQL> show parameter global_

 

NAME                                 TYPE        VALUE

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

global_context_pool_size             string

global_names                         boolean     FALSE

数据库链与全局数据库名的关系参考《小结:数据库链接db link》:

http://www.itpub.net/showthread.php?s=b81b1c59ccbdb3d677068659ac3a3a1d&postid=8411363#post8411363

(4)    修改全局数据库名(修改域名和服务名)

SQL> alter system set db_domain='' scope=spfile;

 

系统已更改。

 

SQL> alter system set service_names='ora' scope=spfile;

 

系统已更改。

 

SQL> startup force

ORACLE 例程已经启动。

 

Total System Global Area  135338868 bytes

Fixed Size                   453492 bytes

Variable Size             109051904 bytes

Database Buffers           25165824 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

数据库已经打开。

 

SQL> show parameter db_domain

 

NAME                                 TYPE        VALUE

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

db_domain                            string                 

 

SQL> show parameter service_names

 

NAME                                 TYPE        VALUE

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

service_names                            string      ora     

SQL>

修改监听文件listner.ora中的GLOBAL_DBNAME = oratnsname.ora中的SERVICE_NAME = ora,重启监听,并进行连接测试

SQL> host

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

 

C:\Documents and Settings\IBM>lsnrctl stop

 

...

命令执行成功

 

C:\Documents and Settings\IBM>lsnrctl start

 

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 01-9 -2007 01:02:07

 

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

 

启动tnslsnr:请稍候...

 

TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production

系统参数文件为D:\oracle\ora92\network\admin\listener.ora

写入D:\oracle\ora92\network\log\listener.log的日志信息

监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

 

...

...

服务摘要..

服务 "ora" 包含 1 个例程。

  例程 "orasid", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

 

C:\Documents and Settings\IBM>tnsping s9i

 

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 01-9 -2007 01:02:15

 

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

 

已使用的参数文件:

D:\oracle\ora92\network\admin\sqlnet.ora

 

已使用 TNSNAMES 适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ora)))

OK20毫秒)

 

C:\Documents and Settings\IBM>

1

2

   图3

备注:加个西瓜的连接:http://btxigua.itpub.net/post/34419/384544(关于db_name,oracle_sid,service_names,global_names等的总结说明)

 

参考资料:

oracle10g数据库系统管理》——滕永昌

http://www.itpub.net/showthread.php?s=b81b1c59ccbdb3d677068659ac3a3a1d&postid=8411363#post8411363(【小结】数据库链接db link,有兴趣的看看。)

 发表于: 2007-09-02,修改于: 2007-09-02 11:16 已浏览1138次,有评论0条 推荐 投诉
阅读(347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~