DBNEWID 使用一:更改DBID

DBNEWID 工具的使用:
DBNEWID 工具是用于更改数据库SID和数据库DBNAME;DBID是ORACLE用来标识这个数据库的唯一内部ID号,DBNAME用于标识数据库的唯一名称;
通常情况下用户用户是不容易修改ORACLE的DBID和DBNAME的,但是有特殊情况的时候需要修改,ORACLE为我们提供了DBNEWID这个工具来辅助我们去
更改DBID和DBNAME。

一、更改DBID
DBID是数据库唯一内部标识符,一旦更改后,该数据库的原有日志文件和归档文件均不能使用,同时也会修改所有的控制文件数据文件头部的DBID,并
且在启动的时候必须使用resetlogs选项重新创建数据库的日志组。本人建议在生产环境中不到万不得已最好还是别改,如果一旦要修改DBID,一定要事先停
止当前数据库的所有业务并用RMAN对数据库进行一次全备,后再修改,备份过程再次就不论述了,在后期的RMAN文档中将会有详细的论述。


1、检查数据库的当前DBID
SQL> select dbid,name from v$database;

DBID NAME
---------- ---------
4284499451 WWL

2、关闭数据库,并将数据库启动到MOUNT状态
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 62916176 bytes
Database Buffers 218103808 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> host

3、通过使用NID命令来修改数据库的DBID
[oracle@ora10g dbs]$ nid target=sys/oracle

DBNEWID: Release 10.2.0.1.0 - Production on Wed Dec 7 00:18:52 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to database WWL (DBID=4284499451)

Connected to server version 10.2.0

Control Files in database:
/oradata/wwl/control01.ctl
/oradata/wwl/control02.ctl
/oradata/wwl/control03.ctl

Change database ID of database WWL? (Y/[N]) => Y

Proceeding with operation
Changing database ID from 4284499451 to 4286252909
Control File /oradata/wwl/control01.ctl - modified
Control File /oradata/wwl/control02.ctl - modified
Control File /oradata/wwl/control03.ctl - modified
Datafile /oradata/wwl/system01.dbf - dbid changed
Datafile /data2/test_local_01.dbf - dbid changed
Datafile /oradata/wwl/sysaux01.dbf - dbid changed
Datafile /oradata/wwl/users01.dbf - dbid changed
Datafile /oradata/wwl/test01_01.dbf - dbid changed
Datafile /data2/test001_01.dbf - dbid changed
Datafile /data2/test001_02.dbf - dbid changed
Datafile /data2/test002_01.dbf - dbid changed
Datafile /data2/bigfile001.dbf - dbid changed
Datafile /data2/undotbs2_01.dbf - dbid changed
Datafile /oradata/wwl/temp01.dbf - dbid changed
Datafile /data2/temp01_01.dbf - dbid changed
Control File /oradata/wwl/control01.ctl - dbid changed
Control File /oradata/wwl/control02.ctl - dbid changed
Control File /oradata/wwl/control03.ctl - dbid changed
Instance shut down

Database ID for database WWL changed to 4286252909.
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 ID.
DBNEWID - Completed succesfully.

4、成功修改完DBID后登陆到数据库
[oracle@ora10g dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Dec 7 00:19:41 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

5、首先启动到mount状态
SQL> startup mount;
ORACLE instance started.

Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 62916176 bytes
Database Buffers 218103808 bytes
Redo Buffers 2973696 bytes
Database mounted.

6、将数据库启动到open resetlogs状态,这个时候将会清空原有的redo log组中的信息
SQL> alter database open resetlogs;

Database altered.

7、我们看到DBID已由原来的4284499451改变为4286252909,当然这个改变的值不是我们自己可以控制的。
SQL> select dbid,name from v$database;

DBID NAME
---------- ---------
4286252909 WWL

SQL> select * from v$log;

8、检查redo log 信息已经清空。
SQL> set line 200
SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 1 52428800 1 NO CURRENT 670390 07-12?-11
2 1 0 52428800 1 YES UNUSED 0
3 1 0 52428800 1 YES UNUSED 0

SQL> select * from v$logfile;

GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ---------------------------------------- ---
3 ONLINE /oradata/wwl/redo03.log NO
2 ONLINE /oradata/wwl/redo02.log NO
1 ONLINE /oradata/wwl/redo01.log NO

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 4 52428800 1 YES INACTIVE 671378 07-12?-11
2 1 5 52428800 1 NO CURRENT 671389 07-12?-11
3 1 3 52428800 1 YES INACTIVE 671375 07-12?-11

SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值