本篇文章為大家展示了如何更改ORACLE歸檔路徑及歸檔模式,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)公司于2013年成立,先為鐵西等服務(wù)建站,鐵西等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鐵西企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
在ORACLE10g和11g版本,ORACLE默認(rèn)的日志歸檔路徑為閃回恢復(fù)區(qū)($ORACLE_BASE/flash_recovery_area)。對(duì)于這個(gè)路徑,ORACLE有一個(gè)限制,就是默認(rèn)只有2G的空間,而且不只是歸檔日志的默認(rèn)路徑,也是備份文件和閃回日志的默認(rèn)地址,這樣的話歸檔日志鎖使用的空間就達(dá)不到2G,在沒(méi)有設(shè)置好這個(gè)路徑大小的情況下,很多系統(tǒng)都遇到過(guò)歸檔日志滿而無(wú)法歸檔導(dǎo)致數(shù)據(jù)庫(kù)夯住的問(wèn)題,可以使用下面的SQL語(yǔ)句去查看歸檔信息。
SQL> archive log list 數(shù)據(jù)庫(kù)日志模式 非存檔模式 自動(dòng)存檔 禁用 存檔終點(diǎn) USE_DB_RECOVERY_FILE_DEST 最早的聯(lián)機(jī)日志序列 321 當(dāng)前日志序列 326。
上面的存檔終點(diǎn)USE_DB_RECOVERY_FILE_DEST默認(rèn)就是閃回恢復(fù)區(qū)($ORACLE_BASE/flash_recovery_area),可以通過(guò)下面的SQL查看閃回恢復(fù)區(qū)的信息。
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
通過(guò)上面的SQL結(jié)果可以看到,閃回恢復(fù)區(qū)為D:\oracle\flash_recovery_area,大小為2G,也可以通過(guò)查詢v$recovery_file_dest視圖查看閃回恢復(fù)的限制信息。
SQL> select name,SPACE_LIMIT,SPACE_USED from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED ------------------------------ ----------- ---------- D:\oracle\flash_recovery_area 2147483648 21225472
默認(rèn)情況下,歸檔日志會(huì)存放到閃回恢復(fù)區(qū)(D:\oracle\flash_recovery_area)內(nèi),如果閃回恢復(fù)區(qū)已經(jīng)使用到2G,歸檔日志就有可能無(wú)法繼續(xù)歸檔,數(shù)據(jù)庫(kù)夯住,通常的解決方法是增大閃回恢復(fù)區(qū),可以用以下SQL實(shí)現(xiàn)。
SQL> alter system set db_recovery_file_dest_size=3G; 系統(tǒng)已更改。
即使用這種方法解決的當(dāng)前燃眉之急,雖然閃回恢復(fù)區(qū)ORACLE會(huì)自動(dòng)管理,如果閃回恢復(fù)區(qū)空間不足就會(huì)清理掉沒(méi)用的數(shù)據(jù),但是如果備份策略不是很完善,數(shù)據(jù)庫(kù)非常繁忙的情況下,還有可能遇到這種情況,通常需要修改歸檔日志的路徑,將歸檔日志放到其他不受限制的路徑下來(lái)解決這個(gè)問(wèn)題,可通過(guò)下面的SQL來(lái)修改歸檔日志的存放路徑。
SQL> alter system set log_archive_dest_1='location=D:\arch'; 系統(tǒng)已更改。
然后將數(shù)據(jù)庫(kù)啟動(dòng)到MOUNT狀態(tài),將數(shù)據(jù)庫(kù)修改為歸檔模式后建數(shù)據(jù)庫(kù)啟動(dòng)到OPEN狀態(tài)。
SQL> shutdown immediate 數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。 已經(jīng)卸載數(shù)據(jù)庫(kù)。 ORACLE 例程已經(jīng)關(guān)閉。 SQL> startup mount ORACLE 例程已經(jīng)啟動(dòng)。 數(shù)據(jù)庫(kù)裝載完畢。 SQL> alter database archivelog; 數(shù)據(jù)庫(kù)已更改。 SQL> alter database open; 數(shù)據(jù)庫(kù)已更改。
再次查看數(shù)據(jù)庫(kù)的歸檔情況。
SQL> archive log list 數(shù)據(jù)庫(kù)日志模式 存檔模式 自動(dòng)存檔 啟用 存檔終點(diǎn) D:\arch 最早的聯(lián)機(jī)日志序列 321 下一個(gè)存檔日志序列 326 當(dāng)前日志序列 326
可以通過(guò)切換日志,查看歸檔路徑下是否有歸檔日志產(chǎn)生來(lái)驗(yàn)證歸檔路徑設(shè)置是否正確,可以通過(guò)下面的命令切換日志。
SQL> alter system switch logfile; 系統(tǒng)已更改。
查看歸檔路徑(D:\arch)下是否有歸檔路徑產(chǎn)生。
D:\arch>dir/b ARC0000000326_0764368160.0001
可以看到在D:\arch路徑下已經(jīng)產(chǎn)生了歸檔日志,歸檔日志的名字受log_archive_format參數(shù)限制,可以通過(guò)下面的命令查看。
SQL> show parameter log_archive_format NAME TYPE VALUE ---------------------- ------------ ------------ log_archive_format string ARC%S_%R.%T
上面產(chǎn)生的歸檔文件名字為ARC0000000326_0764368160.0001,%S也就是0000000326是日志切換號(hào),也就是上文archive log list中的當(dāng)前日志序列,%R是場(chǎng)景號(hào),%T是線程號(hào),可以理解成是節(jié)點(diǎn)號(hào),如果不是RAC環(huán)境,%T都是1,還可以在log_archive_format參數(shù)值中加上%D,%D是16進(jìn)制標(biāo)識(shí)的DBID,如下演示:
SQL> alter system set log_archive_format='ARC%S_%R.%T_%D.log' scope=spfile; 系統(tǒng)已更改。 SQL> shutdown immediate 數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。 已經(jīng)卸載數(shù)據(jù)庫(kù)。 ORACLE 例程已經(jīng)關(guān)閉。 SQL> startup ORACLE 例程已經(jīng)啟動(dòng)。 數(shù)據(jù)庫(kù)裝載完畢。 數(shù)據(jù)庫(kù)已經(jīng)打開(kāi)。 SQL> alter system switch logfile; 系統(tǒng)已更改。
查看歸檔日志的名字,5AA14A62就是16進(jìn)制的DBID。
D:\arch>dir/b ARC0000000326_0764368160.0001 ARC0000000327_0764368160.0001_5AA14A62.LOG
上述內(nèi)容就是如何更改ORACLE歸檔路徑及歸檔模式,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。