您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何更改ORACLE歸檔路徑及歸檔模式,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在ORACLE10g和11g版本,ORACLE默認的日志歸檔路徑為閃回恢復區($ORACLE_BASE/flash_recovery_area)。對于這個路徑,ORACLE有一個限制,就是默認只有2G的空間,而且不只是歸檔日志的默認路徑,也是備份文件和閃回日志的默認地址,這樣的話歸檔日志鎖使用的空間就達不到2G,在沒有設置好這個路徑大小的情況下,很多系統都遇到過歸檔日志滿而無法歸檔導致數據庫夯住的問題,可以使用下面的SQL語句去查看歸檔信息。
SQL> archive log list
數據庫日志模式 非存檔模式
自動存檔 禁用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日志序列 321
當前日志序列 326。
上面的存檔終點USE_DB_RECOVERY_FILE_DEST默認就是閃回恢復區($ORACLE_BASE/flash_recovery_area),可以通過下面的SQL查看閃回恢復區的信息。
SQL> show parameter db_recover
NAME TYPE VALUE
-------------------------- ----------- ----------------------------
db_recovery_file_dest string D:\oracle\flash_recovery_area
db_recovery_file_dest_size big integer 2G
通過上面的SQL結果可以看到,閃回恢復區為D:\oracle\flash_recovery_area,大小為2G,也可以通過查詢v$recovery_file_dest視圖查看閃回恢復的限制信息。
SQL> select name,SPACE_LIMIT,SPACE_USED from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED
------------------------------ ----------- ----------
D:\oracle\flash_recovery_area 2147483648 21225472
默認情況下,歸檔日志會存放到閃回恢復區(D:\oracle\flash_recovery_area)內,如果閃回恢復區已經使用到2G,歸檔日志就有可能無法繼續歸檔,數據庫夯住,通常的解決方法是增大閃回恢復區,可以用以下SQL實現。
SQL> alter system set db_recovery_file_dest_size=3G;
系統已更改。
即使用這種方法解決的當前燃眉之急,雖然閃回恢復區ORACLE會自動管理,如果閃回恢復區空間不足就會清理掉沒用的數據,但是如果備份策略不是很完善,數據庫非常繁忙的情況下,還有可能遇到這種情況,通常需要修改歸檔日志的路徑,將歸檔日志放到其他不受限制的路徑下來解決這個問題,可通過下面的SQL來修改歸檔日志的存放路徑。
SQL> alter system set log_archive_dest_1='location=D:\arch';
系統已更改。
然后將數據庫啟動到MOUNT狀態,將數據庫修改為歸檔模式后建數據庫啟動到OPEN狀態。
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
數據庫裝載完畢。
SQL> alter database archivelog;
數據庫已更改。
SQL> alter database open;
數據庫已更改。
再次查看數據庫的歸檔情況。
SQL> archive log list
數據庫日志模式 存檔模式
自動存檔 啟用
存檔終點 D:\arch
最早的聯機日志序列 321
下一個存檔日志序列 326
當前日志序列 326
可以通過切換日志,查看歸檔路徑下是否有歸檔日志產生來驗證歸檔路徑設置是否正確,可以通過下面的命令切換日志。
SQL> alter system switch logfile;
系統已更改。
查看歸檔路徑(D:\arch)下是否有歸檔路徑產生。
D:\arch>dir/b
ARC0000000326_0764368160.0001
可以看到在D:\arch路徑下已經產生了歸檔日志,歸檔日志的名字受log_archive_format參數限制,可以通過下面的命令查看。
SQL> show parameter log_archive_format
NAME TYPE VALUE
---------------------- ------------ ------------
log_archive_format string ARC%S_%R.%T
上面產生的歸檔文件名字為ARC0000000326_0764368160.0001,%S也就是0000000326是日志切換號,也就是上文archive log list中的當前日志序列,%R是場景號,%T是線程號,可以理解成是節點號,如果不是RAC環境,%T都是1,還可以在log_archive_format參數值中加上%D,%D是16進制標識的DBID,如下演示:
SQL> alter system set log_archive_format='ARC%S_%R.%T_%D.log' scope=spfile;
系統已更改。
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
數據庫裝載完畢。
數據庫已經打開。
SQL> alter system switch logfile;
系統已更改。
查看歸檔日志的名字,5AA14A62就是16進制的DBID。
D:\arch>dir/b
ARC0000000326_0764368160.0001
ARC0000000327_0764368160.0001_5AA14A62.LOG
上述內容就是如何更改ORACLE歸檔路徑及歸檔模式,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。