刪除歸檔 乾貨分享 DM刪除歸檔日誌檔案的多種方法

2021-10-14 16:21:28 字數 2058 閱讀 3137

上一期我們講解了dm資料庫歸檔日誌的切換,本期我們講解dm資料庫歸檔日誌檔案的刪除。

本章內容已在如下環境上測試:

①作業系統:中標麒麟7;

②資料庫版本:達夢8;

歸檔日誌刪除

測試之前,我們可以使用v$arch_file檢視歸檔日誌檔案資訊,或者直接在作業系統歸檔目錄下檢視歸檔日誌檔案,如下圖:

方式一 設定歸檔空間大小

sql>alter database add archivelog 'type=local,dest=/dm8/data/dameng/arch,file_size=64,space_limit=1024';
space_limit引數對應dmarch.ini中arch_space_limit引數。該引數表示歸檔檔案的磁碟空間限制,如果歸檔檔案總大小超過這個值,則在生成新歸檔檔案前會刪除最老的乙個歸檔檔案。如果在設定時,該引數設定為0表示不受限制。如下為dmarch.ini的檔案內容樣例,以本地歸檔為例。這裡配置了空間限制為1024m,如果歸檔日誌超過1024m,則歷史的歸檔日誌會逐一刪除。

方式二 使用系統函式刪除

sf_archivelog_delete_before_time

可以通過系統函式sf_archivelog_delete_before_time刪除指定時間之前的歸檔檔案,該函式返回刪除的歸檔日誌檔案個數。如下命令為刪除系統當前時間10天前的歸檔日誌檔案:

sql>select sf_archivelog_delete_before_time(sysdate - 10);
如下為執行結果,可以看出刪除10個歸檔日誌檔案。

系統函式sf_archivelog_delete_before_lsn可以刪除指定lsn之前的歸檔檔案,該函式返回刪除的歸檔日誌檔案個數。歸檔日誌的有效lsn範圍可以通過v$arch_file檢視。如下命令為刪除lsn號為71206之前的歸檔日誌資訊。

sql>select sf_archivelog_delete_before_lsn(71206);
如下為執行結果,刪除檔案個數為4。

方式三 備份歸檔時刪除

sql>backup archivelog all delete input;
執行完成後,查詢v$arch_file檢視無資料,同時作業系統下歸檔日誌檔案也被刪除。

也可以在dm管理工具視窗左側物件導航視窗選擇「備份」->「歸檔備份」,右擊選擇「新建備份」,開啟「新建歸檔備份」視窗,勾選「備份完刪除歸檔」,如下圖所示,歸檔的備份支援指定lsn和指定時間點。該方式是圖形化介面操作方式,功能和sql語句方式相同。

除了上述達夢資料庫系統提供的刪除歸檔日誌檔案的方法外,也可以在作業系統下手工刪除歸檔目錄下的歸檔檔案,歸檔日誌檔案刪除後不影響dm資料庫的正常執行,但無論採用哪種辦法刪除歸檔日誌,都建議在刪除前備份歸檔日誌檔案或備份資料庫,以便資料庫故障時能利用備份和歸檔日誌恢復到最新狀態。

好,本次分享就到這裡

刪除歸檔日誌

今天一早,同事說oracle資料庫連線不上。用sqlplus測試一下,報如下錯 ora 00257 archiver error.connect internal only,until freed.原因比較明顯,應該是歸檔日誌檔案太多造成磁碟或者裝置空間不足。官方的解釋就基本如此 簡單地,我們可以到...

mysql怎麼刪除歸檔日誌 歸檔日誌刪除需要注意項

delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 1 delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 2 歸檔日誌的資訊被記錄在控制檔案之中,其生存期和可保留的總數也受到控制檔案建立初以及引數c...

rman刪除歸檔日誌

1.用rman連線目標db rman target sys orcl 2.在rman命令視窗中,輸入如下命令 crosscheck archivelog all delete expired archivelog all 或者刪除指定時間之前的archivelog delete archivelog...