获得数据库DBID的方法

来源:互联网 发布:mac常用免费软件 编辑:程序博客网 时间:2024/06/04 19:15

RMAN工具时通过DBID唯一的标识一个数据库。DBID帮助RMAN找到正确的可以恢复控制文件和spfile的备份集。如果我们的备份策略并没有使用Recovery Catalog或者Flash Recovery Area,那么在恢复spfile和控制文件时就需要知道DBID。而如果备份策略使用了Recovery Catalog或者Flashback Area,RMAN就会自动找到DBID了。

有4种方法可以获得一个数据库的DBID,其中有两种是事前,两种是事后获得,对于我们来说更重要的是如何在发生事故后获得数据库的DBID。

1.查询v$database获得

由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得.

SQL> alter database mount;

Database altered.

SQL> select dbid from v$database;

      DBID

----------

3152029224

SQL>  


2.从自动备份中恢复

需要或缺DBID进行恢复通常是因为丢失了所有的控制文件.在恢复时会遇到错误.

[oracle@jumper dbs]$ rman target  /

Recovery Manager: Release 9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database: conner (not mounted)

RMAN> restore controlfile from autobackup;

Starting restore at 05-FEB-06

using target database controlfile instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=11 devtype=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 02/05/2006 20:47:25
RMAN-06495: must explicitly specify DBID with SET DBID command

如果存在自动备份,我们通常可以直接恢复控制文件,mount数据库之后就好办了:

RMAN> restore controlfile from '/opt/oracle/product/9.2.0/dbs/c-3152029224-20051221-00';Starting restore at 05-FEB-06using channel ORA_DISK_1channel ORA_DISK_1: restoring controlfilechannel ORA_DISK_1: restore completereplicating controlfileinput filename=/opt/oracle/oradata/conner/control01.ctloutput filename=/opt/oracle/oradata/conner/control02.ctloutput filename=/opt/oracle/oradata/conner/control03.ctlFinished restore at 05-FEB-06 


3.通过数据文件、日志文件(联机或者归档)

只要还有一个数据文件、日志文件、归档文件存在,我们就可以获得数据库的DBID。这时数据库不必处于mount状态(也就是说可以没有控制文件)

从数据文件获得:

  1. SQL> connect / as sysdba  
  2. SQL> startup nomount;  
  3. SQL> alter system dump datafile '/<PATH>/
    system01.dbf' block min 1 block max 10; 

从日志文件(归档或者联机)获得:

  1. SQL> alter system dump logfile '<log file name>'; 

找到user_dump目录下的trace文件,在其中寻找Db ID(注意,不是DBID)字样。

4.根据自动备份的控制文件得到

如果知道自动备份的控制文件的位置,也可以从文件名得到DBID。自动备份的控制文件名是c-IIIIIIIIII-YYYYMMDD-QQ格式的,其中的IIIIIIIIII就是数据库的DBID。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 没办离职的社保怎么办 家里吊顶上有老鼠怎么办 房间里进老鼠了怎么办 衣服上有老鼠屎怎么办 如果被老鼠咬了怎么办 儿童被老鼠咬了怎么办 蟑螂爬到衣柜里怎么办 床垫里有老鼠屎怎么办 汽车里进了老鼠怎么办 狗狗感染蜱虫怎么办 脸上有螨虫怎么办才能去除 老鼠被剪丁丁后怎么办 1楼下水道钻老鼠怎么办 月经来了奶水少了怎么办 孕37周霉菌严重怎么办 家里进了飞蚂蚁怎么办 家里进了大蜘蛛怎么办 衣服上有蟑螂卵怎么办 被子上有蟑螂卵怎么办 厨房里的小飞虫怎么办 水果生的小飞虫怎么办 家里的厕所有虫怎么办 人吃了蟑螂药怎么办 静电贴粘不住了怎么办 会飞的蚂蚁咬了怎么办 家里有白蚁怎么办能除根 华为畅享5s黑屏怎么办 家里有个蚂蚁窝怎么办 宿舍有老鼠爬床怎么办 楼上的狗叫扰民怎么办 楼下的狗一直叫怎么办 焊机通电没反应怎么办 输了3万块钱怎么办 行吊遥控器掉了怎么办 狗狗耳朵尖结痂怎么办 蚊帐里进了蚊子怎么办 孕妇用了点蚊香怎么办 孕妇用了电蚊香怎么办 房子里用蟑螂药怎么办 永恒之塔卡住了怎么办 银行口令卡丢了怎么办