[20170310]關於線上日誌與歸檔3.txt
[20170310]關於線上日誌與歸檔3.txt
--//當日志寫滿了,或者執行手工了切換,再或者rman備份時有時也會觸發日誌切換:
alter system switch logfile ;
alter system archive log current ;
--//前面已經探究日誌檔案的OS塊(第0塊)以及日誌檔案頭塊(第1塊).剩下日誌記錄了
--//本文簡單探究日誌歸檔是如何儲存的.探查日誌檔案的記錄.
1.環境:
--//啟動到mount狀態.
SYS@book> @ &r/ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SYS@book> @ &r/logfile
GROUP# STATUS TYPE MEMBER IS_ GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
------ ---------- ---------- ------------------------------- --- ------ ------- --------- ----------- --------- ------- --- ---------- ------------- ------------------- ------------ -------------------
1 ONLINE /mnt/ramdisk/book/redo01.log NO 1 1 695 52428800 512 1 YES INACTIVE 13276910949 2017-02-28 14:40:12 13276931102 2017-03-09 10:01:48
2 ONLINE /mnt/ramdisk/book/redo02.log NO 2 1 696 52428800 512 1 YES INACTIVE 13276931102 2017-03-09 10:01:48 13276931986 2017-03-09 10:02:36
3 ONLINE /mnt/ramdisk/book/redo03.log NO 3 1 697 52428800 512 1 NO CURRENT 13276931986 2017-03-09 10:02:36 2.814750E+14
4 STANDBY /mnt/ramdisk/book/redostb01.log NO
5 STANDBY /mnt/ramdisk/book/redostb02.log NO
6 STANDBY /mnt/ramdisk/book/redostb03.log NO
7 STANDBY /mnt/ramdisk/book/redostb04.log NO
7 rows selected.
--//僅僅拿seq#=696 來研究.
$ ls -l /mnt/ramdisk/book/redo02.log /u01/app/oracle/archivelog/book/1_696_896605872.dbf
-rw-r----- 1 oracle oinstall 52429312 2017-03-09 10:02:36 /mnt/ramdisk/book/redo02.log
-rw-r----- 1 oracle oinstall 1626112 2017-03-09 10:02:38 /u01/app/oracle/archivelog/book/1_696_896605872.dbf
--//前面我們探查了日誌檔案的OS塊.下面將繼續探究日誌的記錄從第2塊開始.
2.先取第2塊看看:
$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512 count=1 skip=2 2>/dev/null | md5sum
d8c6fc00e84b8eff93ecad9ff87627c7 -
$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=1 skip=2 2>/dev/null | md5sum
d8c6fc00e84b8eff93ecad9ff87627c7 -
--//md5一樣,哈哈下面就基本就是原始的複製了.也就是不做任何修改.
--//1626112/512=3176,跳過前面2塊,就是3174塊.
$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512 skip=2 2>/dev/null | md5sum
62f6d618e02ed3e7ba50ed68138fe440 -
$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512 count=3174 skip=2 2>/dev/null | md5sum
62f6d618e02ed3e7ba50ed68138fe440 -
$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=3174 skip=2 2>/dev/null| md5sum
62f6d618e02ed3e7ba50ed68138fe440 -
--//可以看出第2塊的redo記錄開始就是簡單的複製.
3.這樣就可以產生一個恢復思路,假設redo損壞,我該日誌已經歸檔日誌檔案,可以利用這個檔案重新構造線上日誌:
--//A.第0塊修改就是記錄塊數量. 偏移0x18~0x1B處.
實際上只要大小一樣,檔案頭可以使用別的好的檔案標頭檔案替換.
$ dd if=/mnt/ramdisk/book/redo01.log bs=512 count=1 2>/dev/null| md5sum
1e958fb94196354fc1d7a650b43d728b -
$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=1 2>/dev/null| md5sum
1e958fb94196354fc1d7a650b43d728b -
$ dd if=/mnt/ramdisk/book/redo03.log bs=512 count=1 2>/dev/null| md5sum
1e958fb94196354fc1d7a650b43d728b -
$ dd if=/mnt/ramdisk/book/redostb01.log bs=512 count=1 2>/dev/null| md5sum
1e958fb94196354fc1d7a650b43d728b -
--//你可以發現os塊,md5都是一樣(因為日誌檔案大小一樣)
B.第1塊我感覺不改也可以透過.
C.日誌記錄就是簡單複製,根本不需要改動.剩下就是空白塊如何填充.
$ ls -l /mnt/ramdisk/book/redo02.log /u01/app/oracle/archivelog/book/1_696_896605872.dbf
-rw-r----- 1 oracle oinstall 52429312 2017-03-09 10:02:36 /mnt/ramdisk/book/redo02.log
-rw-r----- 1 oracle oinstall 1626112 2017-03-09 10:02:38 /u01/app/oracle/archivelog/book/1_696_896605872.dbf
--//52429312 - 1626112=50803200,還有50803200/512=99225塊需要 補充.主要這個如何實現.
--//直接使用空白是否可行,留下下次測試....
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2135095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20170310]關於線上日誌與歸檔4.txt
- [20170309]關於線上日誌與歸檔1.txt
- [20170309]關於線上日誌與歸檔2.txt
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- [20170310]dg環境下線上日誌損壞14.txt
- 關於歸檔日誌的切換測試
- 非歸檔模式下線上日誌檔案破壞後例項恢復案例模式
- 節點2線上日誌生成歸檔日誌在節點1上的初步分析
- 關於歸檔日誌的幾個引數選項
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- 為什麼我的歸檔檔案比我設定的線上日誌的大小要小?
- oracle 歸檔日誌開啟,關閉Oracle
- 關閉和開啟歸檔日誌
- Oracle 12C 新特性:關於歸檔日誌的備份Oracle
- 歸檔日誌大小 與使用rman 備份後的歸檔日誌產生的備份集大小的關係
- 歸檔日誌
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 日誌檔案和歸檔日誌檔案的關係以及如何切換日誌
- 前線上日誌檔案損壞與ora-600 [4000]處理
- ORACLE 歸檔日誌開啟關閉方法Oracle
- 線上日誌檔案損壞恢復方法
- 關於一個歸檔問題?
- oracle 關於-日誌檔案Oracle
- [20160330]關於連線順序3.txt
- 歸檔日誌多歸檔路徑 duplex
- oracle歸檔日誌Oracle
- Oracle 歸檔日誌Oracle
- 歸檔日誌挖掘
- PostgreSQL 歸檔日誌SQL
- Oracle 線上日誌管理Oracle
- 線上日誌損壞
- 因歸檔日誌無法歸檔造成的 oracle shutdown immediate無法關閉Oracle
- 控制檔案/歸檔日誌
- 歸檔oracle alert日誌Oracle
- 14. 日誌歸檔
- PostgreSQL歸檔日誌配置SQL
- rman清理歸檔日誌
- archive log 歸檔日誌Hive