使用dbnewid工具修改dbid和db_name

dbnewid是oracle提供的工具

F:\app\Administrator\product\11.2.0\dbhome_1\BIN>nid
DBNEWID: Release 11.2.0.1.0 - Production on 星期二 1月 13 13:15:46 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

关键字      说明                    (默认值)
----------------------------------------------------
TARGET      用户名/口令              (无)
DBNAME      新的数据库名             (无)
LOGFILE     输出日志                     (无)
REVERT      还原失败的更改            否
SETNAME     仅设置新的数据库名        否
APPEND      附加至输出日志            否
HELP        显示这些消息              否
F:\app\Administrator\product\11.2.0\dbhome_1\BIN>

查询数据库的dbid和dbname

SQL> select dbid,name from v$database;
      DBID NAME
---------- ---------
1369339915 CTW


1.利用nid修改数据库dbid

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  626327552 bytes
Fixed Size                  2178336 bytes
Variable Size             448791264 bytes
Database Buffers          167772160 bytes
Redo Buffers                7585792 bytes
数据库装载完毕。
SQL>
F:\app\Administrator\product\11.2.0\dbhome_1\BIN>nid target=sys/oracle
DBNEWID: Release 11.2.0.1.0 - Production on 星期二 1月 13 13:20:51 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
已连接数据库 CTW (DBID=1369339915)
已连接服务器版本 11.2.0
数据库中的控制文件数:
    F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL
    F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL

是否更改数据库 CTW 的数据库 ID? (Y/[N]) => Y

操作继续进行
将数据库 ID 从 1369339915 更改为 1384712435
    控制文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL - 已修改
    控制文件 F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL - 已修改

    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\SYSTEM01.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\SYSAUX01.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\UNDOTBS01.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\USERS01.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO1.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO2.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO3.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TT_INDEX01.DF - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TT_INDEX02.DF - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TEST.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CESHI1.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TSPTIPTB1.DB - dbid 已更改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TEMP01.DB - dbid 已更改
    控制文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL - dbid 已更改
    控制文件 F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL - dbid
已更改
    实例关闭
数据库 CTW 的数据库 ID 已更改为 1384712435。
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭, 用 RESETLOGS 选项打开数据库。
已成功更改数据库 ID。
DBNEWID - 已成功完成。
F:\app\Administrator\product\11.2.0\dbhome_1\BIN>

启动数据库
C:\Users\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 12.1.0.2.0 Production on 星期二 1月 13 13:23:22 2015
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  626327552 bytes
Fixed Size                  2178336 bytes
Variable Size             448791264 bytes
Database Buffers          167772160 bytes
Redo Buffers                7585792 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

数据库已更改。

再次查看发现dbid已经修改
SQL> select dbid,name from v$database;

      DBID NAME
---------- ---------
1384712435 CTW
SQL>


2.利用nid修改db_name

SQL> select dbid,name from v$database;

      DBID NAME
---------- ---------
1384712435 CTW

把db_name 从ctw修改为nidctw

关闭数据库打开到mount状态
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  626327552 bytes
Fixed Size                  2178336 bytes
Variable Size             448791264 bytes
Database Buffers          167772160 bytes
Redo Buffers                7585792 bytes
数据库装载完毕。
修改dbname为nidctw
F:\app\Administrator\product\11.2.0\dbhome_1\BIN>nid target=sys/oracle dbname=n
dctw setname=y
DBNEWID: Release 11.2.0.1.0 - Production on 星期二 1月 13 13:33:34 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
已连接数据库 CTW (DBID=1384712435)
已连接服务器版本 11.2.0
数据库中的控制文件数:
    F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL
    F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL
是否将数据库 CTW 的数据库名更改为 NIDCTW? (Y/[N]) => Y

操作继续进行
将数据库名从 CTW 更改为 NIDCTW
    控制文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL - 已修改
    控制文件 F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL - 已修改
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\SYSTEM01.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\SYSAUX01.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\UNDOTBS01.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\USERS01.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO1.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO2.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO3.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TT_INDEX01.DF - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TT_INDEX02.DF - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TEST.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CESHI1.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TSPTIPTB1.DB - 已写入新名称
    数据文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\TEMP01.DB - 已写入新名称
    控制文件 F:\APP\ADMINISTRATOR\ORADATA\CTW\CONTROL01.CTL - 已写入新名称
    控制文件 F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\CTW\CONTROL02.CTL - 已写入新名称
    实例关闭

数据库名已更改为 NIDCTW。
修改参数文件并在重新启动前生成新的口令文件。
已成功更改数据库名。
DBNEWID - 已成功完成。
F:\app\Administrator\product\11.2.0\dbhome_1\BIN>

启动数据库

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  626327552 bytes
Fixed Size                  2178336 bytes
Variable Size             448791264 bytes
Database Buffers          167772160 bytes
Redo Buffers                7585792 bytes
ORA-01103: ?????????? ''NIDCTW'' ?? ''CTW''
启动报错原因是工具没有修改参数文件中的dbname 
修改参数文件的db_name
SQL> alter system set db_name=nidctw scope=spfile;
系统已更改。

重新启动数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  626327552 bytes
Fixed Size                  2178336 bytes
Variable Size             448791264 bytes
Database Buffers          167772160 bytes
Redo Buffers                7585792 bytes
数据库装载完毕。
数据库已经打开。
SQL>

查询数据库名发现已经修改成功

SQL>  select dbid,name from v$database;

      DBID NAME
---------- ---------
1384712435 NIDCTW

修改数据库的名字还可以通过重建控制文件来实现修改


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值