使用NID修改DBID和DBNAME实验

Oracle中,DBID和DBNAME是两个低调但又是及其重要的对象。作为标记信息,DBID和DBNAME广泛的出现在参数文件、密码文件、数据文件和日志文件中,更有甚者在备份集合归档日志中。笔者看过一位前辈的文章中,强调称职DBA应该将管理数据库的DBID牢记于心。

一般情况下,已经创建好的数据库是不需要修改DBID和DBNAME信息的。因为,修改这些信息意味着Oracle关键信息的变化,和大量备份数据的废止。如果需要进行变更,一定要按照固定的操作程序,将对应的数据内容修改完好。

1、修改DBID和DBNAME,是一个大事情

DBID是一个十进制数字,Oracle依据唯一性算法计算得到作为内部数据库的标记信息。在数据文件、日志和备份集合中,DBID都是作为重要标记进行使用。DBNAME是用户设置的项目内容,分布在密码文件、参数文件和数据文件中。如果存在修改DBID的情况,Online Redo Log需要进行ResetLog操作,原有的归档和备份文件都需要废除失效。

对修改DBID和DBNAME操作,我们一定要明确后续调整和修复的范围动作。如果修改DBID,所有之前进行的备份和归档日志就没有效用了。整个过程就和全新创建数据库(除了数据文件存在)没有差异。我们启动数据库Open的时候,就需要resetlogs模式启动,刷新废除所有的online redo logs组,开启一个新的Sequence序列。在投产条件下,如果我们修改了DBID,就必须立即进行数据库备份动作,避免数据库裸奔。

如果修改了DBNAME,问题简单一些,是不需要我们resetlogs的。之前的备份集合和归档日志还是可以继续使用。DBNAME修改要求手工的在SPFile或者Pfile中修改初始化参数,密码文件也需要进行修改。注意:对应控制文件的备份,如果希望使用只前备份的控制文件恢复,就需要使用之前的参数文件进行启动。

#

 

文件信息

 

受影响参数

 

NID是否处理

 

1

 

Password File

 

DBNAME

 

 

2

 

Parameter File

 

DBNAME

 

 

3

 

Data File

 

DBNAMEDBID

     

4

 

Online Redo Log

 

DBID

     

5

 

Archived Redo Log

 

DBID

 

 

6

 

Backup Set

 

DBID

 

 

7

 

Control File

 

DBIDDBNAME

     

8

 

Oracle NET File

 

DBNAME

 

 

9

 

DBConsole

 

DBIDDBNAME

 

 

下面,通过一系列的实验,演示如何使用Oracle NID工具进行DBID和DBNAME修改。

2、同时修改DBID和DBNAME

当前笔者使用11.2.0.4数据库进行测试,数据库处在归档模式下。当前数据库名称为MYTEDB,对应的DBID如下所示。

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

SQL> select dbid, name from v$database;

DBID NAME

---------- ---------

2764682050 MYTEDB

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival            Enabled

首先,确认备份和归档日志情况。查看环境变量信息。

[oracle@MYTElife ~]$ env | grep ORA

ORACLE_SID=MYTEdb

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

[oracle@MYTElife ~]$ cd $ORACLE_HOME/bin

[oracle@MYTElife bin]$ pwd

/u01/app/oracle/product/11.2.0/dbhome_1/bin

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4574c6c876645474522efe600a863081.html