修復工具DBVERIFY的使用
http://blog.csdn.net/leshami/article/details/6530890
DBVERIFY 工具的使用
Oracle 資料庫執行過程中由於硬體故障或作業系統故障導致導致Oracle無法以Oracle格式來識別或所包含的內容即為出現資料塊損壞故障,這個壞塊可以分為介質損壞以及邏輯損壞。下面給出了塊的檢查,以及使用DBVERIFY 工具實施塊檢查。
一、塊檢查
1.何時檢查塊
當一個資料塊被讀或寫的時候,將對塊的進行一致性檢查,檢查的內容包括如下:
塊的版本
比較塊在cache與block buffer中的資料塊地址
根據要求進行校驗(checksum)
2.損壞的資料塊的錯誤提示
可以從告警日誌檔案中找到該錯誤提示,以及在會話中發現損壞的數據塊時也會給出類似的提示
ORA-01578: ORACLE data block corrupted (file # 6, block # 11)
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/tbs01.dbf'
3.與塊損壞的相關特性(幾種檢查工具)
---------------------------------------------------------------------
特性 壞塊偵測型別 能否修復損壞塊
----------------------------------------------------------------------
DBVERIFY 物理 否
ANALYZE 邏輯 否
DB_BLOCK_CHECKING 邏輯 否
DB_BLOCK_CHECKSUM 物理 否
exp 物理 否
FlashBack 邏輯 是
DBMS_REPAIR 邏輯 是
Block media recovery 未知 是
bbed(verify命令) 未知 否
二、DBVERIFY工具介紹
特性:
是一個執行於作業系統提示符下的外部程式,用於驗證資料檔案,檢查塊的一致性錯誤
僅僅針對資料檔案,能夠校驗open階段的資料檔案以及shutdown狀態下的資料檔案
可以驗證複製的資料檔案,也可以驗證備份的映象副本
不支援聯機日誌檔案,控制檔案,歸檔日誌,RMAN備份集驗證
被驗證的檔案可以位於檔案系統,ASM磁碟或原始裝置
在Unix系統中位於:$ORACLE_HOME/bin/dbv
在Windows系統中位於:%ORACLE_HOME%/bin/dbv.exe
對於DBVERIFY工具,高版本可以自動識別低版本資料庫,比如11g的dbv訪問9i的資料庫,但是低版本的dbv訪問高版本會報錯
三、DBVERIFY工具用法
1.獲取dbv的幫助資訊,直接在提示符下輸入dbv即可 或者輸入dbv help=y
[oracle@oradb orcl]$ dbv
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 26 18:21:09 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Block (Last Block of File)
BLOCKSIZE Logical Block Size (8192) --指定資料檔案的尺寸,預設值為8192,對於非8192塊將收到DBV-00103錯誤
LOGFILE Output Log (NONE) --用於顯示驗證進度
FEEDBACK Display Progress (0)
PARFILE Parameter File (NONE) --可以指定引數檔案
USERID Username/Password (NONE) --校驗段、ASM檔案需要使用
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE) --校驗段,需要表空間ID,資料檔案ID,段的頭部ID
HIGH_SCN Highest Block SCN To Verify (NONE)
(scn_wrap.scn_base OR scn)
2.校驗online,offline資料檔案,使用下面的方法: dbv file=
[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 26 18:29:39 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/orcl/tbs01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 128 --校驗的總頁面數,一個頁面即是一個資料塊
Total Pages Processed (Data) : 96 --已處理的資料頁面數
Total Pages Failing (Data) : 0 --已處理資料頁面的失敗數
Total Pages Processed (Index): 1 --已處理的索引頁面數
Total Pages Failing (Index): 0 --已處理索引頁面失敗數
Total Pages Processed (Other): 31 --已處理的其它頁面數
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 0
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 1152518 (0.1152518)
注意:如果Total Pages Influx的值大於零,且未存在壞塊的情況下,是由於針對open狀態的檔案執行dbv 程式遇到了一個當前正在被DBWn程式寫入的資料塊
[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf feedback=1000
上面這句在執行時每驗證1000個塊將顯示一個"."號
[oracle@wang ~]$ dbv FILE=/u01/app/oracle/oradata/DBdb/users01.dbf FEEDBACK=1000
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:09:26 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/DBdb/users01.dbf
Page 526 is marked corrupt
Corrupt block relative dba: 0x0100020e (file 4, block 526)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0100020e
last change scn: 0x0000.00396631 seq: 0x1 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x66310601
check value in block header: 0xb29f
computed block checksum: 0x3b0c
DBV-00200: Block, DBA 16777783, already marked corrupt
csc(0x0000.001082b4) higher than block scn(0x0000.00000000)
Page 567 failed with check code 6054
................................................................................
DBVERIFY - Verification complete
Total Pages Examined : 391520
Total Pages Processed (Data) : 239410
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 55722
Total Pages Failing (Index): 1
Total Pages Processed (Other): 73037
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 23350
Total Pages Marked Corrupt : 2
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3784055 (0.3784055)
[oracle@wang ~]$
3.驗證指定段(例如表)
該方法需要獲得段所在表空間的ID,段所在資料檔案的ID,段的頭部ID,如下:
SQL> select owner,tablespace_id,tablespace_name,header_file,header_block from sys_dba_segs where segment_name='JOBS';
OWNER TABLESPACE_ID TABLESPACE_NAME HEADER_FILE HEADER_BLOCK
------------------------------ ------------- ------------------------------ ----------- ------------
SCOTT 4 USERS 4 1082
注意:sys使用者的段可以查詢sys_user_segs,而普通使用者的段資訊,需要查詢sys_dba_segs
[oracle@wang ~]$ dbv USERID=scott/tiger segment_id=4.4.1082
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:22:07 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : SEGMENT_ID = 4.4.1082
DBVERIFY - Verification complete
Total Pages Examined : 8
Total Pages Processed (Data) : 1
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
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
Total Pages Encrypted : 0
Highest block SCN : 1388330 (0.1388330)
[oracle@wang ~]$
4.驗證複製的資料檔案或驗證備份的映象副本
--使用RMAN備份映象副本
RMAN> backup as copy datafile 5;
Starting backup at 27-NOV-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/DBdb/example01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf tag=TAG20171127T183941 RECID=2 STAMP=961180797
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
Finished backup at 27-NOV-17
RMAN>
--校驗:
[oracle@wang ~]$ dbv file=/u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:40:44 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf
DBVERIFY - Verification complete
Total Pages Examined : 43360
Total Pages Processed (Data) : 6597
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 1149
Total Pages Failing (Index): 0
Total Pages Processed (Other): 2844
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 32770
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 1795627 (0.1795627)
[oracle@wang ~]$
--注意
RMAN命令中的BACKUP VALIDATE DATABASE命令通常用於檢查全庫,該命令不產生任何備份集,可以透過Validate命令來檢查是否能備份,如資料檔案是否存在,是否存在壞塊不能被備份,查詢檢視v$database_block_corruption,此檢視將檢查過程中存在的壞塊
如使用下面的查詢
RMAN> backup validate database;
RMAN> backup validate database archivelog all;
SQL> select * from v$database_block_corruption;
no rows selected
檢視v$database_block_corruption將列出損壞的壞塊所在的檔案位置,損壞塊的起始位置,損壞快的大小以及損壞型別如果上述檢視中發現了壞塊,則可以透過SQL查詢獲得壞塊所影響的範圍,以及確定壞塊所影響的是索引段還是UNDO段
select owner,segment_name,segment_type from dba_extents where file_id= and between block_id and block_id+blocks-1;
(和分別是ORA-01578報出的壞塊出現的檔案號和塊號)
下面使用rman 來修復受損的資料塊
RMAN> run{
allocate channel ch1 device type disk;
blockrecover datafile 6 block 37;
release channel ch1;}
省略.................
四、其它
1.事實上使用dbv工具可以對控制檔案進行驗證(資料庫處於OPEN狀態),參見下面的例子
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/control01.ctl
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:48:48 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBV-00103: Specified BLOCKSIZE (8192) differs from actual (16384)
[oracle@wang ~]$
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/control01.ctl BLOCKSIZE=16384
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:49:11 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/DBdb/control01.ctl
DBVERIFY - Verification complete
Total Pages Examined : 604
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing (Index): 0
Total Pages Processed (Other): 59
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 545
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 11504 (65535.11504)
[oracle@wang ~]$
2.對聯機日誌檔案的驗證(資料庫處於OPEN狀態),不支援
--可以執行,但出現下面很多的提示(介質錯誤)
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/redo01.log
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:51:19 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBV-00103: Specified BLOCKSIZE (8192) differs from actual (512)
[oracle@wang ~]$
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/redo01.log BLOCKSIZE=512
省略。。。。。。。。。。。。。。。。。。
Page 35627 is marked corrupt
Corrupt block relative dba: 0x00008b2b (file 0, block 35627)
Bad header found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2b
last change scn: 0x801c.0000034c seq: 0x99 flg: 0xc2
spare1: 0x0 spare2: 0x0 spare3: 0x38
consistency value in tail: 0x0001040a
check value in block header: 0x1f4
block checksum disabled
Page 35628 is influx - most likely media corrupt
Corrupt block relative dba: 0x00008b2c (file 0, block 35628)
Fractured block found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2c
last change scn: 0x8044.0000034c seq: 0xa2 flg: 0x11
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x000201f4
check value in block header: 0x2
block checksum disabled
Page 35629 is influx - most likely media corrupt
Corrupt block relative dba: 0x00008b2d (file 0, block 35629)
Fractured block found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2d
last change scn: 0x80a8.0000034c seq: 0x46 flg: 0xcd
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00395909
check value in block header: 0x19b9
computed block checksum: 0x0
DBVERIFY 工具的使用
Oracle 資料庫執行過程中由於硬體故障或作業系統故障導致導致Oracle無法以Oracle格式來識別或所包含的內容即為出現資料塊損壞故障,這個壞塊可以分為介質損壞以及邏輯損壞。下面給出了塊的檢查,以及使用DBVERIFY 工具實施塊檢查。
一、塊檢查
1.何時檢查塊
當一個資料塊被讀或寫的時候,將對塊的進行一致性檢查,檢查的內容包括如下:
塊的版本
比較塊在cache與block buffer中的資料塊地址
根據要求進行校驗(checksum)
2.損壞的資料塊的錯誤提示
可以從告警日誌檔案中找到該錯誤提示,以及在會話中發現損壞的數據塊時也會給出類似的提示
ORA-01578: ORACLE data block corrupted (file # 6, block # 11)
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/tbs01.dbf'
3.與塊損壞的相關特性(幾種檢查工具)
---------------------------------------------------------------------
特性 壞塊偵測型別 能否修復損壞塊
----------------------------------------------------------------------
DBVERIFY 物理 否
ANALYZE 邏輯 否
DB_BLOCK_CHECKING 邏輯 否
DB_BLOCK_CHECKSUM 物理 否
exp 物理 否
FlashBack 邏輯 是
DBMS_REPAIR 邏輯 是
Block media recovery 未知 是
bbed(verify命令) 未知 否
二、DBVERIFY工具介紹
特性:
是一個執行於作業系統提示符下的外部程式,用於驗證資料檔案,檢查塊的一致性錯誤
僅僅針對資料檔案,能夠校驗open階段的資料檔案以及shutdown狀態下的資料檔案
可以驗證複製的資料檔案,也可以驗證備份的映象副本
不支援聯機日誌檔案,控制檔案,歸檔日誌,RMAN備份集驗證
被驗證的檔案可以位於檔案系統,ASM磁碟或原始裝置
在Unix系統中位於:$ORACLE_HOME/bin/dbv
在Windows系統中位於:%ORACLE_HOME%/bin/dbv.exe
對於DBVERIFY工具,高版本可以自動識別低版本資料庫,比如11g的dbv訪問9i的資料庫,但是低版本的dbv訪問高版本會報錯
三、DBVERIFY工具用法
1.獲取dbv的幫助資訊,直接在提示符下輸入dbv即可 或者輸入dbv help=y
[oracle@oradb orcl]$ dbv
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 26 18:21:09 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Block (Last Block of File)
BLOCKSIZE Logical Block Size (8192) --指定資料檔案的尺寸,預設值為8192,對於非8192塊將收到DBV-00103錯誤
LOGFILE Output Log (NONE) --用於顯示驗證進度
FEEDBACK Display Progress (0)
PARFILE Parameter File (NONE) --可以指定引數檔案
USERID Username/Password (NONE) --校驗段、ASM檔案需要使用
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE) --校驗段,需要表空間ID,資料檔案ID,段的頭部ID
HIGH_SCN Highest Block SCN To Verify (NONE)
(scn_wrap.scn_base OR scn)
2.校驗online,offline資料檔案,使用下面的方法: dbv file=
[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 26 18:29:39 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/orcl/tbs01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 128 --校驗的總頁面數,一個頁面即是一個資料塊
Total Pages Processed (Data) : 96 --已處理的資料頁面數
Total Pages Failing (Data) : 0 --已處理資料頁面的失敗數
Total Pages Processed (Index): 1 --已處理的索引頁面數
Total Pages Failing (Index): 0 --已處理索引頁面失敗數
Total Pages Processed (Other): 31 --已處理的其它頁面數
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 0
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 1152518 (0.1152518)
注意:如果Total Pages Influx的值大於零,且未存在壞塊的情況下,是由於針對open狀態的檔案執行dbv 程式遇到了一個當前正在被DBWn程式寫入的資料塊
[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf feedback=1000
上面這句在執行時每驗證1000個塊將顯示一個"."號
[oracle@wang ~]$ dbv FILE=/u01/app/oracle/oradata/DBdb/users01.dbf FEEDBACK=1000
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:09:26 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/DBdb/users01.dbf
Page 526 is marked corrupt
Corrupt block relative dba: 0x0100020e (file 4, block 526)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0100020e
last change scn: 0x0000.00396631 seq: 0x1 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x66310601
check value in block header: 0xb29f
computed block checksum: 0x3b0c
DBV-00200: Block, DBA 16777783, already marked corrupt
csc(0x0000.001082b4) higher than block scn(0x0000.00000000)
Page 567 failed with check code 6054
................................................................................
DBVERIFY - Verification complete
Total Pages Examined : 391520
Total Pages Processed (Data) : 239410
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 55722
Total Pages Failing (Index): 1
Total Pages Processed (Other): 73037
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 23350
Total Pages Marked Corrupt : 2
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3784055 (0.3784055)
[oracle@wang ~]$
3.驗證指定段(例如表)
該方法需要獲得段所在表空間的ID,段所在資料檔案的ID,段的頭部ID,如下:
SQL> select owner,tablespace_id,tablespace_name,header_file,header_block from sys_dba_segs where segment_name='JOBS';
OWNER TABLESPACE_ID TABLESPACE_NAME HEADER_FILE HEADER_BLOCK
------------------------------ ------------- ------------------------------ ----------- ------------
SCOTT 4 USERS 4 1082
注意:sys使用者的段可以查詢sys_user_segs,而普通使用者的段資訊,需要查詢sys_dba_segs
[oracle@wang ~]$ dbv USERID=scott/tiger segment_id=4.4.1082
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:22:07 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : SEGMENT_ID = 4.4.1082
DBVERIFY - Verification complete
Total Pages Examined : 8
Total Pages Processed (Data) : 1
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
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
Total Pages Encrypted : 0
Highest block SCN : 1388330 (0.1388330)
[oracle@wang ~]$
4.驗證複製的資料檔案或驗證備份的映象副本
--使用RMAN備份映象副本
RMAN> backup as copy datafile 5;
Starting backup at 27-NOV-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/DBdb/example01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf tag=TAG20171127T183941 RECID=2 STAMP=961180797
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
Finished backup at 27-NOV-17
RMAN>
--校驗:
[oracle@wang ~]$ dbv file=/u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:40:44 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/fast_recovery_area/DBDB/datafile/o1_mf_example_f1qtvfph_.dbf
DBVERIFY - Verification complete
Total Pages Examined : 43360
Total Pages Processed (Data) : 6597
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 1149
Total Pages Failing (Index): 0
Total Pages Processed (Other): 2844
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 32770
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 1795627 (0.1795627)
[oracle@wang ~]$
--注意
RMAN命令中的BACKUP VALIDATE DATABASE命令通常用於檢查全庫,該命令不產生任何備份集,可以透過Validate命令來檢查是否能備份,如資料檔案是否存在,是否存在壞塊不能被備份,查詢檢視v$database_block_corruption,此檢視將檢查過程中存在的壞塊
如使用下面的查詢
RMAN> backup validate database;
RMAN> backup validate database archivelog all;
SQL> select * from v$database_block_corruption;
no rows selected
檢視v$database_block_corruption將列出損壞的壞塊所在的檔案位置,損壞塊的起始位置,損壞快的大小以及損壞型別如果上述檢視中發現了壞塊,則可以透過SQL查詢獲得壞塊所影響的範圍,以及確定壞塊所影響的是索引段還是UNDO段
select owner,segment_name,segment_type from dba_extents where file_id= and between block_id and block_id+blocks-1;
(和分別是ORA-01578報出的壞塊出現的檔案號和塊號)
下面使用rman 來修復受損的資料塊
RMAN> run{
allocate channel ch1 device type disk;
blockrecover datafile 6 block 37;
release channel ch1;}
省略.................
四、其它
1.事實上使用dbv工具可以對控制檔案進行驗證(資料庫處於OPEN狀態),參見下面的例子
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/control01.ctl
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:48:48 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBV-00103: Specified BLOCKSIZE (8192) differs from actual (16384)
[oracle@wang ~]$
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/control01.ctl BLOCKSIZE=16384
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:49:11 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/DBdb/control01.ctl
DBVERIFY - Verification complete
Total Pages Examined : 604
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing (Index): 0
Total Pages Processed (Other): 59
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 545
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 11504 (65535.11504)
[oracle@wang ~]$
2.對聯機日誌檔案的驗證(資料庫處於OPEN狀態),不支援
--可以執行,但出現下面很多的提示(介質錯誤)
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/redo01.log
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Nov 27 18:51:19 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBV-00103: Specified BLOCKSIZE (8192) differs from actual (512)
[oracle@wang ~]$
[oracle@wang ~]$ dbv file=/u01/app/oracle/oradata/DBdb/redo01.log BLOCKSIZE=512
省略。。。。。。。。。。。。。。。。。。
Page 35627 is marked corrupt
Corrupt block relative dba: 0x00008b2b (file 0, block 35627)
Bad header found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2b
last change scn: 0x801c.0000034c seq: 0x99 flg: 0xc2
spare1: 0x0 spare2: 0x0 spare3: 0x38
consistency value in tail: 0x0001040a
check value in block header: 0x1f4
block checksum disabled
Page 35628 is influx - most likely media corrupt
Corrupt block relative dba: 0x00008b2c (file 0, block 35628)
Fractured block found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2c
last change scn: 0x8044.0000034c seq: 0xa2 flg: 0x11
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x000201f4
check value in block header: 0x2
block checksum disabled
Page 35629 is influx - most likely media corrupt
Corrupt block relative dba: 0x00008b2d (file 0, block 35629)
Fractured block found during dbv:
Data in bad block:
type: 1 format: 2 rdba: 0x00008b2d
last change scn: 0x80a8.0000034c seq: 0x46 flg: 0xcd
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00395909
check value in block header: 0x19b9
computed block checksum: 0x0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2147830/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- win10系統修復工具怎樣使用_win10系統修復工具使用步驟Win10
- 資料恢復工具Recoverit使用教程:如何修復損壞的影片資料恢復
- directx修復工具win10怎麼用_win10系統directx修復工具使用教程Win10
- 使用DBCC CHECKDB工具修復資料庫XT資料庫
- 磁碟修復工具TestDisk
- Hbase修復工具Hbck
- 如何修復使用 Python ORM 工具 SQLAlchemy 時的常見陷阱PythonORMSQL
- 沒有修復不了漏洞,只有修不成的工具人!
- win10系統修復工具如何啟動_win10啟動修復工具的方法Win10
- tenorshare video repair(影片修復工具)IDEAI
- 音訊修復工具iZotope RX 9.1.1音訊
- Topaz Video AI for mac(影片修復工具)IDEAIMac
- iZotope RX 9 音訊修復工具音訊
- GRPC使用問題修復RPC
- iZotope RX 9 Mac(音訊修復工具)Mac音訊
- iToolab FixGo for Mac(ios系統修復工具)GoMaciOS
- win10系統修復引導工具如何使用【圖文教程】Win10
- 【工具篇】推薦5款好用的Linux磁碟資料修復工具!Linux
- iZotope RX 10 for mac(強大的音訊修復工具)Mac音訊
- iZotope RX 10 mac強大的音訊修復工具Mac音訊
- 「磁碟工具」不能修復磁碟時,怎麼做?
- Tenorshare ReiBoot Pro iOS系統故障修復工具bootiOS
- 照片修復工具:DxO ViewPoint 4 啟用版View
- 使用 DFU 模式修復或恢復 Mac 韌體模式Mac
- 使用salvagewallet修復錢包資料
- iOS System Repair:(IOS系統修復工具)下載iOSAI
- PrestaShop網站漏洞修復如何修復REST網站
- Android熱修復原理(一)熱修復框架對比和程式碼修復Android框架
- iZotope RX 10 for mac(音訊修復和增強工具)Mac音訊
- iToolab FixGo for Mac(ios系統修復工具) 直裝版GoMaciOS
- Linux系統磁碟資料修復工具,建議收藏!Linux
- Mac照片修復工具:DxO ViewPoint 4 for Mac v4.5.0MacView
- Mac系統如何通過自帶的工具進行磁碟修復Mac
- 好用的資料校驗&修復工具gt-checksum開源啦
- 修復IAT
- 怎麼修復網站漏洞騎士cms的漏洞修復方案網站
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- 『學了就忘』Linux啟動引導與修復 — 74、Linux系統的修復模式(光碟修復模式)Linux模式
- Linux 系統的單使用者模式、修復模式、跨控制檯登入在系統修復中的運用Linux模式