oracle數據的關於歸檔日志開啟及管理的相關命令如下:
一.打開oracle數據庫歸檔日志,需要如下幾步。
1.進入dos窗口—>>> 菜單鍵+R,進入 運行 界面,輸入cmd
2.登錄 sqlplus,—>> 方法: sqlplus/nolog,切忌:不要輸入sqlplus/noarchivelog; 加上 分隔符 ;, 這樣進入的sqlplus的命令參數幫助
3.登入管理員—>> 方法: conn/as sysdba;
4.開啟歸檔日志
4.1 shutdown immediate; –關閉數據庫
4.2 startup mount; – 打開數據庫
4.3 alter database archivelog;—開啟歸檔日志
4.4 alter database open;–開啟數據庫
4.5 archive log list; – 查看歸檔日志是否開啟
開啟狀態:
數據庫日志模式 存檔模式
自動存檔 啟用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日志序列 49
下一個存檔日志序列 51
當前日志序列 51
2.關閉歸檔日志
在這里所有的操作要在數據庫的那台機器上操作,用SYS用戶進行登錄,首先設置歸檔進程關閉。
alter system set log_archive_start=false scope=spfile; (9i,10g不用)
然后關閉數據庫
shutdown immediate
再后面把數據庫啟動到mount的模式
startup mount
關閉flash閃回數據庫模式,如果不關閉的話,在后面關閉歸檔日志的時候就會出現討厭的ORA-38774錯誤。 ORA-38774: 無法禁用介質恢復 - 閃回數據庫已啟用
alter database flashback off
接着把數據庫改為非歸檔模式
alter database noarchivelog;
都修改好了以后,然后打開數據庫
Alter database open;
察看一下歸檔日志的空間大小
select * from v$recovery_file_dest;
接着看一下log日志的狀態
select * from v$log;
再看一下閃回日志使用狀況
select * from v$flash_recovery_area_usage;
這些都沒有問題以后,數據庫問題就解決了。
3.歸檔日志滿了之后處理方式
連接時提示:oracle 歸檔日志滿 報錯ORA-00257: archiver error. Connect internal only, until freed 基本上就是歸檔日志滿了,需要清除
也可以使用select * from v$flash_recovery_area_usage 查看歸檔日志占用率。超過90%就要及時處理
1.增加日志文件大小,方式使用管理員用戶 執行 ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g; 根據時間硬盤空間設置大小。
2.在Windows環境下使用RMAN命令刪除Oracle過期歸檔日志的方法
A.命令刪除 在cmd下輸入rman之后執行如下命令
connect target sys/sys_passwd
crosscheck backup;
delete obsolete;
delete expired backup;
crosscheck archivelog all;
delete expired archivelog all;
delete archivelog all; //刪除所有歸檔日志
delete noprompt force archivelog until time 'sysdate -1';//強制刪除昨天以前的archivelog files
connect target bqss/bqss@orcl
run{
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-10'; //刪除10天前的歸檔日志,怕哪天DG有問題,有日志沒有及時應用
crosscheck archivelog all;
delete expired archivelog all;
}
2、創建批處理任務(delete_archive.bat)
rman cmdfile=c:\delete_arch.txt
3、創建一個windows任務定時調用批處理任務
