<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
    主站蜘蛛池模板: 成人免费AA片在线观看| 国产亚洲精品自在线观看| 亚洲av日韩专区在线观看| 亚洲美女高清一区二区三区 | 亚洲专区中文字幕| 国产jizzjizz免费视频| 亚洲综合色区中文字幕| 91麻豆国产免费观看| 在线a亚洲老鸭窝天堂av高清| 青青在线久青草免费观看| 香港经典a毛片免费观看看| 国产jizzjizz免费视频| 久久永久免费人妻精品| 国产精品亚洲а∨无码播放麻豆| 亚洲AV日韩AV永久无码下载| 特级做A爰片毛片免费看无码| 久久亚洲精品无码播放| 福利免费观看午夜体检区| 三年片免费高清版 | 亚洲一区二区免费视频| 最新国产AV无码专区亚洲 | a毛看片免费观看视频| 亚洲精品天堂在线观看| 免费无码又爽又高潮视频 | 国产精品免费观看| 亚洲日韩精品无码AV海量| 亚洲成av人片天堂网| 波多野结衣中文一区二区免费| 黄网站色视频免费看无下截| 亚洲短视频在线观看| 情人伊人久久综合亚洲| 亚洲人成无码www久久久| 好爽…又高潮了免费毛片| 免费国产高清毛不卡片基地| 亚洲精品第一国产综合野| 亚洲激情在线视频| 最好免费观看韩国+日本| 亚洲一区二区三区免费视频| 免费精品久久天干天干| 人禽伦免费交视频播放| 黄页视频在线观看免费|