共計 7096 個字符,預計需要花費 18 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關如何查看修改 oracle 歸檔日志路徑,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
1. 修改歸檔日志的格式
默認格式是:“%t_%s_%r.dbf”,我們嘗試將格式修改為“%t_%s_%r.arch”,這是一個靜態參數,需要重新啟動數據庫才生效。
SQL show parameter log_archive_format
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_format string %t_%s_%r.dbf
SQL alter system set log_archive_format= %t_%s_%r.arch scope=spfile;
System altered
2. 修改修改歸檔日志的位置
1)使用“archive log list”命令查看一下默認情況下歸檔日志存放的位置
SQL archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2
2)上面結果提到 USE_DB_RECOVERY_FILE_DEST 這個 Archive destination,其實我們可以去掉“USE_”使用“DB_RECOVERY_FILE_DEST”得到數據庫中的參數詳解。
SQL show parameter db_recovery_file_dest
NAME TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area
db_recovery_file_dest_size big integer 4182M
3)將 db_recovery_file_dest 參數置空
SQL alter system set db_recovery_file_dest = scope=spfile;
System altered.
4)以防萬一,將 log_archive_dest 參數也置空
SQL alter system set log_archive_dest = scope=spfile;
System altered.
5)我們這里采用的生效參數是 log_archive_dest_1,修改方法如下。請注意語法
alter system set log_archive_dest_1 = location=/oradata/arch/ora10g scope=spfile;
alter system set log_archive_dest_1= LOCATION=/oradata/arch/archivelogvalid_for=(all_logfiles,all_roles) db_unique_name=ocrl 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 hh34: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 hh34: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 hh34: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 參數。
關于“如何查看修改 oracle 歸檔日志路徑”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。