Oracle,修改 GLOBAL_NAME 和 SERVICE_NAME
安装 Oracle 的时候会指定 db_domain,指定 db_domain 后 service_name 和 global_name 都会加上这个 domain,此时在配置 tns file 以及 easy connect 的时候都要 service_name 很复杂。
sqlplus /@localhost/orcl.localdomian as sydba
在自己的测试库上,感觉没有必要。
首先尝试修改global_name,因为service_name默认是global_name,而global_name=db_name.db_domain
SQL> show parameter db_name;
NAME TYPE VALUE
db_name string orcl
SQL> show parameter db_domain;
NAME TYPE VALUE
db_domain string localdomain
SQL> show parameter service_name
NAME TYPE VALUE
service_names string orcl.localdomain
SQL> select * from global_name;
GLOBAL_NAME
orcl.localdomain
SQL> alter database rename global_name to orcl;
数据库已更改。
发现这样修改不能去掉global_name里的domain信息
SQL> select * from global_name;
GLOBAL_NAME
orcl.localdomain
需要
update global_name set global_name = 'orcl'
commit;
这样才能去掉domain
SQL> select * from global_name;
GLOBAL_NAME
orcl
但是修改global_name并不会默认改掉service_name,也不会默认修改db_domain
因此尝试修改db_domain
SQL> alter system set db_domain='' scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2171289600 bytes
Fixed Size 2177536 bytes
Variable Size 1459619328 bytes
Database Buffers 704643072 bytes
Redo Buffers 4849664 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter db_domain
NAME TYPE VALUE
db_domain string
SQL> show parameter service_name
NAME TYPE VALUE
service_names string orcl
SQL> select * from global_name;
GLOBAL_NAME
orcl
C:Usersyssa>sqlplus /@localhost/orcl as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 7月 26 09:55:33 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
OK,至此 global_name,db_domain 以及 service_name 修改成功,以后 easy connect 或者是 tns file 中的 service_name 就简单好记多了。