OARCLE資料庫歸檔模式的設定
在oracle資料庫的開發環境和測試環境中,資料庫的日誌模式和自動歸檔模式一般都是不設定的,這樣有利於系統應用的調整,也免的生成大量的歸檔日誌檔案將磁碟空間大量的消耗。但在系統上線,成為生產環境時,將其設定為日誌模式並自動歸檔就相當重要了,因為,這是保證系統的安全性,有效預防災難的重要措施。這樣,透過定時備份資料庫和在兩次備份間隔之間的日誌檔案,可以有效的恢復這段時間的任何時間點的資料,可以在很多時候挽回或最大可能的減少資料丟失。雖然ORACLE資料庫的日誌模式和自動歸檔設定並不複雜,但其中的一些概念和操作過程還是容易混淆的,現在根據本人的經驗,分析介紹如下,所用環境為UNIX(HPUX,SOLARIES,AIX,TRU64UNIX)和ORACLE8.
一 要使OARCLE資料庫進行日誌的自動歸檔,需要做兩方面的事情,一是資料庫日誌模式的設定(database log mode,可為Archive Mode和No Archive Mode),另外就是自動歸檔模式設定(Automatic archival,可為Enabled和Disabled)。
二 如何檢視資料庫的現行日誌和自動歸檔模式的設定:
可用archive log list命令來檢視。
例如:
執行在日誌自動歸檔模式下的資料庫系統檢視結果如下(一般是生產環境)
SVRMGR> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
沒有啟動資料庫日誌模式和自動歸檔的資料庫系統檢視結果如下(一般是測試環境)
SVRMGR> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/8.0.5/dbs/arch
Oldest online log sequence 194
Current log sequence 196
三 資料庫日誌模式的設定
在建立資料庫時,可以在CREATE DATABASE 語句中指定資料庫的日誌模式。假如沒有指明,則預設為NOARCHIVELOG模式。由於如果在建立資料庫時指明是Archive Mode的話,會增加約20%的建立時間,而在以後啟動INSTANCE時再設定的話,一般只用去幾秒的時間,所以一般在建立資料庫時是不設定為ARCHIVE MODE的。
如要確定一系統資料庫的日誌模式設定,除了(二)中的方法外也可以執行如下操作檢視:
SVRMGR> Select * from V$DATABASE
NAME CREATED LOG_MODE CHECKPOINT ARCHIVE_CH
---- ----------------- ------------ ---------- ----------
ORCL 05/21/97 17:55:06 NOARCHIVELOG 172185 170808
將資料庫的日誌模式設定切換(Archive Mode 和No Archive Mode之間的切換)的步驟和操作如下:
1. 關閉執行的資料庫例項
SVRMGRL> shutdown
在進行日誌模式切換之前,必須將執行的資料庫正常關閉。
2. 備份資料庫
該備份跟以後產生的日誌一起用於將來的災難恢復(很重要,如要改為歸檔日誌模式,沒有這個資料庫備份,僅有日誌檔案是無法從該時間點恢復的)。
3. 啟動資料庫例項到mount狀態,但不要開啟。
SVRMGRL> startup mount
注意:如果是使用OPS的話,請只開啟一個資料庫例項進行模式切換操作。
4. 切換資料庫日誌模式。
SVRMGRL> alter database archivelog;(設定資料庫為歸檔日誌模式)
或
SVRMGRL> alter database noarchivelog;(設定資料庫為歸檔日誌模式)
5. 開啟資料庫
SVRMGRL> alter database open;
6. 確認資料庫現在處於歸檔日誌模式。
SVRMGRL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7. 將這個時間點的redo logs歸檔
SVRMGRL> archive log all;
8. 確認新產生的日誌檔案已在相應的歸檔目錄下面。
四 自動歸檔模式設定(Automatic archival,可為Enabled和Disabled),在該模式下,資料庫啟動一個arch程式,專門負責將redo logs寫到系統歸檔裝置的相應目錄下。
在資料庫的引數檔案中設定引數(一般是在$ORACLE_HOME/dbs/init*.ora檔案中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:
如要求自動歸檔的話,則設為TRUE,如要求為非自動歸檔的話,則設為FALSE
LOG_ARCHIVE_DEST:
該引數設定了archive logs 歸檔存放的路徑.
LOG_ARCHIVE_FORMAT:
該引數設定了archive logs的命名格式. 例如,如將格式設為: arch%s.arc
log 檔案將為: arch1.arc, arch2.arc, arch3.arc
這幾個引數設定只有在資料庫例項啟動前設定才能生效,如果在資料庫執行中進行設定,要使其生效,必須重起資料庫。
如果資料庫正在執行中,不能即刻重起,要設定其為自動歸檔模式,則做如下操作:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
如要設定其為非自動歸檔模式(取消自動歸檔),則:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG STOP;
但如果資料庫重起後,給語句修改的結果就失效了,自動歸檔的設定還是按照系統引數檔案中的LOG_ARCHIVE_START的值來設定。
五 幾種設定情況:
(1) Database log mode Archive Mode
Automatic archival Enabled
這是在大部分生產環境中的ORACLE資料庫日誌及歸檔模式設定,這種情況下,做好資料庫的定期備份(有熱備和冷備)和歸檔日誌備份,可有效的將資料庫恢復到有歸檔日誌的全部時間點。
(2) Database log mode Archive Mode
Automatic archival Disabled
這種情況下,資料庫不能自動歸檔,需要進行手工歸檔。如果所有線上日誌都寫滿了,又沒有的及時進行手工歸檔的話,由於LGWR沒有可用的線上日誌可寫,資料庫將會掛在這兒,只有進行手工歸檔後,有可用的線上日誌後才能繼續。在生產環境中應該避免這種情況。
手工歸檔操作如下:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG ALL;
資料庫將會把線上日誌進行歸檔處理
(3) Database log mode NO Archive Mode
Automatic archival Enabled
有些相對欠缺經驗的管理員在進行設定時,只在資料庫引數檔案中設定了LOG_ARCHIVE_START=TRUE,然後在資料庫起來後檢視到ARCH歸檔程式已經起來了,可是儘管ORACLE已經作了幾次日誌切換,但還是沒有歸檔日誌,這時的設定就是這種情況,如果資料庫不是處在ARVHIVELOG模式,redolog 還是不會被歸檔。
(4) Database log mode NO Archive Mode
Automatic archival Disabled
這種設定是剛安裝的oracle資料庫的預設設定,開發環境也大部分如此。即沒有進行歸檔。 [@more@]
一 要使OARCLE資料庫進行日誌的自動歸檔,需要做兩方面的事情,一是資料庫日誌模式的設定(database log mode,可為Archive Mode和No Archive Mode),另外就是自動歸檔模式設定(Automatic archival,可為Enabled和Disabled)。
二 如何檢視資料庫的現行日誌和自動歸檔模式的設定:
可用archive log list命令來檢視。
例如:
執行在日誌自動歸檔模式下的資料庫系統檢視結果如下(一般是生產環境)
SVRMGR> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
沒有啟動資料庫日誌模式和自動歸檔的資料庫系統檢視結果如下(一般是測試環境)
SVRMGR> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/8.0.5/dbs/arch
Oldest online log sequence 194
Current log sequence 196
三 資料庫日誌模式的設定
在建立資料庫時,可以在CREATE DATABASE 語句中指定資料庫的日誌模式。假如沒有指明,則預設為NOARCHIVELOG模式。由於如果在建立資料庫時指明是Archive Mode的話,會增加約20%的建立時間,而在以後啟動INSTANCE時再設定的話,一般只用去幾秒的時間,所以一般在建立資料庫時是不設定為ARCHIVE MODE的。
如要確定一系統資料庫的日誌模式設定,除了(二)中的方法外也可以執行如下操作檢視:
SVRMGR> Select * from V$DATABASE
NAME CREATED LOG_MODE CHECKPOINT ARCHIVE_CH
---- ----------------- ------------ ---------- ----------
ORCL 05/21/97 17:55:06 NOARCHIVELOG 172185 170808
將資料庫的日誌模式設定切換(Archive Mode 和No Archive Mode之間的切換)的步驟和操作如下:
1. 關閉執行的資料庫例項
SVRMGRL> shutdown
在進行日誌模式切換之前,必須將執行的資料庫正常關閉。
2. 備份資料庫
該備份跟以後產生的日誌一起用於將來的災難恢復(很重要,如要改為歸檔日誌模式,沒有這個資料庫備份,僅有日誌檔案是無法從該時間點恢復的)。
3. 啟動資料庫例項到mount狀態,但不要開啟。
SVRMGRL> startup mount
注意:如果是使用OPS的話,請只開啟一個資料庫例項進行模式切換操作。
4. 切換資料庫日誌模式。
SVRMGRL> alter database archivelog;(設定資料庫為歸檔日誌模式)
或
SVRMGRL> alter database noarchivelog;(設定資料庫為歸檔日誌模式)
5. 開啟資料庫
SVRMGRL> alter database open;
6. 確認資料庫現在處於歸檔日誌模式。
SVRMGRL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7. 將這個時間點的redo logs歸檔
SVRMGRL> archive log all;
8. 確認新產生的日誌檔案已在相應的歸檔目錄下面。
四 自動歸檔模式設定(Automatic archival,可為Enabled和Disabled),在該模式下,資料庫啟動一個arch程式,專門負責將redo logs寫到系統歸檔裝置的相應目錄下。
在資料庫的引數檔案中設定引數(一般是在$ORACLE_HOME/dbs/init*.ora檔案中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:
如要求自動歸檔的話,則設為TRUE,如要求為非自動歸檔的話,則設為FALSE
LOG_ARCHIVE_DEST:
該引數設定了archive logs 歸檔存放的路徑.
LOG_ARCHIVE_FORMAT:
該引數設定了archive logs的命名格式. 例如,如將格式設為: arch%s.arc
log 檔案將為: arch1.arc, arch2.arc, arch3.arc
這幾個引數設定只有在資料庫例項啟動前設定才能生效,如果在資料庫執行中進行設定,要使其生效,必須重起資料庫。
如果資料庫正在執行中,不能即刻重起,要設定其為自動歸檔模式,則做如下操作:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
如要設定其為非自動歸檔模式(取消自動歸檔),則:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG STOP;
但如果資料庫重起後,給語句修改的結果就失效了,自動歸檔的設定還是按照系統引數檔案中的LOG_ARCHIVE_START的值來設定。
五 幾種設定情況:
(1) Database log mode Archive Mode
Automatic archival Enabled
這是在大部分生產環境中的ORACLE資料庫日誌及歸檔模式設定,這種情況下,做好資料庫的定期備份(有熱備和冷備)和歸檔日誌備份,可有效的將資料庫恢復到有歸檔日誌的全部時間點。
(2) Database log mode Archive Mode
Automatic archival Disabled
這種情況下,資料庫不能自動歸檔,需要進行手工歸檔。如果所有線上日誌都寫滿了,又沒有的及時進行手工歸檔的話,由於LGWR沒有可用的線上日誌可寫,資料庫將會掛在這兒,只有進行手工歸檔後,有可用的線上日誌後才能繼續。在生產環境中應該避免這種情況。
手工歸檔操作如下:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG ALL;
資料庫將會把線上日誌進行歸檔處理
(3) Database log mode NO Archive Mode
Automatic archival Enabled
有些相對欠缺經驗的管理員在進行設定時,只在資料庫引數檔案中設定了LOG_ARCHIVE_START=TRUE,然後在資料庫起來後檢視到ARCH歸檔程式已經起來了,可是儘管ORACLE已經作了幾次日誌切換,但還是沒有歸檔日誌,這時的設定就是這種情況,如果資料庫不是處在ARVHIVELOG模式,redolog 還是不會被歸檔。
(4) Database log mode NO Archive Mode
Automatic archival Disabled
這種設定是剛安裝的oracle資料庫的預設設定,開發環境也大部分如此。即沒有進行歸檔。 [@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-912421/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何設定資料庫為歸檔模式資料庫模式
- 11g資料庫設定歸檔模式資料庫模式
- Oracle資料庫設定為歸檔模式的操作方法Oracle資料庫模式
- 歸檔模式的設定模式
- 修改資料庫的歸檔模式資料庫模式
- 設定歸檔模式模式
- Oracle歸檔模式與非歸檔模式設定Oracle模式
- oracle資料庫rman歸檔設定和管理Oracle資料庫
- 資料庫啟動歸檔模式資料庫模式
- 開啟資料庫歸檔模式資料庫模式
- 更改資料庫為歸檔模式資料庫模式
- 修改叢集資料庫的歸檔模式資料庫模式
- 非歸檔模式恢復資料庫模式資料庫
- 將資料庫修改為歸檔模式資料庫模式
- oracle 修改資料庫為歸檔模式Oracle資料庫模式
- Oracle資料庫切換歸檔模式Oracle資料庫模式
- 檢視oracle資料庫是否歸檔和修改歸檔模式Oracle資料庫模式
- Oracle資料庫歸檔模式的切換ELOracle資料庫模式
- LightBD/PostgreSQL資料庫設定歸檔保留時間SQL資料庫
- 檢視oracle資料庫是否歸檔和修改歸檔模式(轉)Oracle資料庫模式
- DB2 設定歸檔模式DB2模式
- 檢視oracle資料庫是否為歸檔模式Oracle資料庫模式
- 修改資料庫歸檔模式(ARCHIVELOG/NOARCHIVELOG)資料庫模式Hive
- 備份前先設定成歸檔模式模式
- sqlplus下設定歸檔模式SQL模式
- 歸檔模式下資料庫全恢復的過程模式資料庫
- 修改歸檔模式的通用步驟(非RAC 資料庫)模式資料庫
- Oracle資料庫歸檔模式的開啟和關閉Oracle資料庫模式
- 【轉】雙節點RAC下將資料庫從非歸檔模式更改到歸檔模式資料庫模式
- ORACLE 12C 開啟資料庫歸檔模式Oracle資料庫模式
- 非歸檔模式下恢復資料庫兩例模式資料庫
- 將資料庫轉換為歸檔日誌模式資料庫模式
- 將RAC資料庫更改為不歸檔日誌的模式資料庫模式
- Oracle歸檔模式、引數意義、設定Oracle模式
- ORACLE資料庫歸檔改為非歸檔Oracle資料庫
- Oracle資料庫的閃回恢復區及多歸檔路徑的設定Oracle資料庫
- 對歸檔模式下CLEAR 未歸檔日誌後恢復資料庫的一點看法模式資料庫
- Oracle 11g資料庫改為非歸檔模式Oracle資料庫模式