Oracle工具——DBVERIFY
DBVERIFY工具用來驗證資料檔案的物理結構。
DBVERIFY工具的主要目的是為了檢查資料檔案的物理結構,包括資料檔案是否損壞,是否存在邏輯壞塊,以及資料檔案中包含何種型別的資料。
DBVERIFY工具可以驗證ONLINE或OFFLINE的資料檔案。不管資料庫是否開啟,都可以訪問資料檔案。一個最簡單的訪問資料檔案的例子:
E:\oracle>dbv file=e:\oracle\oradata\ytk92\users01.dbf blocksize=8192
DBVERIFY: Release 9.2.0.4.0 - Production on 星期四 3月 26 21:17:44 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - 驗證正在開始 : FILE = e:\oracle\oradata\ytk92\users01.dbf
DBVERIFY - 驗證完成
檢查的頁總數 :8160
處理的頁總數(資料):6867
失敗的頁總數(資料):0
處理的頁總數(索引):743
失敗的頁總數(索引):0
處理的頁總數(其它):270
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數 :280
標記為損壞的總頁數:0
匯入的頁總數 :0
可以看到,dbverify給出的結果包括資料檔案包括的BLOCK數量,其中包括多少個資料塊,多少個索引塊,多少空塊,多少個已經被標誌為壞塊的塊,多少個壞塊。
對於DBVERIFY工具,高版本可以自動識別低版本資料庫,比如11g的dbv訪問9i的資料庫:
DBVERIFY: Release 11.1.0.6.0 - Production on 星期四 3月 26 21:34:28 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - 開始驗證: FILE = e:\oracle\oradata\ytk92\users01.dbf
DBVERIFY - 驗證完成
檢查的頁總數: 8160
處理的頁總數 (資料): 7192
失敗的頁總數 (資料): 0
處理的頁總數 (索引): 415
失敗的頁總數 (索引): 0
處理的頁總數 (其它): 273
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數: 280
標記為損壞的總頁數: 0
流入的頁總數: 0
加密的總頁數 : 0
最高塊 SCN : 1963808326 (1.1963808326)
但是低版本的dbv訪問高版本會報錯:
E:\oracle>dbv file=e:\oracle\oradata\ytk102\yangtk01.dbf blocksize=8192
DBVERIFY: Release 9.2.0.4.0 - Production on 星期四 3月 26 21:42:06 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - 驗證正在開始 : FILE = e:\oracle\oradata\ytk102\yangtk01.dbf
匯入的頁1 - 可能是介質損壞
***
Corrupt block relative dba: 0x00000001 (file 0, block 1)
Fractured block found during dbv:
Data in bad block -
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000010
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
***
標記為損壞的頁2
***
Corrupt block relative dba: 0x00000002 (file 0, block 2)
Bad header found during dbv:
Data in bad block -
type: 2 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000000
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
***
.
.
.
匯入的頁16384 - 可能是介質損壞
***
Corrupt block relative dba: 0x00004000 (file 0, block 16384)
Fractured block found during dbv:
Data in bad block -
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000000
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
***
DBVERIFY - 驗證完成
檢查的頁總數 :16384
處理的頁總數(資料):0
失敗的頁總數(資料):0
處理的頁總數(索引):0
失敗的頁總數(索引):0
處理的頁總數(其它):0
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數 :0
標記為損壞的總頁數:16384
匯入的頁總數 :10744
DBV工具還有一種在資料庫開啟的情況下使用的,驗證指定段的用法:
SQL> CONN /@YTK92 AS SYSDBA
已連線。
SQL> SELECT TABLESPACE_ID, HEADER_FILE, HEADER_BLOCK
2 FROM SYS_DBA_SEGS
3 WHERE SEGMENT_NAME = 'T_T';
TABLESPACE_ID HEADER_FILE HEADER_BLOCK
------------- ----------- ------------
9 9 1387
這種方法需要查詢表空間ID、段頭所在的資料檔案ID和以及段頭所在表空間ID,要獲取這個資訊可以透過SYS使用者查詢SYS_DBA_SEGS檢視。需要注意的是,Oracle文件給出的SYS_USER_SEGS檢視只能查詢SYS使用者的段,要查詢普通使用者的段資訊,需要訪問SYS_DBA_SEGS。
E:\oracle>dbv userid=yangtk/yangtk segment_id=9.9.1387
DBVERIFY: Release 9.2.0.4.0 - Production on 星期四 3月 26 21:56:19 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - 正在啟動驗證: SEGMENT_ID = 9.9.1387
DBVERIFY - 驗證完成
檢查的頁總數 :512
處理的頁總數(資料):470
失敗的頁總數(資料):0
處理的頁總數(索引):26
失敗的頁總數(索引):0
處理的頁總數(其它):15
處理的總頁數 (段) : 1
失敗的總頁數 (段) : 0
空的頁總數 :0
標記為損壞的總頁數:0
匯入的頁總數 :0
這種方式要求資料庫處於開啟的狀態。
由於dbv可以在例項關閉情況下驗證資料檔案,因此dbv也可以驗證資料檔案的複製。
這個複製指的是透過RMAN的COPY命令或者作業系統命令cp複製的資料檔案,而不是RMAN生成的備份集格式。
E:\oracle>rman target /
恢復管理器: 版本9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
連線到目標資料庫: YTK92 (DBID=1285986946)
RMAN> run
2> {
3> copy datafile 'E:\ORACLE\ORADATA\YTK92\USERS01.DBF' to 'e:\userbak.dbf';
4> }
啟動 copy 於 26-3月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=17 devtype=DISK
通道 ORA_DISK_1: 已複製資料檔案 9
輸出檔名=E:\USERBAK.DBF recid=1 stamp=682554612
完成 copy 於 26-3月 -09
RMAN> exit
恢復管理器完成。
E:\oracle>dbv file=e:\userbak.dbf blocksize=8192
DBVERIFY: Release 9.2.0.4.0 - Production on 星期四 3月 26 22:33:13 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - 驗證正在開始 : FILE = e:\userbak.dbf
DBVERIFY - 驗證完成
檢查的頁總數 :8160
處理的頁總數(資料):7192
失敗的頁總數(資料):0
處理的頁總數(索引):415
失敗的頁總數(索引):0
處理的頁總數(其它):273
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數 :280
標記為損壞的總頁數:0
匯入的頁總數 :0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-580296/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DBVERIFY 工具- -
- DBVERIFY 工具的使用
- 修復工具DBVERIFY的使用
- dbverify Utility
- DBVERIFY utility的使用
- 使用dbverify檢測物理損壞
- Oracle工具——csscanOracleCSS
- Oracle工具——WRAPOracle
- Oracle工具——ORAPWDOracle
- Oracle工具(Oracle Tools) – SQLT(SQLTXPLAIN)OracleSQLAI
- oracle unwrap解密工具Oracle解密
- oracle工具 awr formatOracleORM
- Oracle CSSCAN工具使用OracleCSS
- ORACLE 跟蹤工具Oracle
- Oracle 工具匯總Oracle
- Oracle Clusterware工具集Oracle
- Oracle工具——DBNEWIDOracle
- Oracle工具(Oracle Tools) – RDA(RemoteDiagnostic Agent)OracleREM
- Oracle BBED 工具介紹Oracle
- Oracle OS Watcher 工具Oracle
- oracle listener工具知識Oracle
- oracle Export/Import工具使用OracleExportImport
- Oracle BBED 工具 說明Oracle
- Oracle bbed工具的使用Oracle
- oracle 日誌收集工具Oracle
- oracle 效能診斷工具Oracle
- Oracle unwrap小工具Oracle
- Oracle statspack工具使用解析Oracle
- Oracle工具篇之TkprofOracle
- oracle巡檢工具-RDAOracle
- Oracle DBV 工具 介紹Oracle
- 《oracle效能工具包》Oracle
- Oracle OPatch工具-小記Oracle
- Oracle BBED 工具說明Oracle
- 【Oracle】Opatch 工具介紹Oracle
- Oracle工具——ADRCI(三)Oracle
- Oracle工具——ADRCI(二)Oracle
- Oracle工具——ADRCI(一)Oracle