Oracle教程:自動刪除指定日期之前的歸檔日誌

來源:互聯網
上載者:User

背景:

最近遇到一個很BT的項目,通過資料庫的鏡像盤陣進行RMAN備份,生產環境中產生的歸檔日誌需要定時清除。而且,由於鏡像盤陣是在備份時才進行同步,所以在生產環境中刪歸檔時,還需要至少保留最近1天的歸檔。作業系統為AIX5.3和AIX6.1。

解決方案:

1、如果歸檔日誌是放在檔案系統下,可採用下述方法:

find . -mtime +20 -mtime -30 -exec rm -fr {} \;      (找出目前的目錄下,前20至30天之間產生的檔案,並刪除之;

2、本次項目使用ASM作為歸檔存放地,該命令在asmcmd中無法使用,遂有更通用的解決方案:

通過RMAN 登陸:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定刪除7天前的歸檔日誌)

或者

delete archivelog until time "sysdate - 7";

由於這兩條語句在執行時,先列出合格歸檔日誌,然後詢問是否需要刪除,所以自動刪除的指令碼(autoDelArchive.sh)為:

export Oracle_SID=testdb

rman target  /  > delarchive.log << EOF

delete archivelog until time "sysdate - 7";

YES

exit

EOF

接下來,制定執行計畫,放到crontab中,over。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.