如何恢復包含損壞記錄的物理檔案

2022-03-01 12:18:24 字數 1090 閱讀 7435

在物理檔案在沒有啟用日誌的狀態下,如果出現了損壞的記錄如何恢復該物理檔案。

解答 請按照以下步驟,盡量恢復物理檔案中沒有損壞的記錄:

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 新建日誌時,缺報這個錯,一看檔案,是已經存在了 但是即使刪掉這個資料庫,這個日誌...