全稱dbverify,用來檢測資料檔案資料塊的邏輯損壞。用法:
dbv file=*** blocksize=8192
dbv檢測資料塊的頭部和尾部,如果第一次發現兩者不匹配,會再讀取一次;如果匹配了,那麼就報出這個資料塊是influx,如果第二次校驗還是不匹配,那麼就認為這個塊是corrupted。之所以重複檢查,是在某些請況下,比如dbw0程序在寫入乙個新版本的塊,而dbv這時候讀取了部分新版本,部分舊版本的資料塊,這時候頭尾的值就不匹配,但是並不能說資料塊損壞。
如果file制定了osm檔案,那麼需要加userid選項,例如:
dbv userid=sys/oracl file=+orcldg/orcl/datafile/undotbs1.258.9222922
否則會報錯:
10231事件使全表掃瞄可以跳過壞塊,設定該事件後exp匯出表資料,然後匯入重建。
rman 可以使用備份修復資料塊
語法:
blockrecover datafile xx block ***
建立一張表,使用rowid訪問,將損壞的資料塊的資料插入該臨時表,比如損壞了某檔案的2號資料塊:
create table temp as select * from *** where 1=2;
insert into temp select * from *** where rowid < dbms_rowid.rowid_create(rowid_type,object_number,relative_fno,3,row_number);
insert into temp select * from *** where rowid > dbms_rowid.rowid_create(rowid_type,object_number,relative_fno,1,row_number);
bbed全稱block brower/editor。
使用之前需要relink:
ssbbded.o和sbbdpt.o檔案放到or
acle
home
/rdb
ms/l
ib目錄
下,bb
edus
.msb
檔案放到
oracle_home/rdbms/mesg目錄下。
$ cd $oracle_home/rdbms/lib
$ make -f ins_rdbms.mk $oracle_home/rdbms/lib/bbed(/usr/ccs/bin加入環境變數)
語法:bbed listfile=*** mode=***
密碼:blockedit
HDFS 資料塊損壞
由斷電或其它原因引起的hdfs服務不正常或者塊損壞 一 檢查hdfs的檔案的健康狀態hdfs fsck 二 檢視損壞的塊以及檔案的對應關係hdfs fsck list corruptfileblocks 三 解決辦法 資料可以從其它地方找到 比如mysql 將資料重新重新整理乙份到hdfs上 hdf...
SQLite資料庫損壞修復
the database disk image is malformed 進入到sqlite3操作指定的資料庫 或者直接 sqlite3 e item.db 操作此資料庫 sqlite databases main e item.db sqlite tables 顯示列表 檢查資料庫是否損壞 sql...
修復資料庫
如果備份的資料庫有2個檔案,分別是.ldf 和 mdf,開啟企業管理器,在例項上右擊 所有任務 附加資料庫,然後選擇那個.mdf檔案,就可以了。或者在查詢分析器中輸入 sp attach db 資料庫名稱 路徑 檔名.ldf 路徑 檔名.mdf sql server資料庫備份有兩種方式,一種是使用b...