Posted on
Cleanup Database Logs with RMAN
Clean Archivelogs / ctrl file backups / flashback area 1.
The script below does the following things:
- Removes (deletes) orphaned, expired and obsolete archivelogs and backups
- Removes (deletes) past archivelogs
- Removes (deletes) control file backups
- Removes (deletes) flashback restore points on CDB and PDB(s)
- Works with no parameters
- Copy the script using this button →
RUN { #Deletes obsolete and orphaned archivelogs and controlfile backups change archivelog all crosscheck; report obsolete orphan; report obsolete; crosscheck backup; crosscheck copy; crosscheck backup of controlfile; delete noprompt expired backup; delete noprompt expired archivelog all; delete noprompt expired backup of controlfile; delete force noprompt expired copy; delete force noprompt obsolete orphan; delete force noprompt obsolete; #Deletes archivelogs crosscheck archivelog all; delete force noprompt archivelog all; #Deletes flashback restore points DECLARE l_drop_stmn VARCHAR2(300); CURSOR c1 IS SELECT 'DROP RESTORE POINT ' || rp.name || CASE WHEN UPPER(rp.pdb_restore_point) = 'YES' THEN ' FOR PLUGGABLE DATABASE ' || pdb.name END as cmd FROM v$restore_point rp , v$pdbs pdb WHERE rp.con_id = pdb.con_id(+); BEGIN DBMS_OUTPUT.ENABLE(1000); OPEN c1; LOOP FETCH c1 INTO l_drop_stmn; EXIT WHEN c1%NOTFOUND; EXECUTE IMMEDIATE l_drop_stmn; END LOOP; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); NULL; END; / }
-
The script is proved to work with Oracle 12.2.; ↩