اگه دیسک شما پر شده شما باید بکآپها و آرشیو لاگهای قدیمی رو پاک کنید یا به tape انتقال بدید. اگه نیاز دارید آرشیو لاگها رو پاک کنید میتونید از دستورات زیر در RMAN استفاده کنید. البته توصیه میکنم بعد از گرفتن بکآپ یا انتقال آرشیوها به گارد اینکار رو انجام بدید و درکل حواستون به خطرات اینکار باشه
گرفتن لیست آرشیو لاگها
RMAN> list archivelog all;
RMAN> list copy of archivelog until time ‘SYSDATE-10’;
RMAN> list copy of archivelog from time ‘SYSDATE-10’
RMAN> list copy of archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> list copy of archivelog from sequence 1000;
RMAN> list copy of archivelog until sequence 1500;
RMAN> list copy of archivelog from sequence 1000 until sequence 1500;
پاککردن آرشیو لاگها
RMAN> delete archivelog all;
RMAN> delete archivelog until time ‘SYSDATE-10’;
RMAN> delete archivelog from time ‘SYSDATE-10’
RMAN> delete archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> delete archivelog from sequence 1000;
RMAN> delete archivelog until sequence 1500;
RMAN> delete archivelog from sequence 1000 until sequence 1500;
اگه خواستید از این دستورات در اسکریپت استفاده کنید و به پیفام زیر بر نخورید:
از دستور noprompt استفاده کنید تا پیغام yes-no رو نبینید.
RMAN> delete noprompt archivelog until time 'SYSDATE-10';
حالا اگه موقع حذف آرشیولاگها به مشکل زیر برخورد کردید:
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103136.56752.952282449 thread=1 sequence=103136
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103137.56751.952282463 thread=1 sequence=103137
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103138.56748.952282479 thread=1 sequence=103138
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103139.56744.952282493 thread=1 sequence=103139
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103140.56740.952282509 thread=1 sequence=103140
میتونید از force استفاده کنید:
RMAN> delete force noprompt archivelog until time 'SYSDATE-7';
خودکارسازی فرآیند
برای خودکارسازی فرآیند من از ۲ اسکریپت زیر استفاده کردم و با استفاده از سرویس cron اسکریپتها رو برای اجرای هفتهای زمانبندی کردم:
دریافت اسکریپت RMAN
حجم: 132 بایت
دریافت اسکرپت شل لینوکس
حجم: 423 بایت
منبع:
http://www.fatihacar.com/blog/delete-archivelog-using-rman-in-oracle