Oracle如何修改数据库的DBID和DBNAME?
简介
在Oracle中,DBID和DBNAME是两个极其重要的对象。作为标记信息,DBID和DBNAME包含在参数文件、密码文件、数据文件、日志文件、备份集合、归档日志中。一般情况下,已经创建好的数据库是不需要修改DBID和DBNAME的。因为,修改这些信息意味着Oracle关键信息的变化,将导致备份失效。
DBID是一个十进制数字,Oracle依据唯一性算法计算得到作为内部数据库的标记信息。在数据文件、日志和备份集合中,DBID都是作为重要标记进行使用。DBNAME是用户设置的项目内容,存在密码文件、参数文件和数据文件中。如果需要修改DBID,那么联机Redo日志文件需要进行RESETLOGS操作,原有的归档和备份文件都会失效。如果只修改了DBNAME,那么是不需要进行RESETLOGS的。
修改改数据库的DBID和DBNAME主要使用Oracle nid工具,主要过程如下:
1 2 3 4 5 6 7 | 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; |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | --------------- 修改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; |