Bazı durumlarda Dataguard oluşturuluyor ancak burada bir archive delete eden bir yapı oluşturmak unutulabiliyor, bu yüzden production sistemlerde kesinti olduğuna sahit oldum, Dataguard da archive doluluğu nasıl Production tarafında kesintiye neden olur derseniz, hemen izah edeyim. Örneğin archive delete policy olarak productionda ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY
şeklinde ise Datagurda apply olmayan archive lar, bu defa prod ortamda da silinmeyecektir. Durum şu şekilde Dataguard da archive silinmiyor disk doluyor, sonrasında MRP prosesi duruyor. Loglar apply olamadığı için ardından prod tarafta da archivelar silinemiyor , Prod ortam Dataguard tan dolayı Hang duruma geliyor.
Bu durumların olmaması için Dataguard tarafına da mutlaka archive delete policy oluşturmamız gerekmektedir. Aşağıda 5 günden eski archiveları silen bir bash script örneği paylaşıyor olacağım.
vi /home/oracle/scripts/archive_del.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0
export ORACLE_SID=FRKDB
export PATH=$ORACLE_HOME/bin:$PATH
deletearch () {
rman log=tmp/archive_del.log << EOF
connect target /
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'sysdate-5';
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;
exit
EOF
}
#############################
#### Call archive delete policy function #####
echo "Deleting Archive Logs"
deletearch
echo "Successfully deleted archives"
Crontab da zamanlayarak her gece çalışması sağlanır.
00 1 * * * /home/oracle/scripts/archive_del.sh > /tmp/archive_del.log 2>&1
Bir yanıt yazın