一、Oracle的一些疑难概念
Oracle配置文件众多,欲理清思路,须要区别如下一些容易混淆的概念。
db_name(创建参数)是Oracle数据库(Oracle database)的唯一标识。这个方法对于单机数据库是足够的,但是随着分布式数据库(由多个数据库构成的)的发展,各个数据库可能存在重名,这样造成了管理上的混乱。
于是引入db_domain参数,这样数据库标识由db_name和db_domain两个参数共同决定,避免了因为数据库重名而造成的混乱。这类似于互连网上机器名的管理。我们用db_name.db_domain 表示一个数据库,这个名称称为global_name,扩展了db_name。
select * from v$parameter where name like '%db_name%';
db_name参数创建数据库后很难更改,须要重建控制文件等。
db_domain(初始化参数)
定义数据库所在的域,这个域与我们常说的互联网域和服务器域没有什么关系,只是为了更好的
管理分布式数据库。
select * from v$parameter where name like '%domain%';
db_domain可以通过alter system进行修改。
alter system set db_domain = 'liwei.com' scope=spfile;
global_name
Oracle建议用此方法命令数据库。缺省值为db_name.db_domain。创建数据库后修改参数文件中
db_domain不会影响global_name的值,可以用alter database rename global_name to 进行修改,然后修改相应db_name和db_domain参数。
select * from global_name;
alter database rename global_name to TEST.LIWEI.COM;
sid(Oracle System Identifier) = instance_name (初始化参数)
Oracle使用sid(Oracle System Identifier)标识数据库一个实例。sid也是Oracle与外部交互的实例
标识。dbca创建数据库时,首先须要指定global_name与sid。我们看下面的文件列表:
[oracle@liwei dbs]$ ll
total 52
-rw-rw---- 1 oracle oradba 1544 May 2 02:32 hc_temp.dat
-rw-rw---- 1 oracle oradba 1544 May 1 12:40 hc_test.dat
-rw-r----- 1 oracle oradba 12920 May 3 2001 initdw.ora
-rw-r----- 1 oracle oradba 8385 Sep 11 1998 init.ora
-rw-r--r-- 1 oracle oradba 848 May 2 02:30 inittest.ora
-rw-rw---- 1 oracle oradba 24 May 1 12:40 lkTEST
-rw-r----- 1 oracle oradba 1536 May 1 19:38 orapwtest
-rw-r----- 1 oracle oradba 2560 May 2 02:37 spfiletest.ora
显然Oracle实例相关配置文件都是使用sid进行文件命名。tnsnames.ora里可以使用( CONNECT_DATA =
(SID = test) )进行连接数据库。sid值即为v$parameter中的instance_name。
select * from v$parameter where name like 'instance%';
alter system set instance_name='testins' scope=spfile;
注意:修改instance_name后,tnsnames.ora的SID名称也须要与之对应。