在进行数据库恢复的过程中,很多时候我们需要知道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种简单方法,就够用了!