檢測Oracle資料區塊損壞的方法匯總
1:使用初始化參數
使用初始化參數db_block_checksum\db_block_checking可以設定資料庫對塊的物理一致性和邏輯一致性檢查。
Db_block_checksum:物理一致性檢查,預設開啟。始終對system資料表空間資料進行檢查,如果開啟還會對日誌進行檢查,開啟後會有1~2%的效能影響,建議開啟。
Db_block_checking:邏輯一致性檢查,預設未開啟。始終對system資料表空間進行檢查,如果開啟會有1~10%的效能影響。DML越頻繁,效能影響越大。不建議開啟。
有關該參數的詳細內容可以參考:
2:使用dbv工具
使用dbv可以進行物理和邏輯一致性檢查,但是不會檢測表資料和索引資料的匹配關係。使用該工具有以下特點:
唯讀方式開啟資料檔案
可以線上檢查資料檔案,資料庫無需關閉
不可以檢測控制檔案和記錄檔
可以檢測asm檔案
有時檔案名稱需要有尾碼名,並且有時不可以檢測超過2G大小的檔案
3:使用analyze命令
文法格式:analyze table validate structure cascade online (offline).
該命令會同時進行物理和邏輯檢查,同時還可以進行表資料和索引資料的匹配性檢查,檢查分區表的記錄是否在正確的分區中,檢測結果會儲存在trace檔案中。
如果沒有使用cascade關鍵字,則只會進行表資料的檢測,使用cascade後會進行表資料和索引資料的檢測。
如果使用了online關鍵字,則可以對錶資料進行線上檢查,此時不會對錶添加鎖,DML語句可以繼續進行,如果使用了offline關鍵字,則會對錶加鎖,此時使用者不能對該表進行修改操作。
如果需要檢測分區表記錄是否在正確的分區內,可以使用如下語句:
Anlyze table table_name validte structure into invalid_rows.
使用該命令前,請使用utlvalid.sql 指令碼建立相應的invalid_rows表。
--------------------------------------推薦閱讀 --------------------------------------
RMAN 配置歸檔日誌刪除策略
Oracle基礎教程之通過RMAN複製資料庫
RMAN備份策略制定參考內容
RMAN備份學習筆記
OracleDatabase Backup加密 RMAN加密
--------------------------------------分割線 --------------------------------------
4:使用rman工具
使用rman備份工具時,oracle會將資料先讀入讀緩衝區,然後將資料寫入寫緩衝區,最後寫入磁碟,在從讀緩衝區轉移到寫緩衝區時,rman工具會進行資料一致性檢測。
文法格式:backup validate database.
使用backup validate 命令會對資料檔案進行物理一致性檢測(前提是db_block_checksum啟用), 此時並不會產生備份檔案。如:
RMAN> backup validate database;
Starting backup at 2014-11-05 15:44:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/home/app/oraten/oradata/oraten/system01.dbf
input datafile fno=00003 name=/home/app/oraten/oradata/oraten/sysaux01.dbf
input datafile fno=00002 name=/home/app/oraten/oradata/oraten/undotbs01.dbf
input datafile fno=00005 name=/home/app/oraten/oradata/oraten/test01.dbf
input datafile fno=00004 name=/home/app/oraten/oradata/oraten/users01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2014-11-05 15:44:23
RMAN> list backup;
RMAN>
更多詳情見請繼續閱讀下一頁的精彩內容: