Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称或者生成新的dbid,而无需通过之前重建控制文件等繁琐方式
1.查看当前实例名和数据库名
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test
SQL> select name from v$database;
NAME
---------
TEST
2.关闭数据库
SQL> shutdown immediate
Database dismounted.
ORACLE instance shut down.
3.启动数据库到mount状态
SQL> startup mount;
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1218532 bytes
Variable Size 67110940 bytes
Database Buffers 134217728 bytes
Redo Buffers 2973696 bytes
Database mounted.
4.使用NID更改数据库名
SQL> host nid target=sys/test123 dbname=test2;
DBNEWID: Release 10.2.0.1.0 - Production on Wed Jul 21 16:31:20 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to database TESTORA (DBID=547002923)
Connected to server version 10.2.0
Control Files in database:
/u01/oradata/oratest/control01.ctl
/u01/oradata/oratest/control02.ctl
/u01/oradata/oratest/control03.ctl
Change database ID and database name TESTORA to TEST? (Y/[N]) => y
Proceeding with operation
Changing database ID from 547002923 to 2023088600
Changing database name from TESTORA to TEST2
Control File /u01/oradata/oratest/control01.ctl - modified
Control File /u01/oradata/oratest/control02.ctl - modified
Control File /u01/oradata/oratest/control03.ctl - modified
Datafile /u01/oradata/oratest/system01.dbf - dbid changed, wrote new name
Datafile /u01/oradata/oratest/undotbs01.dbf - dbid changed, wrote new name
Datafile /u01/oradata/oratest/sysaux01.dbf - dbid changed, wrote new name
Datafile /u01/oradata/oratest/users01.dbf - dbid changed, wrote new name
Datafile /u01/oradata/oratest/test.dbf - dbid changed, wrote new name
Datafile /u01/oradata/oratest/temp02.dbf - dbid changed, wrote new name
Control File /u01/oradata/oratest/control01.ctl - dbid changed, wrote new name
Control File /u01/oradata/oratest/control02.ctl - dbid changed, wrote new name
Control File /u01/oradata/oratest/control03.ctl - dbid changed, wrote new name
Instance shut down
Database name changed to TEST2.
Modify parameter file and generate a new password file before restarting.
Database ID for database TEST changed to 2023088600.
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.
5.关闭数据库
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
6.修改初始化参数文件inittest.ora
*.instance_name=test2
*.db_name=test2
7.重建spfile文件
SQL> startup nomount pfile='/opt/oracle/product/10.2.0/dbs/inittest2.ora'
SQL> CREATE SPFILE FROM PFILE;
File created.
8.重建口令文件
[oracle@local~]$ orapwd file='/opt/oracle/product/10.2.0/db_1/dbs/orapwtest2' password=test123 entries=10
***注意windows与linux下密码文件格式的区别***
On UNIX, the file name MUST be orapw<SID>, <SID> being the name of the instance.密码文件目录 $ORACLE_HOME/dbsOn Windows, the file name MUST be pwd<SID>.ORA.密码文件目录%ORACLE_HOME%\database
9.关闭数据库
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
10.mount数据库,使用resetlogs打开
SQL> startup mount;
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1218532 bytes
Variable Size 67110940 bytes
Database Buffers 134217728 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> alter database open resetlogs;
Database altered.
11.验证数据库名和实例名
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
808938177 TEST2
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test2
本文详细介绍了如何使用NID工具在不重建控制文件的情况下更改数据库名称和ID,包括关闭数据库、启动到mount状态、使用NID更改数据库名、关闭数据库、修改参数文件、重建spfile、重建口令文件、mount数据库并使用resetlogs打开,最终验证数据库名和实例名的整个过程。
802

被折叠的 条评论
为什么被折叠?



