use NID to change dbname

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值