更改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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15797451/viewspace-2119876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- oracle 11g開啟歸檔模式及修改歸檔目錄Oracle模式
- oracle歸檔Oracle
- 歸檔路徑更改後,如何對資料庫進行恢復(轉)資料庫
- Oracle 12c 關閉歸檔模式Oracle模式
- oracle歸檔日誌Oracle
- Oracle設定多個歸檔路徑生成多份歸檔日誌,Rman備份時也只備份其中的一份歸檔日誌Oracle
- 歸檔oracle alert日誌Oracle
- Oracle歸檔日誌清理Oracle
- Oracle:歸檔量統計Oracle
- Oracle資料庫歸檔模式的切換ELOracle資料庫模式
- 咦?Oracle歸檔檔案存哪了?Oracle
- Rman在run命令塊裡臨時設定歸檔目錄,歸檔日誌能否恢復主要看預設的歸檔路徑
- ORACLE NBU調取oracle rman指令碼備份歸檔不自動刪除歸檔Oracle指令碼
- Oracle 歸檔使用情況分析Oracle
- Oracle dg歸檔同步失敗Oracle
- 設定Oracle9i為自動歸檔模式Oracle模式
- rac歸檔模式/非歸檔模式下檔案建至本地儲存修復方法-ORA-01157模式
- Oracle資料庫歸檔模式的開啟和關閉Oracle資料庫模式
- iOS 複雜物件的歸檔與反歸檔iOS物件
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- oracle rman 刪除過期的歸檔Oracle
- oracle11G歸檔日誌管理Oracle
- Oracle實驗8--Merge與歸檔Oracle
- 更改資料檔案路徑的方法
- 如何輕鬆歸檔檔案?2種方法輕鬆建立歸檔檔案!
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- 刪除歸檔
- oracle dg 歸檔日誌恢復情況Oracle
- oracle 刪除過期的歸檔日誌Oracle
- 【SQL】Oracle 歸檔日誌暴增原因分析SQLOracle
- Oracle歸檔日誌暴增排查優化Oracle優化
- Oracle RAC 11gR2開啟歸檔Oracle
- SharePlex跳過歸檔或從指定歸檔位置開始
- 在Oracle中,如何定時刪除歸檔日誌檔案?Oracle
- 對歸檔模式下CLEAR 未歸檔日誌後恢復資料庫的一點看法模式資料庫
- OGG整合抽取模式丟失歸檔處理模式
- rac中文名檔名新增到本地路徑解決辦法(ORA-01157)-非歸檔