数据库损坏的情况下如何获取到dbid

方法1:
11.2.0.4和12.2.0.1的数据文件头 搜了下dbid的位置,发现在8220字节开始的4个字节处,不确定db_block_size不是8192的库是不是在这个位置
#我用的linux下hexdump,windows用UE打开估计也行吧
[oracle@Monkey PROD3]$ hexdump -s 8220 -n 4 -C users01.dbf
0000201c 28 27 c9 60 |('.`|
00002020
复制代码

存放的数据为 28 27 c9 60

说明:假设数据为60c92728,那么
在big-endian下高位字节在前,存放为:
数据 60 c9 27 28
在little-endian下低位字节在前,存放为:
数据 28 27 C9 60

我的测试平台 Linux X86-64 属于Little ENDIAN_FORMAT,dump数据需反向读
SQL> select * from v$transportable_platform where PLATFORM_NAME like '%Linux%';
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT CON_ID
----------- ------------------------------ -------------- ----------
10 Linux IA (32-bit) Little 0
11 Linux IA (64-bit) Little 0
9 IBM zSeries Based Linux Big 0
13 Linux x86 64-bit Little 0
18 IBM Power Based Linux Big 0
复制代码


所以dbid是 0x60c92728 ,十进制为1623795496
SQL> select to_number('60c92728','XXXXXXXX') from dual;
TO_NUMBER('60C92728','XXXXXXXX')
--------------------------------
1623795496
复制代码


查dbid
SQL> select dbid from v$database;

DBID
----------
1623795496
复制代码

方法2:
[oracle@Monkey ~]$ vi /u01/app/oracle/product/12.2.1/db_1/dbs/initPROD.ora
cat [oracle@Monkey ~]$ cat /u01/app/oracle/product/12.2.1/db_1/dbs/initPROD.ora
db_name=PROD
memory_target=300m
[oracle@Monkey ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 5 10:25:53 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 314572800 bytes
Fixed Size 8620224 bytes
Variable Size 239077184 bytes
Database Buffers 62914560 bytes
Redo Buffers 3960832 bytes
SQL>
SQL> alter system dump datafile '/u01/app/oracle/oradata/PROD3/users01.dbf' block 1;

System altered.

SQL> oradebug setmypid;
oradebug tracefile_name;
Statement processed.
SQL> /u01/app/oracle/diag/rdbms/prod/PROD/trace/PROD_ora_8650.trc
SQL> host vi /u01/app/oracle/diag/rdbms/prod/PROD/trace/PROD_ora_8650.trc
复制代码

很容易就找到块头信息里的Db ID了
*** 2019-07-05T10:30:20.465130+08:00
V10 STYLE FILE HEADER:
Compatibility Vsn = 203423744=0xc200000
Db ID=1623795496=0x60c92728, Db Name='PROD3'
Activation ID=0=0x0
Control Seq=39023=0x986f, File size=64000=0xfa00
File Number=4, Blksiz=8192, File Type=3 DATA

 

posted @ 2019-07-08 09:31  slnngk  阅读(190)  评论(0编辑  收藏  举报