查看oracle歸檔日誌路徑

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

數據的存檔模式的操作必須要在mount中進行,且數據庫要處於非open狀態。所有關閉存檔模式前,我們需要查看當前數據庫的狀態,並且關閉數據庫,啓動到mount,纔可進行操作。
SQL>archive log list; 查看是否開啓歸檔。
如果沒有開啓,需要DB startup mount模式。
SQL>alter system set logarchivestart=true scope=spfile; --修改系統的日誌方式爲存檔模式--
SQL>shutdown immediate; --關閉數據庫,因爲不能在open狀態下進行操作--
SQL>startup mount; --啓動mount實例,但不是啓動數據庫--
SQL>alter database archivelog; --更改數據庫爲存檔模式--
SQL>alter database noarchivelog; --或者更改數據庫爲非存檔模式--
此時使用SQL> archive log list 進行查看,已經更改爲存檔模式。
最後使用SQL>alter database open;打開數據庫。

SQL> alter system switch logfile; 手動歸檔一次。
RMAN> backup archivelog all; 或者RMAN手動歸檔。

SQL> select recid, name, first_time,next_time from v$archived_log; 查看歸檔
RMAN> list backup; 或者RMAN查看歸檔

查看oracle歸檔日誌路徑

1.修改歸檔日誌的格式
默認格式是:“ %t%s%r.dbf”,我們嘗試將格式修改爲“%t%s%r.arch”,這是一個靜態參數,需要重新啓動數據庫才生效。
sys@ora10g> show parameter log_archive_format

NAME TYPE VALUE


log_archiveformat string %t%s_%r.dbf

sys@ora10g> alter system set log_archiveformat='%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_FILEDEST這個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_archiveformat='%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_archiveformat='%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_archiveformat='%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_archiveformat='%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_archiveformat='%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_archiveformat='%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。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章