查看oracle數據庫是否歸檔和修改歸檔模式(轉)

在ORACLE 數據庫的開發環境和測試環境中,數據庫的日誌模式和自動歸檔模式通常都是不設置的,這樣有利於系統應用的調整,也免的生成大量的歸檔日誌文件將磁盤空間大量的消耗。但在系統上線,成爲生產環境時,將其設置爲日誌模式並自動歸檔就至關重要了,由於,這是保證系統的安全性,有效預防災難的重要措施。這樣,經過定時備份數據庫和在兩次備份間隔之間的日誌文件,能夠有效的恢復這段時間的任什麼時候間點的數據,能夠在不少時候挽回或最大可能的減小數據丟失。

1、 要使OARCLE 數據庫進行日誌的自動歸檔,須要作兩方面的事情;
1.是數據庫日誌模式的設置(可爲Archive Mode 和No Archive Mode);2.就是自動歸檔模式設置(Automatic archival,可爲Enabled 和Disabled)。

2、 如何查看數據庫的現行日誌和自動歸檔模式的設置
可用archive log list 命令來查看。
運行在日誌自動歸檔模式下的數據庫系統查看結果以下(通常是生產環境):
SQL> 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
沒有啓動數據庫日誌模式和自動歸檔的數據庫系統查看結果以下(通常是測試環境):
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/8.1.7/dbs/arch
Oldest online log sequence 194
Current log sequence 196

三. 數據庫日誌模式的設置
在建立數據庫時,能夠在CREATE DATABASE 語句中指定數據庫的日誌模式。假如沒有指明,則缺省爲NOARCHIVELOG 模式。因爲若是在建立數據庫時指明是Archive Mode的話,會增長約20%的建立時間,而在之後啓動INSTANCE 時再設置的話,通常只用去幾秒的時間,因此通常在建立數據庫時是不設置爲ARCHIVE MODE 的。
將數據庫的日誌模式設置切換(Archive Mode 和No Archive Mode 之間的切換)的步驟和操做以下:
1. 關閉運行的數據庫實例
SQL> shutdown
在進行日誌模式切換以前,必須將運行的數據庫正常關閉。
2. 備份數據庫
該備份跟之後產生的日誌一塊兒用於未來的災難恢復(很重要,如要改成歸檔日誌模式,沒有這個數據庫備份,僅有日誌文件是沒法從該時間點恢復的)。
3. 啓動數據庫實例到mount 狀態,但不要打開。
SQL> startup mount
4. 切換數據庫日誌模式。
SQL> alter database archivelog;(設置數據庫爲歸檔日誌模式)或
SQL> alter database noarchivelog;(設置數據庫爲非歸檔日誌模式)
5. 打開數據庫
SQL> alter database open;
6. 確認數據庫如今處於歸檔日誌模式。
SQL> 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 歸檔
SQL> 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
這幾個參數設置只有在數據庫實例啓動前設置才能生效,若是在數據庫運行中進行設置,要使其生效,必須重起數據庫。
若是數據庫正在運行中,不能即刻重起,要設置其爲自動歸檔模式,則作以下操做:
SQL> ALTER SYSTEM ARCHIVE LOG START;
如要設置其爲非自動歸檔模式(取消自動歸檔),則:
SQL> 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 沒有可用的在線日誌可寫,數據庫將會掛在這兒,只有進行手工歸檔後,有可用的在線日誌後才能繼續。在生產環境中應該避免這種狀況。
手工歸檔操做以下:
SQL> 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 數據庫的缺省設置,開發環境也大部分如此。即沒有進行歸檔。數據庫


如何手工刪除歸檔日誌文件?(若是採用RMNA備份後則不用手工刪除)
1、先手工刪除歸檔日誌文件 
2、用RMAN刪除數據庫記錄的歸檔列表信息 
1) 進入本數據庫的rman,在命令行模式輸入"rman target /",進入rman,查看提示,確認鏈接的是不是本庫? 
2) 查看歸檔日誌文件的狀態: 
RMAN> list archivelog all; 
3) 刪除操做系統中的日誌文件(到操做系統級進行手工刪除,也能夠是第一步; 
4) 將歸檔日誌信息進行更新; 
RMAN> crosscheck archivelog all; 
RMAN> delete expired archivelog all; (確認時鍵入"yes") 
RMAN> exit安全

相關文章
相關標籤/搜索