在物理檔案在沒有啟用日誌的狀態下,如果出現了損壞的記錄如何恢復該物理檔案。
解答 請按照以下步驟,盡量恢復物理檔案中沒有損壞的記錄:
1、在os/400命令列鍵入以下命令:
ovrdbf file(liba/file) seqonly(*yes 1)
注: 該命令確保該物理檔案被順序地處理,同時只有乙個記錄在處理。
2、接著,執行以下命令:
cpyf fromfile(liba/file) tofile(qtemp/x) crtfile(*yes) +
fromrcd(1) errlvl(999) compress(*yes)
注: 同時將檔案qtemp/x儲存在磁帶上。
3、刪除包含損壞記錄的物理檔案:
dltf file(liba/file)
注: 如果由於該物理檔案有邏輯檔案相關,先將相關的邏輯檔案更名,
存放在相同的庫中。
4、將儲存在qtemp中的檔案放回原來的庫:
movobj obj(qtemp/x) objtype(*file) tolib(liba)
注: 如果由於該物理檔案有邏輯檔案相關,請在新的物理檔案上重建
相應的邏輯檔案。
5、刪除所有舊的邏輯檔案和物理檔案:
dltf file(liba/all_logicals_over_renamed_physical)
dltf file(liba/renamed_physical)
註解:- 用命令cpyf得到乙個包含所有可以訪問的記錄檔案,而損壞的記錄將會被寫入作業日誌(joblog)。
引數errlvl將被視為乙個可以容忍的最多損壞記錄的閥值,超過該閥值時,cpyf命令將停止。 - 命令cpyf執行結束後,您可以比較兩個檔案(qtemp/x和liba/file)的記錄的數量,如果記錄數相同,
說明物理檔案中的資料沒有丟失。如果記錄數不同,說明有資料丟失,此時就需要從其他途徑來
恢復這些資料,例如:備份的磁帶等。
- 當指定命令cpyf中的引數compress為*no時,舊檔案中被刪除的記錄也會被拷貝到新的檔案中。
- 指定命令cpyf中的引數fromrcd(1)是為了避免執行該命令時,物理檔案的訪問路徑被破壞。
恢復損壞的pdf檔案
昨天在編輯乙個pdf時機器突然重啟,導致pdf檔案損壞,打不開了。由於平時有邊看pdf邊做注釋的習慣,如果無法恢復,那麼就導致其中的所有的筆記丟失,這下損失會比較慘重。baidu了一下pdf修復軟體,無一能夠比較好地恢復pdf,並且保留其中的格式。google之後發現mupdf可以重寫pdf,於是嘗...
控制檔案損壞的恢復
一 控制檔案損壞的恢復 乙個檔案 損壞單個控制檔案是比較容易恢復的,因為一般的資料庫系統,控制檔案都不是乙個,而且所有的控制檔案都互為映象,只要拷貝乙個好的控制檔案替換壞的控制檔案就可以了。方法1 使用spfile多路復用 sql shutdown immediate 資料庫已經關閉。已經解除安裝資...
MDF檔案損壞,如何恢復?(未解決)
mdf檔案損壞,如何恢復?mdf附加失敗,資料庫附加失敗 1.附加時 2.用替換法設定後重建日誌 其實已經刪掉日誌了,確保操作之前沒有日誌,但是執行 alter database test rebuild log on 新建日誌時,缺報這個錯,一看檔案,是已經存在了 但是即使刪掉這個資料庫,這個日誌...