Oracle

在 Linux 上的 Oracle 11gR2 RMAN 中使用 delete obsolete

  • November 14, 2019

我正在使用 crontab 進行自動備份(完整備份)。它一天工作 2 次(上午 8 點和下午 23 點)。在我的腳本中,我使用 delete obsolete 但我有一個問題。我想刪除沒有最後 2 個備份的舊備份。比方說:

第 1 天:上午 8 點

第一天:下午 23 點

第 2 天:上午 8 點(當我的腳本在這裡執行並完成備份操作時,之後我的刪除命令應該只刪除第 1 天:上午 8 點的備份)

如何使用刪除過時的命令來做到這一點?

這是我的腳本:

#!/bin/bash
. /home/oracle/.bash_profile
RMANBACKUP_MOUNTPOINT1=/u01/backup/rman/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_DATE_FORMAT="YYYY-MM-DD:HH24:MI:SS"
rman target /  LOG '/oracle/backups/log/rman.log' << EOF
run{
allocate channel ch1 device type disk MAXPIECESIZE 200M;
allocate channel ch2 device type disk MAXPIECESIZE 200M;
backup spfile;
backup current controlfile;
backup database format '%d_%T_db' plus archivelog format '%d_%T_arch';
delete obsolete redundancy 2;
}
exit;
EOF

謝謝你。

告訴 RMAN 你想要/需要保留什麼,讓它來做令人擔憂的事情。

CONFIGURE RETENTION POLICY TO REDUNDANCY 2 ; 

這將保留數據庫的兩個副本,並認為在此之前的任何內容都已過時。

我有點擔心您說您只進行“完整備份”。

您在備份 ControlFiles 嗎?存檔日誌?

如果沒有前者,在更改數據庫結構(刪除甚至添加數據文件)後恢復數據庫可能會遇到問題,而沒有後者,您將失去執行時間點恢復的任何能力。

引用自:https://dba.stackexchange.com/questions/253279