问题7:使用RMAN时,怎么样确定数据库的DBID

本文介绍了在不同情况下,如何确定Oracle数据库的DBID:通过查询v$database视图、使用已知控制文件mount数据库、解析控制文件备份集名称、检查RMAN备份日志、使用strings命令分析数据文件、以及通过恢复目录查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:使用RMAN时,怎么样确定数据库的DBID

可以通过以下的方法确定数据库的DBID

1.  如果数据库是开启的,可以通过下面的一个查询来确定数据库的DBID

SQL> select dbid from v$database;

 

     DBID

----------

 269906945

2.如果所有的数据文件都丢失了,不能使用控制文件的自动备份等等,但是你有一个可用的控制文件,那么利用这个旧的控制文件将数据库置于mount状态,通过类似于1中查询即试图v$database查出数据库的DBID,因为动态性能视图在数据库出于mount状态下,就可以查询

3.如果配置了控制文件自动备份,且备份到了本地,不是在闪回恢复区,那么这个控制文件备份集的名字就包含了DBID,如:

c-269906945-20140913-07

此处:

269906945 就是数据库的DBID

如果数据库是10g,使用了闪回恢复区 + 控制文件自动备份,且备份集为默认的目录,不需要设置DBID,直接通过下面的命令就可以从自动备份集中恢复控制文件或参数文件spfie:

RMAN>startup nomount;

RMAN>restore controlfile from autobackup.

4.如果以前在进行rman备份,真个备份的过程的详细内容被记录下来,或者说有备份的日志,那么也很容易找到数据库的DBID,如:

$ rman target /

Recovery Manager: Release 10.2.0.4.0 -Production on Sat Sep 13 12:53:56 2014

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

connected to target database: RADIUS (DBID=269906945)

RMAN> backup database format'/u01/backup/backup_full/full_%d_%T_%s_%p.bak';

Starting backup at 13-SEP-14

using target database control file instead ofrecovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=139 devtype=DISK

channel ORA_DISK_1: starting full datafilebackupset

channel ORA_DISK_1: specifying datafile(s) inbackupset

input datafile fno=00001name=/u01/oradata/radius/system01.dbf

input datafile fno=00003 name=/u01/oradata/radius/sysaux01.dbf

input datafile fno=00005name=/u01/oradata/radius/example01.dbf

input datafile fno=00002name=/u01/oradata/radius/undotbs01.dbf

input datafile fno=00004name=/u01/oradata/radius/users01.dbf

channel ORA_DISK_1: starting piece 1 at13-SEP-14

channel ORA_DISK_1: finished piece 1 at13-SEP-14

piecehandle=/u01/backup/backup_full/full_RADIUS_20140913_50_1.baktag=TAG20140913T125428 comment=NONE

channel ORA_DISK_1: backup set complete,elapsed time: 00:00:55

Finished backup at 13-SEP-14

Starting Control File and SPFILE Autobackupat 13-SEP-14

piece handle=/tmp/c-269906945-20140913-08comment=NONE

Finished Control File and SPFILE Autobackupat 13-SEP-14

/************************************************************/

【说明】

RMAN进行备份的时候,一定要产生日志,既能了解整个的备份完成的情况,同时也记录了很多在以后的恢复中利用到的信息。如:备份集的名字,路径,归档的序号,dbid等等

5.如果使用的是UNIX系统,如果数据库出现问题,但是仍然有一个数据文件还在,可以通过strings命令进行查看,如下:

$strings undotbs01.dbf | grep MAXVALUE

3587267724,MAXVALUE

...etc.

从上面可以看出,DBID是3587267724

6.如果使用了恢复目录catalog,通过RMAN连接到恢复目录数据库,发起 list incarnation命令,来查询DBID

首先必须将目标数据库置于nomount状态,然后在进行DBID的查询

如:

D:\>rman target <user>/<pwd>@mydb rcvcat <user>/<pwd>@rcat

RecoveryManager: Release 8.1.7.4.1 - Production

RMAN-06193:connected to target database (not started)

RMAN-06008:connected to recovery catalog database

RMAN> startup nomount

RMAN-06196:Oracle instance started

TotalSystem Global Area 94980124 bytes

FixedSize 75804 bytes

VariableSize 57585664 bytes

DatabaseBuffers 37240832 bytes

RedoBuffers 77824 bytes

RMAN> list incarnation;

RMAN-03022:compiling command: list

Listof Database Incarnations

DBKey Inc Key DB Name DB ID CUR Reset SCN Reset Time

-------------- -------- ---------------- --- ---------- --------

12 ORCL817 1411146558 YES 282854 03-DEC-02

-----------------------------------------------------------------

--END--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值