oracle@hp-cpp-11 bdump]$ nid -help
DBNEWID: Release 10.2.0.4.0 - Production on Tue May 11 15:06:41 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
TARGET Username/Password (NONE)
DBNAME New database name (NONE)
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO
APPEND Append to output log NO
HELP Displays these messages NO
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string cdrlog
db_unique_name string cdrlog
global_names boolean FALSE
instance_name string cdrlog
lock_name_space string
log_file_name_convert string
service_names string cdrlog
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
SQL> host
[oracle@hp-cpp-11 oracle]$ nid target=system/internal dbname=testcdr
.......
Control File /opt/oracle/oradata/settle/control01.ctl - dbid changed, wrote new name
Control File /opt/oracle/oradata/settle/control02.ctl - dbid changed, wrote new name
Control File /data/boss/control03.ctl - dbid changed, wrote new name
这里出现长时间等待现象。
shutdown abort 后出现报错:
NID-00600: Internal Error - [28] [3113] [0] [0]
Change of database name and ID failed during validation - database is intact.
DBNEWID - Completed with validation errors.
/*
*看alert log
*/
*** DBNEWID utility started ***
DBID will be changed from 352830500 to new DBID of 2901809528 for database CDRLOG
DBNAME will be changed from CDRLOG to new DBNAME of TESTCDR
Starting datafile conversion
Setting recovery target incarnation to 1
Datafile conversion complete
Database name changed to TESTCDR.
Modify parameter file and generate a new password file before restarting.
Database ID for database TESTCDR changed to 2901809528.
All previous backups and archived redo logs for this database are unusable.
Database has been shutdown, open with RESETLOGS option.
Succesfully changed database name and ID.
*** DBNEWID utility finished succesfully ***
Shutting down instance: further logons disabled
Tue May 11 13:48:09 2010
Stopping background process CJQ0
Tue May 11 13:48:09 2010
Stopping background process MMNL
Tue May 11 13:48:10 2010
Stopping background process MMON
Tue May 11 13:48:11 2010
Shutting down instance (immediate)
License high water mark = 2
Tue May 11 13:48:11 2010
Stopping Job queue slave processes, flags = 7
Tue May 11 13:48:11 2010
Job queue slave processes stopped
Waiting for dispatcher 'D000' to shutdown
Waiting for dispatcher 'D001' to shutdown
Waiting for dispatcher 'D002' to shutdown
All dispatchers and shared servers shutdown
Tue May 11 13:53:14 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 13:58:15 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:03:16 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:08:17 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:13:18 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:18:19 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:23:20 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:28:21 2010
SHUTDOWN: Active processes prevent shutdown operation
Tue May 11 14:33:22 2010
SHUTDOWN: Active processes prevent shutdown operation
create pfile from spfile;
modify initial file
把db_name, instance_name改为new dbname
create spfile from pfile;
重建口令文件
[oracle@hp-cpp-11 dbs]$ orapwd file=/opt/oracle/product/10.2.0.4/dbs/orapwtestcdr password=oracle entries=5
SQL> startup mount;
ORACLE instance started.
Total System Global Area 473956352 bytes
Fixed Size 1268124 bytes
Variable Size 255854180 bytes
Database Buffers 209715200 bytes
Redo Buffers 7118848 bytes
Database mounted.
SQL> alter database open resetlogs;
Database altered.
SQL> select name from v$database;
NAME
---------
TESTCDR
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
settle
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string testcdr
db_unique_name string testcdr
global_names boolean FALSE
instance_name string testcdr
lock_name_space string
log_file_name_convert string
service_names string testcdr
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
TESTCDR
导致问题的原因:由于在执行NID命令的时候,没有退出SQLPLUS,也就是说SYS用户的连接还存在,导致NID在关闭数据库的时候出现了等待
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10173379/viewspace-662439/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10173379/viewspace-662439/