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>

 

 

 

时间: 2024-11-06 07:20:57

DBNEWID 使用一:更改DBID的相关文章

Oracle 错误总结及问题解决 ORA

参考地址 ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常.ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程:无法转换会话ORA-00022: 无效的会话 ID:访问被拒绝ORA-00023: 会话引用进程私用内存:无法分离会话ORA-00024: 单一进程模式下不允许从多个进程注册

Oracle中使用RMAN 异机复制数据库

RMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上 实验平台: REDHAT linux 4.7 + oracle 10g 目标库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1 ORACLE_SID:orcl IP: 192.168.1.20 辅助库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME:

如何修改Oracle数据库的DBID

有的时候相同的DBID是有问题的,如:在同一台机器上做逻辑DG. 修改的方式如下: 关闭数据库 SHUTDOWN IMMEDIATE 启动数据库到mount的状态 STARTUP MOUNT 使用nid 命令进行更改,如下: [oracle@dg2 ~]$ nid target=sys/password@LHZ DBNEWID: Release 10.2.0.1.0 - Production on Mon Jan 16 09:18:00 2012 Copyright (c) 1982, 2005

DBNEWID工具使用二:修改DBNAME

二.使用DBNEWID修改DBNAME 1.查看当前的DBNAME SQL> select name from v$database;  NAME  ---------  WWL   2.创建参数文件 SQL> create pfile from spfile;                               File created.                 3.关闭数据库 SQL> shutdown immediate Database closed. Datab

oracle 更改数据库名的方法_oracle

如何修改数据库名(db_name)及实例名(Instance_name or Service_name) Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式. nid是自带的工具,在oracle_home/bin目录中.以下方法假设登陆到数据库本机做. 目的:在本例中,假设原来的数据库名为orcl,要改成dborcl,原实例名(service_name,instance_name)orcl,要改成dborcl. 步骤概述: 1.检查当前的参

DBID,SID,DB_NAME,DB_DOMAIN,INSTANCE_NAME,DB_UNIQUE_NAME,SERVICE_NAMES 及监听参数的说明

这篇文章中要讲的几个参数:        DB 相关的:        PFILE中的参数:DB_NAME,DB_DOMAIN,  INSTANCE_NAME,                             DB_UNIQUE_NAME,SERVICE_NAMES,                             GLOBAL_NAME,GLOBAL_NAMES        Listener.ora中参数:                             SID_NA

使用nid命令修改 db name 及 dbid

    工作中不可避免地碰到需要修改dbname以及dbid的情形,如将数据库恢复到同一台机器的情形是其中之一.但dbname以及dbid是用于标识数据库的重要标志之一,尤其是dbid,具有唯一性,因此对其修改应慎重处理.本文描述了修改dbname以及dbid的步骤并给出示例.   1.修改dbid及dbname的影响 a.修改dbid     等同于创建一个新的数据库,不同的是数据已经存在于数据文件.这是由dbid的唯一性决定的.     修改之后所有之前的备份与归档日志将不可用,因为在恢复时

使用dbms_backup_restore包修改dbname及dbid

      修改dbname以及dbid通常在使用RMAN还原到异机之后需要更改dbname以及dbid的情形.对于这个修改我们可以借助于命令行下的nid工具来完成.同时也可以直接调用API来实现.本文即是通过dbms_backup_restore方式来修改dbname及dbid,供大家参考.       有关使用nid方式修改dbname及dbid,请参考:使用nid命令修改 db name 及 dbid   1.修改dbid及dbname的步骤    a.一致性关闭数据库并启动数据库到rea

使用NID修改DBID和DBNAME实验

 使用NID修改DBID和DBNAME实验   在Oracle中,DBID和DBNAME是两个低调但又是及其重要的对象.作为标记信息,DBID和DBNAME广泛的出现在参数文件.密码文件.数据文件和日志文件中,更有甚者在备份集合归档日志中.笔者看过一位前辈的文章中,强调称职DBA应该将管理数据库的DBID牢记于心.   一般情况下,已经创建好的数据库是不需要修改DBID和DBNAME信息的.因为,修改这些信息意味着Oracle关键信息的变化,和大量备份数据的废止.如果需要进行变更,一定要按照固定