歸檔

智慧先行者發表於2015-01-11

 

 

一設定為歸檔方式

 

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_%t_%r_%s.dbf';  #設定歸檔日記款式

       commit;

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,即第二步的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch2,要是要對目錄確認

 

在oracle情況中執行如下查詢:

sql> select name from v$archived_log; 

而後在作業系統中確認查詢所列出的檔案

 

二設定非歸檔方式

1 sql> archive log list;   #檢視是否是歸檔方式

2 sql> alter system set log_archive_start=false scope=spfile; #禁用自動歸檔

3 sql> shutdown immediate; 

4 sql> startup mount;    #開啟控制檔案,不開啟資料檔案

5 sql> alter database noarchivelog; #將資料庫切換為非歸檔模式

6 sql> alter database open;   #將資料檔案開啟

7 sql> archive log list;   #檢視此時便處於非歸檔模式

 

 

三歸檔相關命令

archive log stop; 

archive log start; 

archive log list; 

 

show parameters; 

show parameters log_archive_start; 

show parameters log_archive_max_process; #歸檔程式數

alter system set log_archive_max_process=5; #將歸檔程式數改為5 

select * from v$bgprocess;    #檢察後臺程式

相關文章