您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么使用DBV”,在日常操作中,相信很多人在怎么使用DBV問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用DBV”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
dbverify工具的主要目的是為了檢查數據文件的物理結構,包括數據文件是否損壞,是否存在邏輯壞塊,以及數據文件中包含何種類型的數據。
DBV 檢查以確保Oracle數據文件:
數據文件有一個有效的塊頭
每個數據塊在文件中有一個特殊的“wrapper”標識塊,這“wrapper”是為了校驗正確性
數據 (表) 和索引塊是內部一致的
從8.1.6起:多塊類型的內部一致性(如回滾segment blocks)
DBV 只能檢測可以被 'ANALYZE TABLE .. VALIDATE STRUCTURE CASCADE'命令檢測的塊,像索引、表錯誤等
這個工具只能用于對數據文件。它不能用來驗證歸檔文件或控制文件。
你可以使用DBV驗證自動儲存管理(ASM)文件。
然而,數據庫必須打開,選擇用戶名已使用
例如:dbv file=+DG1/ORCL/datafile/system01.dbf userid=system/sys
DBV檢查用戶名/密碼為ASM文件管理,當數據庫不是open狀態則不可能。
在大多數版本的UNIX,DBV 基于文件擴展名。DBV 要求datafile 必須有擴展名
如果裸設備沒有擴展名,可以創建一個link,然后在進行dbv 檢查。
例如:ln -s /dev/rdsk/mydevice /tmp/mydevice.dbf
對于原始設備,你應該使用“END”參數,以避免運行結束的文件空間的結束。
例如:"dbv FILE=/dev/rdsk/r1.dbf END=<last_block_number>"
用 file#=5 找到 END 值
select BYTES/8192 from v$datafile where FILE#=5; BYTES/8192 ---------- 5120
dbv file=/dev/rdsk/r1.dbf blocksize=8192 END=5120
DBV可能無法掃描數據文件大于2GB同時報告”dbv-100”。如果你得到了dbv-100 錯誤首先請檢查文件大小。
DBV 從 8.1.6 起如果從 Oracle 7 遷移,基于回滾段塊會報虛假錯誤。見錯誤:1359160 和注意事項:118008.1。
DBV only checks a block in isolation -it does not know if the block is part of an existing object or not.
DBV 只檢查這個塊,它不知道這個塊是否是一個已經存在的對象的一部分。
DBV 在 SCO Unix 上是不可用的,另見 Bug:814249
DBV 是向下兼容的,不可用于高版本
驗證ASM 上的文件
查詢數據文件路徑
select file_name from dba_data_Files;
dbv check ASM 上的文件,注意添加userid參數
[oracle@rac2 ~]$ dbv file='+DATA/anqing/datafile/undotbs02.dbf' userid=sys/oracle
驗證普通datafile
實例沒有啟動的情況下進行datafile 驗證
這種情況下,db沒有啟動,要進入數據文件的存放目錄后在運行該命令,不然會報找不到數據文件。
dbv file=undotbs01.dbf
DB open 狀態,驗證指定段
可以通過sys_dba_segs表獲取tablespace_id,header_file, header_block三個字段,他們分別對應tsn,relfile,
block. select tablespace_id,header_file, header_block from sys_dba_segs where segment_name = 'TA'; TABLESPACE_ID HEADER_FILE HEADER_BLOCK ------------- ----------- ------------ 0 1 71513
語法:dbv USERID=username/password SEGMENT_ID=tsn.relfile.block
[oracle@rac2 ~]$ dbv segment_id=0.1.71513 userid=system/oracle
注:這種方式要求數據庫處于打開的狀態。
驗證數據拷貝
由于dbv可以在實例關閉情況下驗證數據文件,因此dbv也可以驗證數據文件的拷貝。這個拷貝指的是通過RMAN的COPY命令或者操作系統命令cp拷貝的數據文件,而不是RMAN生成的備份集格式。
通過比較2個dbv 的結果來比較datafile 的copy
[oracle@node1 ~]$ dbv file='/oradata/orcl/test01.dbf' userid=sys/oracle DBVERIFY: Release 11.2.0.4.0 - Production on Wed Aug 17 15:15:52 2016 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting(開始驗證) : FILE = /oradata/orcl/test01.dbf DBVERIFY - Verification complete(驗證完成) Total Pages Examined(檢查的頁總數) : 655360 Total Pages Processed (Data) 處理的頁總數 (數據): 261936 Total Pages Failing (Data) 失敗的頁總數 (數據): 0 Total Pages Processed (Index)處理的頁總數 (索引): 0 Total Pages Failing (Index)失敗的頁總數 (索引): 0 Total Pages Processed (Other)處理的頁總數 (其它): 876 Total Pages Processed (Seg)處理的總頁數 (段) : 3 Total Pages Failing (Seg)失敗的總頁數 (段) : 0 Total Pages Empty空的頁總數 : 392545 Total Pages Marked Corrupt標記為損壞的總頁數 : 0 Total Pages Influx流入的頁總數 : 0 Total Pages Encrypted加密的總頁數 : 0 Highest block SCN最高塊 SCN : 117357549 (0.117357549)
到此,關于“怎么使用DBV”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。