[20161003]如何知道数据库的dbid.txt

简介: [20161003]如何知道数据库的dbid.txt --别人问的问题,实际上数据恢复我自己都很少需要知道它。实际上方法很多。 --自己做一些测试。 1.环境: SYS@test> select * from v$version where rownum=1;...
[20161003]如何知道数据库的dbid.txt

--别人问的问题,实际上数据恢复我自己都很少需要知道它。实际上方法很多。
--自己做一些测试。

1.环境:
SYS@test> select * from v$version where rownum=1;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

2.方法1:
--如果能找到控制文件,启动到mount模式。
--控制文件其实无处不在,如果你做rman备份。
SYS@test> startup mount
ORACLE instance started.

Total System Global Area 1252663296 bytes
Fixed Size                  2402152 bytes
Variable Size             788531352 bytes
Database Buffers          452984832 bytes
Redo Buffers                8744960 bytes
Database mounted.

D:\tools\rlwrap>rman target /
rman target /
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Oct 4 21:02:45 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
connected to target database: TEST (DBID=2119378787, not open)

RMAN> show  SNAPSHOT CONTROLFILE name;
RMAN configuration parameters for database with db_unique_name TEST are:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\APP\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\SNCFTEST.ORA'; # default

--也可以执行如下转储:
SYS@test> alter session set events 'immediate trace name controlf level 3';
Session altered.

3.方法2:
--如果你没有控制文件,你做过rman备份,看看备份时留下的日志,其实也能找到dbid。

4.方法3:
--找一个数据文件当然最好system数据文件,做1个转储就能知道dbid。
--实际上你可以把这个文件拷贝到别的机器,使用别的机器做转储:

SYS@test> alter system dump datafile 'D:\app\oracle\oradata\test\SYSTEM01.DBF' block 1 ;
System altered.

--//注意在mount下,datfile后不能跟数字,而是使用文件名。
--//检查转储:

Start dump data block from file D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF minblk 1 maxblk 1
 V10 STYLE FILE HEADER:
    Compatibility Vsn = 202375168=0xc100000
    Db ID=2119378787=0x7e532763, Db Name='TEST'
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Activation ID=0=0x0
    Control Seq=266950=0x412c6, File size=112640=0x1b800
    File Number=1, Blksiz=8192, File Type=3 DATA
Dump all the blocks in range:
End dump data block from file D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF minblk 2 maxblk 1

5.方法4,使用bbed:
BBED> info
 File#  Name                                                         Size(blks)
 -----  ----                                                         ----------
     1  D:\APP\ORACLE\ORADATA\TEST\SYSTEM01.DBF                               0
     2  D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSTEM01.DBF                       0
     3  D:\APP\ORACLE\ORADATA\TEST\SYSAUX01.DBF                               0
     4  D:\APP\ORACLE\ORADATA\TEST\PDBSEED\SYSAUX01.DBF                       0
     5  D:\APP\ORACLE\ORADATA\TEST\UNDOTBS01.DBF                              0
     6  D:\APP\ORACLE\ORADATA\TEST\USERS01.DBF                                0
     7  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSTEM01.DBF                       0
     8  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SYSAUX01.DBF                       0
     9  D:\APP\ORACLE\ORADATA\TEST\TEST01P\SAMPLE_SCHEMA_USERS01.DBF          0
    10  D:\APP\ORACLE\ORADATA\TEST\TEST01P\EXAMPLE01.DBF                      0
    15  D:\APP\ORACLE\ORADATA\TEST\TEST01P\LFREE01.DBF                        0

BBED> set dba 1,2
        DBA             0x00400002 (4194306 1,2)
--//注,我使用windows版本的bbed,无法识别数据文件的第1块,出现偏差,实际上正常使用set dba 1,1.

BBED> p /d kcvfh.kcvfhhdr.kccfhdbi
ub4 kccfhdbi                                @28       2119378787

BBED> p /x kcvfh.kcvfhhdr.kccfhdbi
ub4 kccfhdbi                                @28       0x7e532763

6.应该还有其他方法,我仅仅知道这些。
目录
相关文章
|
3月前
|
SQL NoSQL 关系型数据库
二、什么是数据库(DataBase)
二、什么是数据库(DataBase)
70 0
|
10天前
|
关系型数据库 网络安全 数据库
安装db2数据库
安装db2数据库
11 0
|
4月前
|
存储 SQL 关系型数据库
探索数据库的世界:DB、DBMS、DBA、DBS的全面介绍
探索数据库的世界:DB、DBMS、DBA、DBS的全面介绍
98 0
|
11月前
|
SQL 关系型数据库 数据库
Windows服务器DB2数据库建库过程演示,db2创建表空间、分配权限
Windows服务器DB2数据库建库过程演示,db2创建表空间、分配权限
296 0
|
存储 关系型数据库 API
数据库(Database
数据库(Database
62 0
|
Oracle 算法 关系型数据库
Oracle如何修改数据库的DBID和DBNAME?
Oracle如何修改数据库的DBID和DBNAME?
309 0
|
关系型数据库 Linux 数据库
Linux命令下操作db2数据库
Linux命令下操作db2数据库
|
Oracle 关系型数据库 Linux
利用nid修改数据库的DBID
oracle在恢复中常用到dbid,dbid的作用是什么,它和db_name是不是一一对应关系?
|
Oracle 关系型数据库 数据库