简介
在Oracle中,DBID和DBNAME是两个极其重要的对象。作为标记信息,DBID和DBNAME包含在参数文件、密码文件、数据文件、日志文件、备份集合、归档日志中。一般情况下,已经创建好的数据库是不需要修改DBID和DBNAME的。因为,修改这些信息意味着Oracle关键信息的变化,将导致备份失效。
DBID是一个十进制数字,Oracle依据唯一性算法计算得到作为内部数据库的标记信息。在数据文件、日志和备份集合中,DBID都是作为重要标记进行使用。DBNAME是用户设置的项目内容,存在密码文件、参数文件和数据文件中。如果需要修改DBID,那么联机Redo日志文件需要进行RESETLOGS操作,原有的归档和备份文件都会失效。如果只修改了DBNAME,那么是不需要进行RESETLOGS的。
修改改数据库的DBID和DBNAME主要使用Oracle nid工具,主要过程如下:
CREATE PFILE FROM SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
nid target=sys/lhr dbname=ora11g
CP INITORCLALHR.ORA INITORA11G.ORA
SHUTDOWN IMMEDIATE;
ALTER DATABASE OPEN RESETLOGS;
示例
--------------- 修改dbid和dbname
原: orcltest
修改后:DBID: 4270446895 Database Name: ORA11G
create pfile from spfile;
shutdown immediate;
startup mount;
nid target=sys/lhr dbname=ORA11G
cp initorcltest.ora initORA11G.ora
shutdown immediate;
startup open read only;
@chang_dbid_lhr.sql
create pfile from spfile;
shutdown immediate;
alter database open resetlogs;