oracle中各种“name”
oracle中各种“name”
(1)database name(数据库名):指的就是oracle数据库的名称,用来在一个域内唯一的标识一个数据库。数据库名由db_name初始化参数指定。数据库名最多可达8个字符(文字数字字符,下划线,#,$)组成,必须和create database中的指定的名字相同。在有多个数据库存在时,数据库名应该和实例名一致,以免混淆实例与数据库的对应关系。在RAC环境下所有的实例中的数据库名必须相同,备用数据库与主数据库的数据库名也应该相同。
SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- -------- db_name string wilson
数据库名是:wilson
(2)instance name(实例名):oracle实例由SGA与oracle后台进程组成,实例名指的就是实例的名称。由初始化参数文件中的instance_name指定,唯一的标识实例。在单实例架构下,实例名一般和数据库名相同,在RAC环境下多个实例对应一个数据库。实例名也就是我们经常提高的SID.
SQL> show parameter instance_name NAME TYPE VALUE ------------------------------------ ----------- -------- instance_name string WILSON
实例名是:WILSON
(3)database domain(数据库域名):数据库域名就是网络域名。数据库创建以后,改变初始化参数db_domain的值不会影响到全局数据库名或者数据库链接名的解析。使用alter system 的方式是无法修改的。应该使用alter database修改,并且修改以后也不会反映在db_domian中,而是反映在global_name中。
SQL> show parameter db_domain NAME TYPE VALUE ------------------------------------ ----------- -------- db_domain string
我没有设置数据库域名,因为我的数据库是本地学习测试用的。
(4)global database name(全局数据库名):唯一的标识一个数据库,以database_name.database_domain的格式。因为不在同一个域内的数据库库名可能相同,但是同一个域内的数据库库名不可能相同,所以可以通过database_name.database_domain的方式唯一的标识一个数据库。查看数据字典视图global_name确定全局数据库名。
SQL> select * from global_name; GLOBAL_NAME ----------------------------------- ORACL
(5)修改通过修改global_name的方式来修改db_domain
SQL> alter database rename global_name to wilson.dave.sun; Database altered.
查看修改的情况
SQL> select * from global_name; GLOBAL_NAME ----------------------------------- wilson.dave.sun SQL> show parameter db_domain NAME TYPE VALUE ------------------------------------ ----------- ----------- db_domain string
虽然db_domain的值是空的,但是全局数据库名确实已经更改了。但是db_domain好像没有改掉。
(6)database service name(数据库服务名):对应客户端来说,数据库在逻辑上只是一个服务。一个数据库实例可以有多个数据库服务名,每个一个数据库服务名,为一组不同的客户端所使用。每个数据库服务名,也可以对应多个数据库实例。通过数据库服务名来标识每一个数据库,数据库服务名由初始化参数service_name确定。默认和全局数据库名相同~~~