歸檔日誌(下),歸檔日誌(
1 sql> archive log list; #查看是不是歸檔方式
2 sql> alter system set log_archive_start=true scope=spfile; #啟用主動歸檔
sql> alter system set log_archive_dest='location=/oracle/ora9/oradata/arch' scope=spfile;
#設定歸檔路徑
sql> alter system set log_archive_dest_1='location=/oracle/ora9/oradata/arch1' scope=spfile;
sql> alter system set log_archive_dest_2='location=/oracle/ora9/oradata/arch2' scope=spfile;
#如果歸檔到兩個位置,則可以通過上邊方法實現
sql> alter system set log_archive_format='arch_%d_%t_%r_%s.log' #設定歸檔日記款式
3 sql> shutdown immediate;
4 sql> startup mount; #開啟控制檔案,不開啟資料檔案
5 sql> alter database archivelog; #將資料庫切換為歸檔模式
6 sql> alter database open; #將資料檔案開啟
7 sql> archive log list; #查看此時是否處于歸檔模式
8 查詢以確定資料庫位於archivelog模式中且歸檔過程正在運行
sql> select log_mode from v$database;
sql> select archiver from v$instance;
9 日誌切換
sql> alter system switch logfile;
10 這次日誌切換將歸檔寫到兩個目標地,
1 使用ARCHIVE LOG LIST命令可以顯示日誌操作模式,歸檔位置,自動歸檔機器要歸檔的記錄序號等資訊.
archive log list;
2 檢查當前日誌操作模式
SELECT log_mode from v$database;
3 開啟或關閉歸檔日誌
shutdown immediate;
startup monut;
alter database noarchivelog/archivelog ;
alter system set log_archive_dest='/ora_arch' scope=spfile sid='ora11g1';
alter database open;
SQL> alter system set db_recovery_file_dest='' scope=both;
SQL> alter system set log_archive_dest_1='LOCATION=/ora_arch' scope=both;
4 初始化參數LOG_ARCHIVE_FORMAT用於指定歸檔日誌的檔案名稱格式
show parameter log_archive_format; --%t_%s_%r.dbf
5 使用LOG_ARCHIVE_DEST配置歸檔位置
show parameter LOG_ARCHIVE_DEST;
ALTER SYSTEM SET log_archive_dest='/ora_arch';
6 查看歸檔日誌路徑狀態資訊
select dest_name,destination,status,error from v$archive_dest;
歸檔模式下怎查詢oracle 10g歸檔日誌存放的路徑?
SQL> select name from v$archived_log;
NAME
--------------------------------------------------
/u01/oracle/flash_recovery_area/ORA10G/archivelog/
2012_02_18/o1_mf_1_15_7myb1ftq_.arc
/u01/oracle/arch/1_16_759895721.dbf
如果沒有的話切換一下日誌:alter system switch logfile;
其他方法:
show parameter log_archive_dest;
show parameter dest
show parameter dest
怎解決“歸檔日誌已滿問題”
oem開啟oracle 10g 資料庫操作介面,會顯示如下錯誤資訊: “ 由於輸出裝置已滿或不可用, 歸檔程式無法歸檔重做日誌。”資料庫無法使用現將解決辦法稍作總結:方法一:增大歸檔日誌空間的大小可以通過下面的方法來調整系統的回閃恢複區大小:首先是關閉資料庫:以SYS身份連結到oracle,執行>shutdown immediate;啟動資料庫到mount狀態:>startup mount查看回閃恢複區的大小和存放目標:>show parameter db_recovery_file_dest修改回閃恢複區的大小>alter system set db_recovery_file_dest_size = 4G(預設是2G,可以根據實際情況調整大小)最後開啟資料庫:>alter database open; OK , 問題解決。資料庫恢複使用。方法二 :進入oracle清空日誌資訊,把空間釋放出來啟動資料庫到mount狀態: >sqlplus “/as sysdba”>startup mount新起一個終端,用rman進入把歸檔日誌刪除命令>rman target/ (只安裝了一個oracle10g資料庫)命令>crosscheck archivelog all; (列出歸檔日誌資訊)命令>delete expired archivelog all; (將上述列出的歸檔日誌刪除)命令>exit;此時最好將資料庫重新備份一下把資料庫的mount狀態更改為open狀態>alter database open; OK.問題解決,資料庫可以使用。 誤區: 在系統清空歸檔目錄的日誌資訊(即物理刪除歸檔日誌,或將歸檔日誌轉移至別處)不可取,OS雖然刪除了,但oracle系統識別不出來已經清空日誌,只能進入oracle清空日誌資訊,把空間釋放出來,(方法二);或者是把歸檔空間設定更大(方法一)。 建議將兩種方法結合使用,減少工作量,也避免資料庫頻繁掛起。同時定時進行資料庫完全備份或其他重要資料備份