定時刪除備份無法刪除已過期備份集

2022-10-17 17:39:05 字數 1360 閱讀 4037

改為:啟用定時備份後,如何刪除已過期備份集?

啟用定時備份後,資料庫執行一長,必然會積累很多的備份檔案,占用大量儲存空間,然而時間久遠的備份檔案可能已經失效,不再具有保留的意義。對於占用儲存空間又沒有保留意義的檔案,當然是清理掉比較好。

清理這種失效的備份檔案的方法,windows下可以寫批處理檔案,linux下可以shell指令碼。dm7本身提供的系統過程sp_batch_del_bak用於清理超期或冗餘的備份檔案非常好用。

下文就對sp_batch_del_bak做個介紹,通過乙個清理出錯的場景,引出該過程的使用方法。

一、 sp_batch_del_bak的呼叫方法:

舉例,刪除當前系統時間之前,且離當前系統時間最遠的bookshop表空間的乙個備份檔案:

注:只能刪除系統目錄下(配置的bak_path)的備份,如果備份在其他地方就需要修改bak_path引數值。

上例中引數說明:

'bookshop':物件名,可以是資料庫名、表空間名、表名;

'':模式名,僅對錶名有效;

2:級別,取值1、2、3,分別對應:資料庫級、表空間級、表級;

sysdate:要刪除的備份檔案時間節點;

1:刪除1個sysdate前備份的檔案,該數量為-1時,則刪除sysdate前備份的全部備份檔案。

二、 刪除時遇到的異常情況模擬:

sp_batch_del_bak函式會連續刪除指定時間節點前的n個備份集,前提情況是當前的備份集是連續不斷的,中間沒有人為刪除過。

圖1設定定時備份job每隔一分鐘備份一次。可以看見當前備份集是連續的。然後呼叫函式刪除當前時間的前兩個備份集,這樣就是會刪除15點51和15點52分的備份集。

圖2圖3

但是如果手動刪除過其中某個備份檔案,再執行就會出現隨機刪除兩個備份集的情況:

圖4圖5

圖6可以看到執行完函式之後把15點53分和16點01分的備份集刪除了,這樣一來本來應該被刪除的54分的備份集就保留了下來,之後再執行刪除都會隨機刪除。

三、 原因追蹤及解決方法:

再仔細研究過這個函式之後發現在《dm7_sql語言使用手冊》中對這個函式使用有乙個備註:

圖7即:在刪除備份之前首先要構建備份鍊錶,將各個備份檔案按序排列,從而不會產生因人為刪除之後導致的本來應該被刪除的備份集不刪除。

注:以上備註所述系統函式的具體的使用方法及作用請參考《dm7_sql語言使用手冊》。

在構建完備份鍊錶之後再呼叫刪除備份的系統過程,結果如下:

圖8圖9

將54分和55分的備份刪除。

四、 總結:

dm7本身提供的系統過程sp_batch_del_bak可以用於清理超期或冗餘的備份檔案。

呼叫該過程前,需要先構建備份鍊錶,避免系統統計的備份檔案資訊過期而造成清理錯誤的情況。

U盤無法安全刪除

u盤無法安全刪除?千萬別直接拔!目前有些u盤的技術很到位了,有的u盤直接插拔也可以的。但無論是多好的u盤,有一種時候是絕對不能直接插拔的,那就是仔細看你u盤的那個小紅燈,小燈在不停閃的時候表示正在不停地讀寫資料,這時候千萬不能拔,否則輕則損壞資料,重則u盤報廢。千萬不要把檔案或者資料剛剛存進u盤就直...

無法刪除檔案 無法讀原始檔或磁碟方法

在刪除檔案 資料夾時提示錯誤資訊 無法刪除檔案 無法讀原始檔或磁碟 或許你會遇到這樣一種情況 電腦某硬碟裡有檔案或資料夾其屬性無法更改,無法重新命名,無法移動,無法刪除檔案 無法讀原始檔或磁碟 的錯誤提示,都會出現經過多種方法的嘗試都無法刪除,在資源管理器裡面刪除的時候會有 無法刪除檔案 無法讀原始...

Outlook2019恢復已刪除郵件的方法技巧

在outlook郵件正文中插入附件需要先把郵件格式由預設的html格式轉變為rtf格式。以outlook2010為例,新建乙份郵件,切換到設定文字格式選項卡。在格式欄選中rtf格式。對於outlook2007,您可以在選項中找到rtf格式。順便介紹一下這三種格式 純文字格式是一種非常通用的郵件格式,...