在进行数据库恢复的过程中,很多时候我们需要知道Oracle数据库的DBID,通常有以下几种方法可以获得数据库的DBID.
1.查询v$database获得
由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> select dbid from v$database;
DBID
----------
1742847260
2.在nomount状态时
如果数据库配置了自动控制文件备份,并且名称是缺省的,那么我们可以从自动备份文件获得DBID.
CONFIGURE CONTROLFILE AUTOBACKUP ON; 记住在rman中要开启自动备份控制文件
[oracle@node1 dbs]$ cd $ORACLE_HOME/dbs
[oracle@node1 dbs]$ ls -l c*
-rw-r----- 1 oracle dba 9830400 Nov 22 23:22 c-1742847260-20151122-00
这里的1742847260就是DBID。
3.从rman中也可以看到dbid
需要或缺DBID进行恢复通常是因为丢失了所有的控制文件.在恢复时会遇到错误.
[oracle@node1 dbs]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Nov 22 23:34:34 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: NODE1 (DBID=1742847260)
可以在数据库正常的时候记录dbid
从数据文件中也可以读取dbid,不过记住以上3种简单方法,就够用了!