本文**
一、背景
由於業務增長,頻繁的備份還原對於磁碟空間有了更大的空間需求,基本每週500g的磁碟,空間使用率都會達到85%以上,故編寫oracle清理指令碼結合crond自動清理oracle歸檔日誌。
二、工具介紹
rman(recovery manager)是一種用於備份(backup)、還原(restore)和恢復(recover)資料庫的 oracle 工具。rman只能用於oracle8或更高的版本中。它能夠備份整個資料庫或資料庫部件,如表空間、資料檔案、控制檔案、歸檔檔案以及spfile引數檔案。rman也允許您進行增量資料塊級別的備份,增量rman備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些資料塊。而且,通過rman提供的介面,第三方的備份與恢復軟體如veritas將提供更強大的備份與恢復的管理功能。通過rman,也提供了其它更多功能,如資料庫的轉殖、採用rman建立備用資料庫、利用rman備份與移動裸裝置(raw)上的檔案等工作將變得更方便簡單。9i的rman通過增強的自動配置與管理功能,以及特有的塊級別的恢復,將使備份與恢復工作變得更加快捷與完美。
使用rman連線到資料庫時,預設使用sysdba角色登陸。
rman target / #連線進rman
delete noprompt archivelog all completed before 'sysdate-7'; #刪除系統時間7天以前的歸檔日誌,不會刪除閃回區有效的歸檔日誌由於物理 #磁碟dbf檔案很多,如果進行物理刪除dbf檔案較麻煩,列出以下命令供物理刪除參考
<20) print$0}'` #刪除20號以前的日誌
如果手動在磁碟清理過日誌檔案,需要在rman內檢查,然後刪除過期的日誌
crosscheck archivelog all; #檢查所有歸檔日誌
list expired archivelog all; #列出過期的歸檔日誌
delete noprompt expired archivelog all; #刪除過期的歸檔日誌
delete noprompt archivelog all; #清除所有的歸檔日誌
三、自清理指令碼
#!/bin/bash
oracle_env
() oracle_clean
() target /<'sysdate-7';
crosscheck archivelog all;
list expired archivelog all;
delete noprompt expired archivelog all;
exit;
eof}
main
() -gt 80 ];then
oracle_clean
fi} main
配合定時任務清理磁碟,此在指令碼內寫的判斷磁碟使用率大於80%進行清理,也可根據自己需求進行判斷,或每次都執行清理。 oracle歸檔日誌清理
rman清除方式會自動清除磁碟上的歸檔日誌檔案,同時會釋放控制檔案中對應的歸檔日誌的歸檔資訊。list expired archivelog all 列出所有失效的歸檔日誌 delete archivelog until sequence 16 刪除log sequence為16及16之前的所有歸檔...
自動清理歸檔日誌 Oracle重做日誌和日誌挖掘
重做日誌包含所有資料產生的歷史改變記錄。重做日誌檔案通常用於 v log從控制檔案中顯示日誌檔案的資訊。可參考官網資料 v log 日誌檔案的六種狀態unused,current,active,clearing,clearing current,inactive代表的意思分別如下所述 上圖就是ora...
mysql 清理歸檔日誌 oracle歸檔日誌清理
在開啟歸檔並沒有截斷日誌的情況下,歸檔日誌會越來越大,在此情況下,我們該如何去清理!兩種方法 1 配置rman自動管理archivelog。也可在rman中將資料備份到磁帶上,然後將過期的archivelog刪除 2 可以手工來處理,步驟如下 1 將 oracle下的相關archivelog日誌檔案...