在資料庫各種狀態下查詢DBID的五大類十種方法彙總
-
關於DBID:
-
DBID是DataBase IDentifier的縮寫,意思就是資料庫的唯一識別符號。
-
這個DBID在資料檔案頭和控制檔案都是存在的,可以用於標示資料檔案的歸屬。
-
對於不同資料庫來說,DBID應當不同,而db_name則可能是相同的。
-
但是DBID是可變的,在進行資料庫Clone等操作時,DBID可以被重置。
-
dbid是一個根據db_name \ db create time等hash出來的值
-
-
NOMOUNT/MOUNT/OPEN及未開啟資料庫等狀態時,查詢或獲取資料庫DBID的方法彙總:五大種類合計10種方法
-
一、資料庫MOUNT/OPEN時,從v$database查詢獲得
-
1.由於DBID在控制檔案和資料檔案中都存在記錄,所以如果能夠mount資料庫就可以查詢v$database檢視獲得.
-
BYS@ bys3>select dbid,open_mode from v$database;
-
DBID OPEN_MODE
-
---------- --------------------
-
3358363031 READ WRITE
-
SYS@ bys3>select dbid,open_mode from v$database;
-
DBID OPEN_MODE
-
---------- --------------------
-
3358363031 MOUNTED
-
-
二、使用RMAN的自動備份或日誌來獲取:
-
2.從自動備份控制檔案集的名字查詢DBID,詳見:http://blog.csdn.net/q947817003/article/details/16370735
-
3.從RMAN備份時產生的日誌檔案查詢DBID,與上一步在同一篇部落格。詳見:http://blog.csdn.net/q947817003/article/details/16370735
-
-
三、透過oracle event來dump資料檔案頭、日誌檔案頭、控制檔案頭資訊來獲取DBID
-
下面三種方法都要求資料庫在MOUNT或OPEN狀態,且只能DUMP自己資料庫的檔案。
-
4.透過oracle event來dump資料檔案頭來獲取DBID,詳見:http://blog.csdn.net/q947817003/article/details/16369041
-
5.透過oracle event來dump控制檔案頭來獲取DBID,詳見:http://blog.csdn.net/q947817003/article/details/16370273
-
6.透過oracle event來dump REDO日誌檔案頭來獲取DBID,詳見:http://blog.csdn.net/q947817003/article/details/16370539
-
-
四、透過alter system dump logfile命令來DUMP REDO及歸檔日誌
-
這種方法資料庫可以在NOMOUNT/MOUNT/OPEN階段,只用指定檔名,就可以DUMP自己資料庫或其它資料庫的檔案(傳到當前庫)。
-
個人見解:
-
在需要DBID才能進行資料恢復時,alter system dump logfile 'filename';明顯適應更多更復雜的場景,因為REDO日誌或歸檔日誌總會剩一個兩個的,憑此就可以找到DBID了,哈哈。
-
7.透過alter system dump logfile命令來DUMP REDO日誌檔案頭來獲取DBID,詳見:http://blog.csdn.net/q947817003/article/details/16370203
-
8.透過alter system dump logfile命令來DUMP 歸檔日誌檔案頭來獲取DBID,方法了上一步完全一樣。詳見:http://blog.csdn.net/q947817003/article/details/16370203
-
-
五.用BBED--詳見:http://blog.csdn.net/q947817003/article/details/16996475 這裡只貼一小部分:
-
BBED> map
-
File: /u01/oradata/bys3/system01.dbf (1)
-
Block: 1 Dba:0x00400001
-
------------------------------------------------------------
-
Data File Header
-
-
struct kcvfh, 860 bytes @0
-
-
ub4 tailchk @8188
-
BBED> print kcvfhhdr
-
struct kcvfhhdr, 76 bytes @20
-
ub4 kccfhswv @20 0x00000000
-
ub4 kccfhcvn @24 0x0b200000
-
ub4 kccfhdbi @28 0xc82c8d97
-
text kccfhdbn[0] @32 B
-
text kccfhdbn[1] @33 Y
-
text kccfhdbn[2] @34 S
-
text kccfhdbn[3] @35 3
-
text kccfhdbn[4] @36
-
text kccfhdbn[5] @37
-
DBID是對應的:ub4 kccfhdbi @28 0xc82c8d97 kccfhdbi--這個名字最後三位也能聯想下DBID
-
可以計算出DBID:16進位制c82c8d97,轉換為10進位制數字:
-
BYS@ bys3>select name,dbid from v$database;
-
NAME DBID
-
--------- ----------
-
BYS3 3358363031
-
BYS@ bys3>select to_number('c82c8d97','xxxxxxxxxxxxx') from dual;
-
TO_NUMBER('C82C8D97','XXXXXXXXXXXXX')
-
-------------------------------------
-
3358363031
-
DB_NAME從上面text kccfhdbn幾個位元組可以看出--不需要計算了:--也可以看出,DB_NAME不能超過8個字元的原因了
- 六、不是技術的技術
-
透過包獲取:
select dbms_swrf_internal.get_awr_dbid from dual ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28878983/viewspace-2136096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 資料庫的各種狀態和模式Oracle資料庫模式
- openguass 資料庫狀態查詢資料庫
- mysql資料庫連表查詢的幾種方法MySql資料庫
- Oracle資料庫中的多種SCN彙總Oracle資料庫
- 常用資料庫查詢統計彙總資料庫
- 五種查詢Internet連線狀態[含IP]的方法 (轉)
- Mybatis各種模糊查詢MyBatis
- Ubuntu各種錯誤彙總Ubuntu
- 50種方法最佳化SQL Server資料庫查詢SQLServer資料庫
- 【YashanDB資料庫】yasboot查詢資料庫狀態時顯示資料庫狀態為off資料庫boot
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- 執行緒各種狀態執行緒
- 如何高效撤銷Git管理的檔案在各種狀態下的更改Git
- 超全的各類企業工商資訊查詢API彙總API
- 資料庫的三種狀態RESTRICT、QUIESCE和SUSPEND資料庫RESTUI
- ArchLinux各種問題彙總Linux
- JDBC連線各種資料庫的方法(經典)JDBC資料庫
- mysql資料庫操作之------查的各種小細節MySql資料庫
- 資料庫共有三種狀態:quiesce、resrict、suspend資料庫UI
- 各種資料庫連線資料庫
- Oracle各種版本下“示例資料庫的建立”的建立Oracle資料庫
- 資料庫連線的方法種種資料庫
- oracle 查詢結果的各種格式Oracle
- spring和Mybatis的各種查詢SpringMyBatis
- Matlab各種隨機數彙總Matlab隨機
- javascript 動態修改css樣式方法彙總(四種方法)JavaScriptCSS
- 資料庫查詢優化:巢狀查詢資料庫優化巢狀
- iOS模擬各種網路狀態iOS
- Mybatis中模糊查詢的各種寫法MyBatis
- 5種狀況下的HTTP狀態碼HTTP
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- oracle資料庫獲取繫結變數的各種方法Oracle資料庫變數
- 資料庫備份的種類資料庫
- SSH_hibernate---六種查詢資料庫方式資料庫
- Oracle LISTENER 中各種狀態資訊的含義Oracle
- 資料泵引數彙總與各種匯出匯入規則
- UIButton基本狀態及各種疊加狀態詳解UI