oracle数据库中让人容易混淆的“name”

本文详细解释了Oracle数据库中的各种名称概念,包括数据库名、实例名、数据库域名、全局数据库名和服务名的区别及联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle数据库中让人容易混淆的“name”
database name(数据库名):指的就是oracle数据库的名称,用来在一个域内唯一的标识一个数据库。数据库名由db_name初始化参数指定。数据库名最多可达8个字符(文字数字字符,下划线,#,$)组成,必须和create database中的指定的名字相同。在有多个数据库存在时,数据库名应该和实例名一致,以免混淆实例与数据库的对应关系。在RAC环境下所有的实例中的数据库名必须相同,备用数据库与主数据库的数据库名也应该相同。
SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_name                              string      oracl
数据库名是:oracl
instance name(实例名):oracle实例由SGA与oracle后台进程组成,实例名指的就是实例的名称。由初始化参数文件中的instance_name指定,唯一的标识实例。在单实例架构下,实例名一般和数据库名相同,在RAC环境下多个实例对应一个数据库。实例名也就是我们经常提高的SID.
SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
instance_name                        string      oracl
实例名是:oracl
database domain(数据库域名):数据库域名就是网络域名。数据库创建以后,改变初始化参数db_domain的值不会影响到全局数据库名或者数据库链接名的解析。使用alter system 的方式是无法修改的。应该使用alter database修改,并且修改以后也不会 反映 在db_domian中,而是反映在global_name中。
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_domain                            string
我没有设置数据库域名,因为我的数据库是本地学习测试用的。
global database name(全局数据库名):唯一的标识一个数据库,以database_name.database_domain的格式。因为不在同一个域内的数据库库名可能相同,但是同一个域内的数据库库名不可能相同,所以可以通过database_name.database_domain的方式唯一的标识一个数据库。查看数据字典视图global_name确定全局数据库名。
SQL> select * from global_name;

GLOBAL_NAME
-----------------------------------
ORACL
修改通过修改global_name的方式来修改db_domain
SQL> alter database rename global_name to oracl.zeng.com;
Database altered.
查看修改的情况
SQL> select * from global_name;
GLOBAL_NAME
-----------------------------------
ORACL.ZENG.COM
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------
db_domain                            string
虽然db_domain的值是空的,但是全局数据库名确实已经更改了。
database service name(数据库服务名):对应客户端来说,数据库在逻辑上只是一个服务。一个数据库实例可以有多个数据库服务名,每个一个数据库服务名,为一组不同的客户端所使用。每个数据库服务名,也可以对应多个数据库实例。通过数据库服务名来标识每一个数据库,数据库服务名由初始化参数service_name确定。默认和全局数据库名相同。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-717141/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-717141/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值