資料塊損壞修復資料相關工具

2021-07-22 02:18:49 字數 1425 閱讀 9224

全稱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...