nid可以用来修改db_id与db_name,修改之前最好冷备一下
1.关闭监听,正常关闭Oracle
[oracle@node3 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 19-FEB-2019 09:35:04
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2.重启数据库到mount状态
SQL> startup mount force
ORACLE instance started.
Total System Global Area 2.1379E+10 bytes
Fixed Size 2262656 bytes
Variable Size 2.0401E+10 bytes
Database Buffers 939524096 bytes
Redo Buffers 36073472 bytes
Database mounted.
3.nid修改数据库名称
nid target=sys/xxx dbname=BDDEV1 logfile=nid_0219.log
查看日志文件:
[oracle@node3 ~]$ more nid_0219.log
DBNEWID: Release 11.2.0.4.0 - Production on Tue Feb 19 09:33:15 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to database BDDEV2 (DBID=2430401913)
Connected to server version 11.2.0
Control Files in database:
/opt/app/oracle/oradata/BDDEV1/control01.ctl
/opt/app/oracle/fast_recovery_area/BDDEV1/control02.ctl
Changing database ID from 2430401913 to 2391707803
Changing database name from BDDEV2 to BDDEV1
Control File /opt/app/oracle/oradata/BDDEV1/control01.ctl - modified
Control File /opt/app/oracle/fast_recovery_area/BDDEV1/control02.ctl - modified
Datafile /opt/app/oracle/oradata/BDDEV1/system01.db - dbid changed, wrote new name
Datafile /opt/app/oracle/oradata/BDDEV1/sysaux01.db - dbid changed, wrote new name
Datafile /opt/app/oracle/oradata/BDDEV1/undotbs01.db - dbid changed, wrote new name
Datafile /opt/app/oracle/oradata/BDDEV1/users01.db - dbid changed, wrote new name
Datafile /opt/app/oracle/oradata/BDDEV1/tbs_soe.db - dbid changed, wrote new name
Datafile /opt/app/oracle/oradata/BDDEV1/temp01.db - dbid changed, wrote new name
Control File /opt/app/oracle/oradata/BDDEV1/control01.ctl - dbid changed, wrote new name
Control File /opt/app/oracle/fast_recovery_area/BDDEV1/control02.ctl - dbid changed, wrote new name
Instance shut down
Database name changed to BDDEV1.
Modify parameter file and generate a new password file before restarting.
Database ID for database BDDEV1 changed to 2391707803.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.
如果日志文件中有报错信息,比如:NID-00135: There are 1 active threads,则可能是因为没有正常关闭数据库导致的。
4.修改参数文件中db_name后,启动Oracle
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1185853440 bytes
Fixed Size 2252664 bytes
Variable Size 436207752 bytes
Database Buffers 738197504 bytes
Redo Buffers 9195520 bytes
SQL> alter system set db_name=BDDEV1 scope=spfile;
System altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1185853440 bytes
Fixed Size 2252664 bytes
Variable Size 436207752 bytes
Database Buffers 738197504 bytes
Redo Buffers 9195520 bytes
Database mounted.
resetlogs方式打开数据库:
SQL> alter database open resetlogs;
Database altered.
5.打开监听
lsnrctl start