1,切換oracle用戶
su - oracle
2,用sys登陸數據庫
sqlplus / as sysdba
3,查看archivelog日志占用空間大小
set line 999;--設置顯示長度999 select * from v$recovery_file_dest;--查看archivelog日志存儲路徑 select * from v$flash_recovery_area_usage;--查看archivelog日志占用空間大小
4,關閉archivelog日志功能
shutdown immediate; --關閉數據庫 startup mount; --打開數據庫 alter database noarchivelog--關閉歸檔日志 alter database archivelog;--開啟歸檔日志 alter database open;--開啟數據庫 archive log list; --查看歸檔日志是否開啟
5,退出sqlplus,用rman刪除日志
rman target / ;--用sys登陸oracle數據庫打開rman工具 rman target sys/password@host ;--用其他方式登陸數據打開rman工具 crosscheck archivelog all;--驗證的是DB的歸檔日志即log_archive_dest參數指定位置的文件,當手工刪除了歸檔日志以后,Rman備份會檢測到日志缺失,從而無法進一步繼續執行Rman備份,所以此時需要手工執行crosscheck過程,查看所有的歸檔日志文件是否都是正常的然后再來執行Rman備份 delete expired archivelog all;--刪除過期的日志文件 delete force archivelog all;--強制刪除所有的日志文件 delete archivelog until time 'sysdate-7';--刪除系統時間7天之前的日志
6,sqlplus登陸數據庫清空v$archived_log
execute sys.dbms_backup_restore.resetCfileSection(11);--清空v$archived_log select * from v$archived_log;--查看v$archive_log
7,生成新的日志文件(可以不用做)
alter system switch logfile;--生成新的日志文件