hi conner
thank you for the reply and the rationale on 1 ) and 2)
i do hope to have your opinion on the below backup strategy without plus archivelog
1) i need to have a 30min RPO so i am backing up the archivelog every 30 minutes
backup archivelog all delete input
2) everday at 1am - i am also doing monday full backup and cumulative backup on the rest of the days - the backup is run with plus archivelog delete input;
backup database plus archivelog delete input
i am afraid that 1) and 2) might run concurrently causing some archivelog to be deleted before it is backup thus i have removed the 'plus archivelog delete input' from the backup database command
it is currently just
backup archivelog all delete input -- every 30 mins
backup incremental level 0 database -- every sunday
backup incremental level 1 cumulative database -- monday to saturday
3) i do not have a large FRA area - so after backing up the archivelog i need them to be deleted
=========================================================
the purpose of doing backup database plus archivelog is so that i am able to restore the database to a consistent state using this 1 backup
but if i am backing up archivelog every 1/2 hour with delete input - it means that some of the archivelogs would have already been deleted while the backup database is running - this will defeat the purpose of backup database plus archivelog
q1) do you think my current backup strategy is sound ? is it okay for me to remove the 'plus archivelog' from the backup database command ?
do i lose out anything other then losing the capbility to restore the database to a consistent state in 1 single backup
Thank you
July 13, 2022 - 2:50 am UTC
1) 30min RPO
I would grab another server in your network that already runs Oracle (eg a dev box) and use it to host a DataGuard copy of your production database. Now you have your archivelogs being automatically transferred to a second server (or even second site)
2) to avoid concurrent running, its easy to do a simple OS check via "ps" or use a file as a semaphore, eg
if [ -f backup_in_progress ] then
echo Backup aborted, someone else running
exit 1
else
touch backup_in_progress
-- run backup
rm backup_in_progress
fi
To answer (3) - seriously look at a DataGuard copy. It blows my mind people dont do this for every database