[20161003]如何知道資料庫的dbid.txt
[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.應該還有其他方法,我僅僅知道這些。
--別人問的問題,實際上資料恢復我自己都很少需要知道它。實際上方法很多。
--自己做一些測試。
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.應該還有其他方法,我僅僅知道這些。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2125849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你知道資料庫索引的工作原理嗎?資料庫索引
- 如何知道資料庫建立以來併發事務的最大數量資料庫
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 如何建立與現有資料庫相同的空資料庫資料庫
- 誰知道TORQUE在DB2資料庫下的配置DB2資料庫
- 如何修改資料庫例項及資料庫名資料庫
- 資料庫調優和資料遷移是如何影響資料庫的RY資料庫
- 你知道MySQL是如何處理千萬級資料的嗎?MySql
- 這些著名資料庫之間的“關係”,你知道嗎?資料庫
- 90後資料庫大咖,如何看雲資料庫的未來?資料庫
- mongodb 如何建立資料庫MongoDB資料庫
- flask如何更新資料庫Flask資料庫
- 如何避免資料庫被黑資料庫
- 如何分片資料庫? - stackoverflow資料庫
- 100萬資料,如何快速的匯入資料庫?資料庫
- 如何將 EXCEL 資料寫入資料庫Excel資料庫
- python如何將資料插入資料庫Python資料庫
- 如何用flask在資料庫新增資料Flask資料庫
- Linux下常見的開源資料庫,你知道幾個?Linux資料庫
- 青雲釋出RadonDB資料庫 你想知道的都在這裡資料庫
- openGauss賬本資料庫,你不知道的那些事兒資料庫
- php資料庫資料如何去除重複資料呢?PHP資料庫
- 天翼雲RDS資料庫如何修改資料庫引數資料庫
- 資料庫–如何連線RDS例項,使用雲資料庫?資料庫
- 如何將資料庫中的資料導成 excel 檔案資料庫Excel
- 如何使資料庫中取出的資料保持原有格式(轉)資料庫
- 如何構建自己的雲資料庫?建立雲資料庫是否要收費?資料庫
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 如何修復mysql資料庫MySql資料庫
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- 研究資料庫-如何使用mybatis資料庫MyBatis
- MySQL資料庫如何啟動?MySql資料庫
- 如何連線MySQL資料庫MySql資料庫
- Vapor如何配置MySQL資料庫VaporMySql資料庫
- 如何用好圖資料庫資料庫
- 如何優化資料庫物件優化資料庫物件
- 如何刪除oracle資料庫Oracle資料庫