1、Oracle日誌分類
分三大類: Alert log files--警報日誌,Trace files--跟蹤日誌(用戶和進程)和
redo log 重作日誌(記錄數據庫的更改)。
本文主要關注Oracle的重作日誌。
重作日誌分爲在線重作日誌和歸檔重作日誌。
online Redo log files--在線重作日誌,又稱聯機重作日誌,指Oracle以SQL腳本的形式
實時記錄數據庫的數據更新,換句話說,實時保存已執行的SQL腳本到在線日誌文件中(按特定的格式)。 Archive Redo log files--歸檔重作日誌,簡稱歸檔日誌,指當條件知足時,Oracle將在線重作日誌以文件形式保存到硬盤(持久化)。 重作日誌的簡單原理:在數據更新操做commit前,將更改的SQL腳本寫入重作日誌。主要用於數據庫的增量備份和增量恢復。 重作日誌直接對應於硬盤的重作日誌文件(有在線和歸檔二種),重作日誌文件以組(Group)的形式組織,一個重作日誌組包含一個或者多個日誌文件。 2、關於在線重作日誌(online redo log) 在線重作日誌的原理: 對於在線重作日誌,Oracle 11g默認對於每一個數據庫實例,創建3個在線日誌組,每組一個日誌文件,文件名稱爲REDO01.LOG,REDO02.LOG和REDO03.LOG。(用戶能夠經過視圖操做添加/修改/刪除日誌組和日誌文件來自定義在線重作日誌) 每組內的日誌文件的內容徹底相同,且保存在不一樣的位置,用於磁盤日誌鏡像,以作屢次備份提升安全性。默認狀況這3組一般只有一組處於活動狀態,不斷地同步寫入已操做的腳本,當日志文件寫滿時(達到指定的空間配額),若是當前數據庫處於歸檔模式,則將在線日誌歸檔到硬盤,成爲歸檔日誌;若當前數據庫處於非歸檔模式,則不進行歸檔操做,而當前在線日誌的內容會被下一次從新寫入覆蓋而沒法保存。所以,一般數據庫在運行時,是處於歸檔模式下的,以保存數據更新的日誌。 當前歸檔日誌組寫滿後,Oracle會切換到下一日誌組,繼續寫入,就這樣循環切換;當處於歸檔模式下,切換至原已寫滿的日誌組,若該日誌組歸檔完畢則覆蓋寫入,若沒有則只能使用日誌緩衝區,等待歸檔完畢以後才能覆蓋寫入。固然,處於非歸檔模式下是直接覆蓋寫入的。(關於數據庫歸檔模式的設置,我會在另外的博文中講到)。 Oracle提供了2個視圖用於維護在線重作日誌:V$LOG 和 V$LOGFILE,咱們能夠經過這兩個視圖查看和修改在線日誌。 關於V$LOG視圖的詳細屬性字段可Oracle 11g的官方文檔:http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2029.htm 關於V$LOGFILE視圖的詳細屬性字段可Oracle 11g的官方文檔: http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2031.htm 官方文檔仍是最給力的呀,不要忽視!! 經過v$logfile視圖查詢在線日誌文件信息: SQL> SELECT * FROM v$logfile ORDER BY group#; GROUP# TATUS TYPE MEMBER IS_RECOVERY_DEST_FILE 1 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG NO 2 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG NO 3 ONLINE E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG NO 經過v$log視圖查詢在線日誌的整體信息: SQL> SELECT * FROM v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME 1 1 49 52428800 1 NO CURRENT 1466615 07-1月 -11 2 1 47 52428800 1 YES INACTIVE 1434125 06-1月 -11 3 1 48 52428800 1 YES INACTIVE 1460403 07-1月 -11 固然,還能夠經過ALTER DATABASE ADD 、delete等命令增長/修改/刪除在線日誌或日誌組,具體操做可查看http://blog.csdn.net/robinson_0612/archive/2010/07/20/5749556.aspx 3、關於歸檔重作日誌(Archive redo log) 其實,所謂的歸檔,就是指將在線日誌進行歸檔、持久化到成固定的文件到硬盤,便於之後的恢復和查詢。 固然,前提條件是數據庫要處於歸檔模式。 Oracle 11g 默認是爲歸檔日誌設定2個歸檔位置,這2個歸檔位置的的歸檔日誌的內容徹底一致,但文件名不一樣。