<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    Oracle DBVERIFY 工具介紹
    ?
    ??? Oracle DBVERIFY是一個可以用來查看數據庫物理文件正確性的外部命令工具,由Oracle軟件自帶。可以在線/離線情況下對數據庫進行檢查,甚至可以對數據庫的備份文件進行檢查。并可以在數據發生錯誤或破壞時對數據庫進行診斷,以幫助進行恢復。當然數據庫可以直接使用DBMS_REPAIR來實現這個功能,但是兩者還是有所區別的,所以有必要來學習一下。
    ?
    ??? 首先給出Oracle官方對DBVERIFY的介紹:
    ?
    DBVERIFY: Offline Database Verification Utility
    ?
    DBVERIFY is an external command-line utility that performs a physical data structure integrity check. It can be used on offline or online databases, as well on backup files. You use DBVERIFY primarily when you need to ensure that a backup database (or datafile) is valid before it is restored, or as a diagnostic aid when you have encountered data corruption problems.
    ?
    Because DBVERIFY can be run against an offline database, integrity checks are significantly faster.
    ?
    DBVERIFY checks are limited to cache-managed blocks (that is, data blocks). Because DBVERIFY is only for use with datafiles, it will not work against control files or redo logs.
    ?
    ?
    ?
    ??? 接下來講一下DBVERIFY的用法。DBVERIFY可以有2種用法,一種是對datafile進行檢查,另一種是對segment進行檢查。兩者都是使用“dev”命令進行,但是所用的格式和結果都有所差異,下面看一下:
    ?
    ?
    一、使用DBVERIFY檢查單個datafile的Disk Blocks
    ?
    ??? 在這個模式下面,DBVERIFY掃描某個datafile中的一個或者多個Disk Blocks,并生成一份結果。需要注意的是:如果datafile使用ASM(Automatic Storage Management)進行文件存儲,則需要提供一個USERID,因為DBVERIFY需要連接到這個ASM文件。
    ?
    ??? 對datafile的DBVERIFY命令語法如下:
    ?
    ??? dbv [ USERID=username/password ]
    ??????? FILE = filename
    ????? | { START = block_address | END = block_address }
    ????? | BLOCKSIZE = integer
    ????? | LOGFILE = filename
    ????? | FEEDBACK = integer
    ????? | HELP? = { Y | N }
    ????? | PARFILE = filename
    ???
    ?
    ??? 對語法做一些說明:
    ???
    ??? USERID:?? 指定用戶名/密碼,在ASM存儲環境下使用;
    ??? FILE:???? 提供需要檢測的datafile名(需要指定文件的完整路徑);
    ??? START:??? 指定verify開始的block地址。如果沒有指定,則默認從第一個block開始;
    ??? END:????? 指定verify結束的block地址。如果沒有指定,則默認為最后一個block;
    ??? BLOCKSIZE:如果你的block size不是2k,那么必須指定這個參數,否則返回DBV-00103錯誤;
    ??? LOGFILE:? 指定最終結果的輸出文本。如果不定義,則直接在執行終端顯示;
    ??? FEEDBACK: 回饋DBVERIFY在檢查過程中的信息,跟的參數n代表n頁。如果n=0則表示買有;
    ??? HELP:???? 提供在線幫助;
    ??? PARFILE:? 使用parameter file來存儲設定的參數,然后每次直接調用執行
    ?
    ?
    ??? 下面就是一個最簡單的例子來使用DBVERIFY:
    ?
    % dbv FILE=t_db1.dbf FEEDBACK=100
    DBVERIFY: Release 10.2.0.3.0 - Production on Mon Aug 17 12:21:58 2009
    ?
    Copyright (c) 1982, 2005, Oracle.? All rights reserved.

    DBVERIFY - Verification starting : FILE = t_db1.dbf
    ?
    ................................................................................
    ?
    ?
    DBVERIFY - Verification complete
    ?
    Total Pages Examined???????? : 9216
    Total Pages Processed (Data) : 2044
    Total Pages Failing?? (Data) : 0
    Total Pages Processed (Index): 733
    Total Pages Failing?? (Index): 0
    Total Pages Empty??????????? : 5686
    Total Pages Marked Corrupt?? : 0
    ?
    Total Pages Influx?????????? : 0
    ??? 說明:
    ?
    ??? Pages = Blocks
    ??? Total Pages Examined = number of blocks in the file
    ??? Total Pages Processed = number of blocks that were verified (formatted blocks)
    ??? Total Pages Failing (Data) = number of blocks that failed the data block checking routine
    ??? Total Pages Failing (Index) = number of blocks that failed the index block checking routine
    ??? Total Pages Marked Corrupt = number of blocks for which the cache header is invalid, thereby making it impossible for DBVERIFY to identify the block type
    ??? Total Pages Influx = number of blocks that are being read and written to at the same time. If the database is open when DBVERIFY is run, DBVERIFY reads blocks multiple times to get a consistent image. But because the database is open, there may be blocks that are being read and written to at the same time (INFLUX). DBVERIFY cannot get a consistent image of pages that are in flux.
    ?
    ?
    二、使用DBVERIFY檢查Segment
    ?
    ??? 在這個模式下面,可以使用DBVERIFY來檢測一個表or索引的segment的可用性。指定segment的所有鏈表均會被檢測。需要注意的是,該模式下需要提供一個SYSDBA的用戶和密碼,因為需要從數據庫中獲取的segment的信息。
    ?
    ??? 當使用這個模式時,針對的那個segment會被加鎖。如果是一個索引的segment,則所在的父表被加鎖。(IOT沒有父表)
    ?
    ??? 對segment的DBVERIFY命令語法如下:
    ??? dbverify_seg ::=
    ?
    ????? dbv USERID = username/password
    ????? | SEGMENT_ID = tsn.segfile.segblock
    ????? | LOGFILE = filename
    ????? | FEEDBACK = integer
    ????? | HELP? = { Y | N }
    ????? | PARFILE = filename?
    ???
    ?
    ??? 對語法做一些說明:
    ?
    ??? USERID:??? 必須指定用戶名和密碼;
    ??? SEGMENT_ID:需要指定segment id;
    ??????? 這個ID由3部分組成,分別是Tablespace_ID、Segment_Header_File_Number、Segment_Header_Block_Number
    ??????? 3者中間用'.'隔開。可以用這段SQL來直接查詢得到:
    ??????? select a.ts# || '.' || b.header_file || '.' || b.header_block
    ????????? from v$tablespace a, dba_segments b
    ???????? where a.name = b.tablespace_name
    ?????????? and b.segment_name = 'segment_name';
    ??? LOGFILE:??? 指定最終結果的輸出文本。如果不定義,則直接在執行終端顯示;
    ??? FEEDBACK:? 回饋DBVERIFY在檢查過程中的信息,跟的參數n代表n頁。如果n=0則表示買有;
    ??? HELP:????? 提供在線幫助;
    ??? PARFILE:?? 使用parameter file來存儲設定的參數,然后每次直接調用執行
    ?

    ??? 舉個例子:
    ?
    % dbv USERID=hr/hr SEGMENT_ID=1.2.67
    DBVERIFY - Verification starting : SEGMENT_ID = 1.2.67
    ?
    DBVERIFY - Verification complete
    ?
    Total Pages Examined???????? : 8
    Total Pages Processed (Data) : 0
    Total Pages Failing?? (Data) : 0
    Total Pages Processed (Index): 1
    Total Pages Failing?? (Index): 0
    Total Pages Processed (Other): 2
    Total Pages Processed (Seg)? : 1
    Total Pages Failing?? (Seg)? : 0
    Total Pages Empty??????????? : 4
    Total Pages Marked Corrupt?? : 0
    Total Pages Influx?????????? : 0
    Highest block SCN??????????? : 7358 (0.7358)
    ??? 信息含義與上同。
    ?
    ?
    ?
    ?
    posted on 2009-03-19 23:19 decode360 閱讀(963) 評論(0)  編輯  收藏 所屬分類: 10.DB_Tools
    主站蜘蛛池模板: 成人免费午夜视频| 无码一区二区三区免费视频| 国产精品亚洲不卡一区二区三区 | 日韩电影免费在线观看中文字幕| 亚洲伦乱亚洲h视频| 一级做性色a爰片久久毛片免费| 亚洲&#228;v永久无码精品天堂久久 | 亚洲国产精品无码久久九九大片| 18禁无遮挡无码网站免费| 亚洲黄页网在线观看| 男人的好免费观看在线视频| 亚洲日韩久久综合中文字幕| 国产乱子伦精品免费女 | 最近免费mv在线观看动漫| 亚洲av中文无码乱人伦在线播放 | 久久中文字幕免费视频| 久久综合亚洲色HEZYO社区 | 91高清免费国产自产| 伊人久久亚洲综合影院首页| 国产精品国产午夜免费福利看 | 免费A级毛片无码免费视| 亚洲.国产.欧美一区二区三区| 亚洲成a人片在线观看国产| 东北美女野外bbwbbw免费| 亚洲一区二区中文| 成人啪精品视频免费网站| 日本高清免费中文在线看| 亚洲av无码专区国产乱码在线观看| 114级毛片免费观看| 亚洲av永久中文无码精品综合| 亚洲精品成人区在线观看| 国产免费爽爽视频在线观看| 亚洲熟妇无码久久精品| 四虎永久免费网站免费观看| 嫩草在线视频www免费看| 亚洲色图激情文学| 久久夜色精品国产亚洲av| 免费精品国产自产拍在线观看图片 | 精品一区二区三区免费观看| 亚洲神级电影国语版| 国产hs免费高清在线观看|