oracle查看dbid,[20180109]如何通过备份确定dbid和dbname

本文介绍了如何通过RMAN catalog命令从备份文件中获取数据库的dbid(数据库标识符)和dbname(数据库名称),包括使用catalog命令进行注册、文件头偏移解析等步骤,并提及其他获取方法。
摘要由CSDN通过智能技术生成

[20180109]如何通过备份确定dbid和dbname.txt

--//如果仅仅存在备份集合,如何确定这个数据库的dbid和dbname呢?很简单,通过另外一个数据库使用rman的catalog命令就可以知道备份

--//集原来数据库的dbid和dbname,通过测试来说明:

1.环境:

SCOTT@book> @ &r/ver1

PORT_STRING                    VERSION        BANNER

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

x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.假设备份在目录/home/oracle/backup/

$ ls -l  /home/oracle/backup/spfile_01soahbi_1_1

-rw-r----- 1 oracle oinstall 98304 2018-01-10 09:22:58 /home/oracle/backup/spfile_01soahbi_1_1

--//注:这个是其它机器的spfile文件备份。

--//使用catalog注册:

RMAN> catalog start with '/home/oracle/backup/spfile_01soahbi_1_1';

using target database control file instead of recovery catalog

searching for all files that match the pattern /home/oracle/backup/spfile_01soahbi_1_1

List of Files Unknown to the Database

=====================================

File Name: /home/oracle/backup/spfile_01soahbi_1_1

Do you really want to catalog the above files (enter YES or NO)? yes

cataloging files...

no files cataloged

List of Files Which Where Not Cataloged

=======================================

File Name: /home/oracle/backup/spfile_01soahbi_1_1

RMAN-07518: Reason: Foreign database file DBID: 1476428194  Database Name: ORCL

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--//注意看下划线。检查:

SYS@orcl> select dbid from v$database ;

DBID

----------

1476428194

--//正好对上。

3.其它方法:

SYS@book> @ &r/10to16 1476428194

10 to 16 HEX   REVERSE16

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

00000580081a2 0xa2810058

$  xxd -c 16  spfile_01soahbi_1_1 | egrep -i "a281 0058|ORCL" | head -2

0004010: 0772 0000 0004 200b 0004 200b a281 0058  .r.... ... ....X

0004020: 4f52 434c 0000 0000 6c7c 0100 0000 0000  ORCL....l|......

--//dbname前面的4个字节就是dbid。如果你查询数据文件:

SYS@book> select dbid from v$database;

DBID

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

1337401710

SYS@book> @ &r/10to16 1337401710

10 to 16 HEX   REVERSE16

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

000004fb7216e 0x6e21b74f

--//通过bbed观察:

BBED> p dba 6,1 kcvfhhdr.kccfhdbi

ub4 kccfhdbi                                @28       0x4fb7216e

BBED> p /d dba 6,1 kcvfhhdr.kccfhdbi

ub4 kccfhdbi                                @28       1337401710

BBED> p /d dba 6,1 kcvfhhdr.kccfhdbn

text kccfhdbn[0]                            @32       66

text kccfhdbn[1]                            @33       79

text kccfhdbn[2]                            @34       79

text kccfhdbn[3]                            @35       75

text kccfhdbn[4]                            @36       32

text kccfhdbn[5]                            @37       32

text kccfhdbn[6]                            @38       32

text kccfhdbn[7]                            @39       32

BBED> p /c dba 6,1 kcvfhhdr.kccfhdbn

text kccfhdbn[0]                            @32      B

text kccfhdbn[1]                            @33      O

text kccfhdbn[2]                            @34      O

text kccfhdbn[3]                            @35      K

text kccfhdbn[4]                            @36      .

text kccfhdbn[5]                            @37      .

text kccfhdbn[6]                            @38      .

text kccfhdbn[7]                            @39      .

--//在文件头偏移28字节处是dbid,接着就是dbname,可以看到dbname最长8个字符。数据文件内存保存的是BOOK加4个空格。

--//可以发现找一个数据库使用rman的catalog命令就可以知道这些信息。另外一点不同版本或者os是否可行,这个不测试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值