查看oracle歸檔日志路徑


轉至:https://blog.csdn.net/u010098331/article/details/50729896/

查看oracle歸檔日志路徑

1.修改歸檔日志的格式

默認格式是:“ %t_%s_%r.dbf”,我們嘗試將格式修改為“%t_%s_%r.arch”,這是一個靜態參數,需要重新啟動數據庫才生效。 
sys@ora10g> show parameter log_archive_format 

NAME                  TYPE        VALUE 
--------------------- ----------- -------------------------------------- 
log_archive_format    string      %t_%s_%r.dbf 

sys@ora10g> alter system set log_archive_format='%t_%s_%r.arch' scope=spfile; 

System altered. 

2.修改修改歸檔日志的位置 
1)使用“archive log list”命令查看一下默認情況下歸檔日志存放的位置 
sys@ora10g> archive log list; 
Database log mode              Archive Mode 
Automatic archival             Enabled 
Archive destination            USE_DB_RECOVERY_FILE_DEST 
Oldest online log sequence     98 
Next log sequence to archive   100 
Current log sequence           100 

2)上面結果提到USE_DB_RECOVERY_FILE_DEST這個Archive destination,其實我們可以去掉“USE_”使用“DB_RECOVERY_FILE_DEST”得到數據庫中的參數詳解。 
sys@ora10g> show parameter DB_RECOVERY_FILE_DEST 

NAME                  TYPE        VALUE 
--------------------- ----------- -------------------------------------- 
db_recovery_file_dest string      /oracle/app/oracle/flash_recovery_area 

3)將db_recovery_file_dest參數置空 
alter system set db_recovery_file_dest = '' scope=spfile; 

4)以防萬一,將log_archive_dest參數也置空 
alter system set log_archive_dest = '' scope=spfile; 

5)我們這里采用的生效參數是log_archive_dest_1,修改方法如下。請注意語法 
alter system set log_archive_dest_1 = 'location=/oracle/arch/ora10g' scope=spfile; 

6)重新啟動數據庫,使上述所有修改的參數生效。 
sys@ora10g> shutdown immediate; 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
sys@ora10g>  
sys@ora10g> startup; 
ORACLE instance started. 

Total System Global Area 2.1475E+10 bytes 
Fixed Size                  2111160 bytes 
Variable Size            2399144264 bytes 
Database Buffers         1.9059E+10 bytes 
Redo Buffers               14663680 bytes 
Database mounted. 
Database opened. 

7)確認修改成功 
(1)第一種確認方法:使用“archive log list”命令關注“Archive destination”信息 
sys@ora10g> archive log list; 
Database log mode              Archive Mode 
Automatic archival             Enabled 
Archive destination            /oracle/arch/ora10g 
Oldest online log sequence     121 
Next log sequence to archive   123 
Current log sequence           123 

(2)第二種確認方法:手工歸檔一下,通過v$archived_log視圖確認 
sys@ora10g> alter system switch logfile; 

System altered. 

sys@ora10g> col NAME for a40 
sys@ora10g> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 

Session altered. 

sys@ora10g> select recid, name, first_time from v$archived_log; 

     RECID NAME                                     FIRST_TIME 
---------- ---------------------------------------- ------------------- 
         1                                          2009-06-06 01:38:39 
         2                                          2009-06-06 05:50:32 
... 這省略之前的歸檔日志信息 ... 
       132 /oracle/arch/ora10g/1_123_688786498.arch 2009-09-20 11:26:26 

8)上面的修改過程,也可以通過直接修改pfile文件達到目的 
列一下修改之后的關鍵參數內容: 
$ cat $ORACLE_HOME/dbs/initora10g.ora 
這里省略不關心的其他參數 
*.log_archive_format='%t_%s_%r.arch' 
*.db_recovery_file_dest='' 
*.log_archive_dest='' 
*.log_archive_dest_1='location=/oracle/arch/ora10g' 

3.修改流程介紹完畢,我們再一起討論一些有趣的現象。 
1)有趣現象一:使用log_archive_dest參數,不使用上面提到的log_archive_dest_1參數一樣可以達到修改歸檔路徑的目的 
精簡式列一下這個修改流程: 
(1)修改歸檔文件格式 
alter system set log_archive_format='%t_%s_%r.arch' scope=spfile;  
(2)將db_recovery_file_dest置空 
alter system set db_recovery_file_dest = '' scope=spfile; 
(3)將log_archive_dest_1置空 
alter system set log_archive_dest_1 = '' scope=spfile; 
(4)啟用log_archive_dest參數 
alter system set log_archive_dest = '/oracle/arch/ora10g' scope=spfile; 
(5)重啟數據庫使上面的所有參數生效 
shutdown immediate; 
startup; 
(6)當然,上面的過程一樣可以通過修改pfile的方法來完成 
修改后的pfile關鍵參數內容如下 : 
*.log_archive_format='%t_%s_%r.arch' 
*.db_recovery_file_dest='' 
*.log_archive_dest='/oracle/arch/ora10g' 
*.log_archive_dest_1='' 

上面的方法一樣可以達到修改歸檔路徑的目的,不過不推薦使用log_archive_dest這個參數,在10g中,建議您使用log_archive_dest_n參數完成修改。 

2)有趣現象二:如果db_recovery_file_dest和log_archive_dest兩個參數同時設置,會在這兩個目錄中同時產生歸檔日志 
(1)修改pfile,實驗可以使用如下參數進行 
*.log_archive_format='%t_%s_%r.arch' 
*.db_recovery_file_dest='/oracle/app/oracle/flash_recovery_area' 
*.log_archive_dest='/oracle/arch/ora10g' 
*.log_archive_dest_1='' 

(2)使用pfile重新啟動數據庫 
sys@ora10g> shutdown immediate; 
sys@ora10g> startup pfile = '/oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora'; 

(3)“有趣”現象出現了 
sys@ora10g> alter system switch logfile; 
sys@ora10g> alter system switch logfile; 
sys@ora10g> col NAME for a40 
sys@ora10g> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 
sys@ora10g> select recid, name, first_time from v$archived_log; 

     RECID NAME                                     FIRST_TIME 
---------- ---------------------------------------- ------------------- 
       137 /oracle/arch/ora10g/1_128_688786498.arch 2009-09-20 12:09:29 
       138 /oracle/arch/ora10g/1_129_688786498.arch 2009-09-20 12:09:29 
       139 /oracle/arch/ora10g/1_130_688786498.arch 2009-09-20 12:09:30 
       140 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:09:30 
           RA10G/archivelog/2009_09_20/o1_mf_1_130_ 
           5ccccmw6_.arc 

       141 /oracle/arch/ora10g/1_131_688786498.arch 2009-09-20 12:20:03 
       142 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:20:03 
           RA10G/archivelog/2009_09_20/o1_mf_1_131_ 
           5cccd5kt_.arc 

(4)結論 
兩個目錄都會生成歸檔日志,內容是一樣的; 
/oracle/app/oracle/flash_recovery_area目錄下生成的歸檔文件的格式沒有受log_archive_format參數影響,也就是說:log_archive_format的參數只對log_archive_dest和log_archive_dest_n生效。 

3)有趣現象三:db_recovery_file_dest和log_archive_dest_n同時設置時,只有log_archive_dest_n的目錄產生日志 
(1)修改pfile,實驗可以使用如下參數進行 
*.log_archive_format='%t_%s_%r.arch' 
*.db_recovery_file_dest='/oracle/app/oracle/flash_recovery_area' 
*.log_archive_dest='' 
*.log_archive_dest_1='location=/oracle/arch/ora10g' 

(2)使用pfile重新啟動數據庫 
sys@ora10g> shutdown immediate; 
sys@ora10g> startup pfile = '/oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora'; 

(3)實驗結果如下 
sys@ora10g> alter system switch logfile; 
sys@ora10g> alter system switch logfile; 
sys@ora10g> col NAME for a40 
sys@ora10g> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 
sys@ora10g> select recid, name, first_time from v$archived_log; 

     RECID NAME                                     FIRST_TIME 
---------- ---------------------------------------- ------------------- 
       138 /oracle/arch/ora10g/1_129_688786498.arch 2009-09-20 12:09:29 
       139 /oracle/arch/ora10g/1_130_688786498.arch 2009-09-20 12:09:30 
       140 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:09:30 
           RA10G/archivelog/2009_09_20/o1_mf_1_130_ 
           5ccccmw6_.arc 

       141 /oracle/arch/ora10g/1_131_688786498.arch 2009-09-20 12:20:03 
       142 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:20:03 
           RA10G/archivelog/2009_09_20/o1_mf_1_131_ 
           5cccd5kt_.arc 

       143 /oracle/arch/ora10g/1_132_688786498.arch 2009-09-20 12:20:21 
       144 /oracle/arch/ora10g/1_133_688786498.arch 2009-09-20 12:32:58 


(4)結論 
比照“有趣現象二”的結論,看到這里只有log_archive_dest_1參數設置的歸檔路徑生效了。 

3)有趣現象四:log_archive_dest和log_archive_dest_1參數不能同時設置 
(1)修改pfile,實驗可以使用如下參數進行,db_recovery_file_dest參數設置與否都不會影響我們的實驗結果 
*.log_archive_format='%t_%s_%r.arch' 
*.db_recovery_file_dest='/oracle/app/oracle/flash_recovery_area' 
*.log_archive_dest='/oracle/arch/ora10g' 
*.log_archive_dest_1='location=/oracle/arch/ora10g' 

(2)使用pfile重新啟動數據庫時就會報錯,不能這樣進行設置 
sys@ora10g> shutdown immediate; 
sys@ora10g> startup pfile = '/oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora'; 
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

(4)結論 
log_archive_dest和log_archive_dest_1參數不能同時設置,即如果啟用了log_archive_dest_1參數就不能再使用log_archive_dest參數重復設置了。 
通過這個實驗,可以得到一個結論:log_archive_dest這個參數只是為了向后兼容而存在的,因此在9i之后的版本Oracle中如果需要修改歸檔文件生成路徑的話,還是建議您使用log_archive_dest_n參數。 

4.總結 
相信,如果您能靜心閱之,此時,您一定已經掌握了歸檔日志生成路徑和歸檔日志生成格式的修改技法。 

同時,通過這些發現的有趣現象,我們也看到了一些Oracle的細節差異。大家慢慢發掘ing。 

友情提示:生產環境上的任何修改操作必須謹慎!請充分測試后實施,防止類似本實驗中那些“有趣現象”的發生。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM