Oracle中DBV命令行工具如何使用
這期內容當中小編將會給大家?guī)碛嘘POracle中DBV命令行工具如何使用,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
特點:
-
以只讀的方式打開數(shù)據(jù)文件,在檢查過程中不會修改數(shù)據(jù)文件的內容。
-
可以在線檢查數(shù)據(jù)文件,而不需要關閉數(shù)據(jù)庫。
-
不能檢查控制文件和日志文件,只能檢查數(shù)據(jù)文件。
-
這個工具可以檢查ASM文件,但數(shù)據(jù)庫必須Open狀態(tài),并且需要通過USERID指定用戶,比如:dbv file=+DG1/ORCL/datafile/system01.dbf userid=system/sys
-
在許多UNIX平臺下,DBV要求數(shù)據(jù)文件有擴展名,如果沒有可以通過建立鏈接的方法,然后對鏈接的方法,然后對鏈接文件進行操作,比如:ls -n /dev/rdsk/mydevice /tmp/mydevice.dbf
-
某些平臺,DBV工具不能檢查超過2GB的文件,如果碰到DBV-100錯誤,請先檢查文件大小,MOS Bug 710888對這個問題有描述。
-
DBV只會檢查數(shù)據(jù)塊的正確性,但不會關系數(shù)據(jù)塊是否屬于哪個對象。
-
對于祼設備建議指定END參數(shù),避免超出數(shù)據(jù)文件范圍。比如:dbv FILE=/dev/rdsk/r1.dbf END=<last_block_number>。可以在v$datafile視圖中用bytes字段除以塊大小來獲得END值。
參數(shù) 含義 缺省值
FILE 要檢查的數(shù)據(jù)文件名 沒有缺省值
START 檢查起始數(shù)據(jù)塊號 數(shù)據(jù)文件的***個數(shù)據(jù)塊
END 檢查的***一個數(shù)據(jù)塊號 數(shù)據(jù)文件的***一個數(shù)據(jù)塊
BLOCKSIZE 數(shù)據(jù)塊大小,這個值要和數(shù)據(jù)庫的DB_BLOCK_SIZE參數(shù)值一致 缺省值8192
LOGFILE 檢查結果日志文件 沒有缺省值
FEEDBAK 顯示進度 0
PARFILE 參數(shù)文件名 沒有缺省值
USERID 用戶名、密碼 沒有缺省值
SEGMENT_ID 段ID,參數(shù)格式<tsn.segfile.segblock> 沒有缺省值
使用示例:
[oracle@rhel6~]$dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY:Release11.2.0.1.0-ProductiononMonMay2216:42:262017Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY-VerificationcompleteTotalPagesExamined:155520TotalPagesProcessed(Data):144530TotalPagesFailing(Data):0TotalPagesProcessed(Index):52TotalPagesFailing(Index):0TotalPagesProcessed(Other):1248TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:9690TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:3559792(0.3559792)
這個工具報告使用的是page作為單位,含義和data block相同。從上面的檢查結果Total Pages Marked Corrupt : 0可以看出文件沒有壞塊。
除了檢查數(shù)據(jù)文件,這個工具還允許檢查單獨的Segment,這時參數(shù)值的格式為<tsn.segfile.segblock>
查看對象的tsn,segfile,segblock屬性:
zx@TEST>selectt.ts#,s.header_file,s.header_block2fromv$tablespacet,dba_segmentss3wheres.segment_name='T'4andt.name=s.tablespace_name;TS#HEADER_FILEHEADER_BLOCK---------------------------------4445834
從上面的查詢結果可行參數(shù)值為4.4.45834。檢查Segment:
[oracle@rhel6~]$dbvuserid=system/123456segment_id=4.4.45834DBVERIFY:Release11.2.0.1.0-ProductiononMonMay2220:58:332017Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:SEGMENT_ID=4.4.45834DBVERIFY-VerificationcompleteTotalPagesExamined:8TotalPagesProcessed(Data):5TotalPagesFailing(Data):0TotalPagesProcessed(Index):0TotalPagesFailing(Index):0TotalPagesProcessed(Other):2TotalPagesProcessed(Seg):1TotalPagesFailing(Seg):0TotalPagesEmpty:0TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:3518579(0.3518579)
下面人為創(chuàng)造一個壞塊,用dbv來檢查。
創(chuàng)建一個測試表
zx@TEST>createtablebbed(idnumber,namevarchar2(20))tablespaceusers;Tablecreated.zx@TEST>insertintobbedvalues(1,'zhaoxu');1rowcreated.zx@TEST>commit;Commitcomplete.
當前數(shù)據(jù)文件沒有壞塊
[oracle@rhel6~]$dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY:Release11.2.0.1.0-ProductiononMonMay2221:03:402017Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY-VerificationcompleteTotalPagesExamined:155520TotalPagesProcessed(Data):66397TotalPagesFailing(Data):0TotalPagesProcessed(Index):52TotalPagesFailing(Index):0TotalPagesProcessed(Other):88898TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:173TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:3764775(0.3764775)
獲取表在文件中的存儲信息
zx@TEST>setserveroutputonzx@TEST>declarerfnonumber;2rtypenumber;3ononumber;4blknonumber;5rownonumber;6ridvarchar2(30);7begin8selectrowidintoridfrombbed;9dbms_rowid.rowid_info(ROWID_IN=>rid,RELATIVE_FNO=>rfno,BLOCK_NUMBER=>blkno,ROW_NUMBER=>rowno,ROWID_TYPE=>rtype,OBJECT_NUMBER=>ono);10dbms_output.put_line(rfno||','||blkno||','||rowno);11end;12/4,45844,0PL/SQLproceduresuccessfullycompleted.
使用bbed修改塊信息
[oracle@rhel6bbed]$bbedparfile=bbed.parPassword:BBED:Release2.0.0.0.0-LimitedProductiononMonMay2221:17:182017Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.*************!!!ForOracleInternalUseonly!!!***************BBED>setdba4,45844DBA0x0100b314(168230604,45844)BBED>find/czhaoxuFile:/u01/app/oracle/oradata/test/users01.dbf(4)Block:45844Offsets:8182to8191Dba:0x0100b314------------------------------------------------------------------------7a68616f787501065873<32bytesperline>BBED>dump/vdba4,45844offset8182count32File:/u01/app/oracle/oradata/test/users01.dbf(4)Block:45844Offsets:8182to8191Dba:0x0100b314-------------------------------------------------------7a68616f787501065873lzhaoxu..Xs<16bytesperline>BBED>modify100dba4,45844Warning:contentsofpreviousBIFILEwillbelost.Proceed?(Y/N)yFile:/u01/app/oracle/oradata/test/users01.dbf(4)Block:45844Offsets:8182to8191Dba:0x0100b314------------------------------------------------------------------------6468616f787501065873<32bytesperline>BBED>dump/vdba4,45844offset8182count32File:/u01/app/oracle/oradata/test/users01.dbf(4)Block:45844Offsets:8182to8191Dba:0x0100b314-------------------------------------------------------6468616f787501065873ldhaoxu..Xs<16bytesperline>BBED>exit
再次使用dbv檢查文件
[oracle@rhel6bbed]$dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY:Release11.2.0.1.0-ProductiononMonMay2221:18:462017Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/u01/app/oracle/oradata/test/users01.dbfPage45844ismarkedcorruptCorruptblockrelativedba:0x0100b314(file4,block45844)Badcheckvaluefoundduringdbv:Datainbadblock:type:6format:2rdba:0x0100b314lastchangescn:0x0000.00397358seq:0x1flg:0x04spare1:0x0spare2:0x0spare3:0x0consistencyvalueintail:0x73580601checkvalueinblockheader:0x7c2dcomputedblockchecksum:0x1eDBVERIFY-VerificationcompleteTotalPagesExamined:155520TotalPagesProcessed(Data):66396TotalPagesFailing(Data):0TotalPagesProcessed(Index):52TotalPagesFailing(Index):0TotalPagesProcessed(Other):88898TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:173TotalPagesMarkedCorrupt:1TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:3764775(0.3764775)
報告一個壞塊,Total Pages Marked Corrupt : 1
再次查詢測試表:
sys@TEST>select*fromzx.bbed;IDNAME----------------------------------------------------------------------1zhaoxu
查詢正常,因為在buffer_cache中緩存了塊,而修改的是文件中的塊。兩個塊現(xiàn)在不一致,清空buffer cache后再次查詢測試表。
zx@TEST>altersystemflushbuffer_cache;Systemaltered.zx@TEST>select*frombbed;select*frombbed*ERRORatline1:ORA-01578:ORACLEdatablockcorrupted(file#4,block#45844)ORA-01110:datafile4:'/u01/app/oracle/oradata/test/users01.dbf'
查詢報出錯誤ORA-01578。
使用dbv檢查ASM文件中的數(shù)據(jù)文件,需要指定userid參數(shù)
[oracle@rac1~]$dbvfile=+DATA/orcl/datafile/users.259.925306091userid=sys/123456DBVERIFY:Release11.2.0.4.0-ProductiononMonMay2216:48:222017Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=+DATA/orcl/datafile/users.259.925306091DBVERIFY-VerificationcompleteTotalPagesExamined:640TotalPagesProcessed(Data):16TotalPagesFailing(Data):0TotalPagesProcessed(Index):2TotalPagesFailing(Index):0TotalPagesProcessed(Other):593TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:29TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:0(0.0)
總結
以上是生活随笔為你收集整理的Oracle中DBV命令行工具如何使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux的gzip和zcat命令怎么用
- 下一篇: 美丽说怎么开店