【archive_dest】歸檔的路徑問題
初始環境:
檢視歸檔模式:
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence 2
Next log sequence to archive 5
Current log sequence 5
檢視引數log_archive_dest:
SYS@PROD> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
檢視閃回狀態:
SYS@PROD> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
閃回未開啟。
==============================================================================
閃回未開啟時的歸檔路徑測試:
進行歸檔,並檢視歸檔路徑:
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
3條記錄歸檔在了Archive destination /u01/app/oracle/product/10.2.0/db_1/dbs/arch
路徑下。
此時想修改歸檔的路徑,設定引數log_archive_dest
SYS@PROD> alter system set log_archive_dest='/home/oracle/ar_test';
System altered.
SYS@PROD> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string /home/oracle/ar_test
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/ar_test
Oldest online log sequence 4
Next log sequence to archive 8
Current log sequence 8
此時再次實驗檢視歸檔路徑:
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
多出第4條歸檔結果的存放路徑發生了變化
上述的操作,未開啟閃回。接下來看看閃回開啟後歸檔路徑會發生什麼變化。
閃回開啟:
SYS@PROD> alter system set db_recovery_file_dest_size=2g;
System altered.
SYS@PROD> alter system set db_recovery_file_dest='/home/oracle/flash';
alter system set db_recovery_file_dest='/home/oracle/flash'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16019: cannot use db_recovery_file_dest with LOG_ARCHIVE_DEST or
LOG_ARCHIVE_DUPLEX_DEST
因為設定了引數LOG_ARCHIVE_DEST,所以無法再設定閃回恢復區的目錄,也就無法開啟歸檔。
只好取消LOG_ARCHIVE_DEST的設定
SYS@PROD> alter system set LOG_ARCHIVE_DEST='';
System altered.
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination ?/dbs/arch
Oldest online log sequence 5
Next log sequence to archive 9
Current log sequence 9
如果此時如果在進行歸檔:
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
你將無法找到新生成的歸檔,直到我們再次設定了新的歸檔路徑,此次消失的歸檔檔案將和下一次新產生的歸檔檔案同時出現
SYS@PROD> alter system set log_archive_dest='/home/oracle/ar_test';
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
還是4條記錄,我們在歸檔一次:
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
/home/oracle/ar_test/1_9_809806951.dbf
/home/oracle/ar_test/1_10_809806951.dbf
6 rows selected.
6條記錄出現了。
如果,我們設定了引數log_archive_dest,閃回是無法開啟的。
取消該引數的設定:
SYS@PROD> alter system set log_archive_dest='';
System altered.
設定db_recovery_file_dest
SYS@PROD> alter system set db_recovery_file_dest='/home/oracle/flash';
System altered.
SYS@PROD> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/flash
db_recovery_file_dest_size big integer 2G
取消db_recovery_file_dest引數後就可以了。雖然此時閃回還沒有開啟,但此時新的歸檔路徑已經變成db_recovery_file_dest=’/home/oracle/flash’
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 8
Next log sequence to archive 12
Current log sequence 12
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
/home/oracle/ar_test/1_9_809806951.dbf
/home/oracle/ar_test/1_10_809806951.dbf
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_11_8n106whc_.arc
7 rows selected.
我們清楚地看到第七條結果了
接下來,我們正式開始閃回
SYS@PROD> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
在來重複上面的歸檔操作看看:
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 8
Next log sequence to archive 12
Current log sequence 12
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
/home/oracle/ar_test/1_9_809806951.dbf
/home/oracle/ar_test/1_10_809806951.dbf
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_11_8n106whc_.arc
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_12_8n10qpfm_.arc
8 rows selected.
8條記錄了,新生成的歸檔在閃回恢復區中。
我們似乎看到,其實不論我們是否執行了:
Alter database flashback on命令
來真正的開啟閃回,當我們設定了引數db_recovery_file_dest時,歸檔的路徑就已經確定,而且無法再使用引數log_archive_dest。
如果,此時想形成多路徑歸檔日誌,可以通過設定引數log_archive_dest_n
這裡設定log_archive_dest_1
SYS@PROD> alter system set log_archive_dest_1='location=/home/oracle/ar_test';
System altered.
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/ar_test
Oldest online log sequence 9
Next log sequence to archive 13
Current log sequence 13
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
/home/oracle/ar_test/1_9_809806951.dbf
/home/oracle/ar_test/1_10_809806951.dbf
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_11_8n106whc_.arc
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_12_8n10qpfm_.arc
/home/oracle/ar_test/1_13_809806951.dbf
9 rows selected.
log_archive_dest_1引數設定後,形成了新的歸檔路徑,且不在閃回恢復區中進行歸檔。
僅接著再來設定一個引數log_archive_dest_2:
SYS@PROD> alter system set log_archive_dest_2='location=/home/oracle/ar_test1';
System altered.
SYS@PROD> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=/home/oracle/ar_test
log_archive_dest_10 string
log_archive_dest_2 string location=/home/oracle/ar_test1
log_archive_dest_3 string
SYS@PROD> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/ar_test1
Oldest online log sequence 11
Next log sequence to archive 15
Current log sequence 15
進行歸檔:
SYS@PROD> alter system switch logfile;
System altered.
SYS@PROD> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_6_809806951.dbf
/u01/app/oracle/product/10.2.0/db_1/dbs/ar_test1_7_809806951.dbf
/home/oracle/ar_test/1_8_809806951.dbf
/home/oracle/ar_test/1_9_809806951.dbf
/home/oracle/ar_test/1_10_809806951.dbf
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_11_8n106whc_.arc
/home/oracle/flash/PROD/archivelog/2013_03_13/o1_mf_1_12_8n10qpfm_.arc
/home/oracle/ar_test/1_13_809806951.dbf
/home/oracle/ar_test/1_14_809806951.dbf
/home/oracle/ar_test1/1_14_809806951.dbf
11 rows selected.
此時有兩個歸檔記錄生成,且兩個檔案的名字一樣,只是存放的路徑不同。
結論:
(1) 剛開啟歸檔時,將有一個預設的歸檔路徑:
/u01/app/oracle/product/10.2.0/db_1/dbs/arch,可以通過設定引數log_archive_dest來設定新的歸檔路徑
(2) 如果設定了引數log_archive_dest,將無法開啟設定引數db_recovery_file_dest來配置閃回恢復區,也就無法開啟閃回。
(3) log_archive_dest無法和引數log_archive_dest_n, db_recovery_file_dest同時存在
(4) log_archive_dest_n設定後將做為新的歸檔路徑,設定幾個引數就會有幾個幾路歸檔,同時也不會再在閃回恢復區中進行歸檔。
(5) “曾看到資料說,db_recovery_file_dest設定後,oracle會隱式的設定log_archive_dest
_10為db_recovery_file_dest的內容”這裡無從驗證。
======================================================================================
其實,到這裡,經朋友的提示,發現了一個蛋疼的問題:設定後log_archive_dest後,我們可以關閉資料庫在pfile裡設定pfiledb_recovery_file_dest的值,然後生成spfile啟動資料庫,此時,這幾個引數將同時有效的存在,歸檔將會在這兩個引數下的路徑下進行2路歸檔。但是此時你將無法在資料庫開啟狀態下對這幾個引數通過spfile進行任何修改,除非你在去pfile裡進行修改。至於非要這樣修改的目的是什麼,不知道。暫時只是知道有這麼一回事!
ballontt
2013/3/13
---The End---
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27425054/viewspace-756096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dataguard歸檔路徑的問題
- 10g修改歸檔日誌路徑的問題
- 歸檔日誌多歸檔路徑 duplex
- 更改ORACLE歸檔路徑及歸檔模式Oracle模式
- 改變歸檔檔案路徑
- 檔案路徑問題( ./ 和 ../ 和 @/ )
- 修改歸檔日誌路徑
- 更改archive log 歸檔路徑和歸檔檔名稱Hive
- 更改oracle10g的歸檔模式和歸檔路徑Oracle模式
- 修改db2的歸檔路徑DB2
- 由於歸檔路徑設定不當,系統無法響應的問題
- 【Django】檔案讀取時路徑問題Django
- oracle單機改變歸檔路徑Oracle
- oracle資料庫更改歸檔路徑Oracle資料庫
- [Archive]更改ORACLE預設歸檔路徑HiveOracle
- 非歸檔模式下的資料檔案路徑修改模式
- oracle 10g rac+asm 歸檔路徑磁碟組空間滿問題處理Oracle 10gASM
- standby庫歸檔日誌路徑小節
- 歸檔路徑與FRA實驗過程
- ORA-00257 (線上更改歸檔路徑,刪除歸檔日誌)
- oracle歸檔日誌儲存路徑的設定Oracle
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 遞迴路徑問題遞迴
- 上傳檔案時路徑總是C:\fakepath\的問題
- JavaWeb中讀取【專案路徑下檔案】的路徑問題:this.getServletContext().getRealPath()JavaWebServletContext
- 【實驗】【Archived Log】歸檔日誌格式和歸檔路徑之change趣談Hive
- web專案絕對路徑與相對路徑的問題Web
- 演算法——路徑問題演算法
- django建立的專案路徑問題Django
- web應用中的路徑問題Web
- DWR中引用JS的路徑問題JS
- Java 專案讀取 resource 資原始檔路徑問題Java
- 奇葩網路問題歸總
- 程式設計中對於檔案路徑應該注意的問題程式設計
- 遷移Qt專案的路徑問題QT
- python中的路徑問題彙總Python
- vue 關於圖片路徑的問題Vue
- VsCode相對路徑的問題VSCode