Oracle日志分类
生活随笔
收集整理的這篇文章主要介紹了
Oracle日志分类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Oracle日志分類
分三大類: Alert log files--警報日志,Trace files--跟蹤日志(用戶和進程)和
?????????? redo log 重做日志(記錄數據庫的更改)。
本文主要關注Oracle的重做日志。
重做日志分為在線重做日志和歸檔重做日志。
?? online Redo log files--在線重做日志,又稱聯機重做日志,指Oracle以SQL腳本的形式 實時記錄數據庫的數據更新,換句話說,實時保存已執行的SQL腳本到在線日志文件中(按特定的格式)。
?? Archive Redo log files--歸檔重做日志,簡稱歸檔日志,指當條件滿足時,Oracle將在線重做日志以文件形式保存到硬盤(持久化)。
?? 重做日志的簡單原理:在數據更新操作commit前,將更改的SQL腳本寫入重做日志。主要用于數據庫的增量備份和增量恢復。?
??? 重做日志直接對應于硬盤的重做日志文件(有在線和歸檔二種),重做日志文件以組(Group)的形式組織,一個重做日志組包含一個或者多個日志文件。
二、關于在線重做日志(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
三、關于歸檔重做日志(Archive redo log)
??? 其實,所謂的歸檔,就是指將在線日志進行歸檔、持久化到成固定的文件到硬盤,便于以后的恢復和查詢。
??? 當然,前提條件是數據庫要處于歸檔模式。
???
Oracle 11g 默認是為歸檔日志設定2個歸檔位置,這2個歸檔位置的的歸檔日志的內容完全一致,但文件名不同。
分三大類: Alert log files--警報日志,Trace files--跟蹤日志(用戶和進程)和
?????????? redo log 重做日志(記錄數據庫的更改)。
本文主要關注Oracle的重做日志。
重做日志分為在線重做日志和歸檔重做日志。
?? online Redo log files--在線重做日志,又稱聯機重做日志,指Oracle以SQL腳本的形式 實時記錄數據庫的數據更新,換句話說,實時保存已執行的SQL腳本到在線日志文件中(按特定的格式)。
?? Archive Redo log files--歸檔重做日志,簡稱歸檔日志,指當條件滿足時,Oracle將在線重做日志以文件形式保存到硬盤(持久化)。
?? 重做日志的簡單原理:在數據更新操作commit前,將更改的SQL腳本寫入重做日志。主要用于數據庫的增量備份和增量恢復。?
??? 重做日志直接對應于硬盤的重做日志文件(有在線和歸檔二種),重做日志文件以組(Group)的形式組織,一個重做日志組包含一個或者多個日志文件。
二、關于在線重做日志(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
三、關于歸檔重做日志(Archive redo log)
??? 其實,所謂的歸檔,就是指將在線日志進行歸檔、持久化到成固定的文件到硬盤,便于以后的恢復和查詢。
??? 當然,前提條件是數據庫要處于歸檔模式。
???
Oracle 11g 默認是為歸檔日志設定2個歸檔位置,這2個歸檔位置的的歸檔日志的內容完全一致,但文件名不同。
總結
以上是生活随笔為你收集整理的Oracle日志分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长安新能源档杆为什么老是震动呢?
- 下一篇: 车辆违规停放是一个常见问题,我希望能够通