Oracle Log 的格式资料整理

80酷酷网    80kuku.com

  

1, 第一个块(offset=0x0)

0x00 - 0x03: 未知

0x04 - 0x07: 日志文件的块大小

0x08 - 0x0b: 日志文件的块数

0x0c - 0x0e: 平台标识串

2, 第二个块(offset = block_size)

0x00 - 0x03: 日志序列号

0x04 - 0x07: 日志文件块号

0x08 - 0x0b: 未知

0x0b - 0x0f: 未知

0x10 - 0x13: DBMS软件版本号

0x14 - 0x17: 日志文件版本号

0x18 - 0x1b: DBID

0x1c - 0x23: DB Name

0x24 - 0x27: Control Sequence

0x28 - 0x2b: 日志文件的块数

0x2c - 0x2f: 日志文件的块大小

0x30 - 0x31: 日志组序号

0x32 - 0x33: 文件类型

0x5c - 0x9a: 日志文件说明

0x9b - 0x9b: 未知

0x9c - 0x9e: 下一个可用块(Next Avaiable Block)

0xa0 - 0xa3: Reset Logs Count

0xa4 - 0xa7: Reset SCN Base

0xa8 - 0xa9: Reset SCN Wrap

0xa4 - 0xb9: Low SCN Number

0xba - 0xbf: Low SCN Time

0xc0 - 0xc5: Next SCN Number

0xc6 - 0xcb: Next SCN Time

3, 第3-n个BLOCK

0x00 - 0x03: 日志序列号

0x04 - 0x07: 日志文件块号

0x08 - 0x0b: LOG时间

0x0c - 0x0d: 第一条记录的偏移, 0表示没有记录

0x0e - 0x0f: 未知(应当是CHKVAL之类的)

<<日志记录>>

{

0x00 - 0x03: 日志记录长度, 加上第一条记录的偏移为第二条记录的偏移

0x04 - 0x04: VALID标志

0x05 - 0x05: SubSCN (Oracle 9i, 8i保留)

0x06 - 0x07: SCN Wrap

0x08 - 0x0b: SCN Base

<>

{

0x0c - 0x0c: Operation Layer

0x0d - 0x0d: Operation Code

0x0e - 0x0f: Change # CLS

0x10 - 0x11: Change # AFN

0x12 - 0x13: Change # TYPE

0x14 - 0x17: Change # DBA

0x18 - 0x1d: Change # SCN

0x1e - ....: Redo Data

}

}

4, Operation Layer & Operation Code

Layer = 5 (Transaction Undo)

Op Code = 3 (Rollout a transaction begin)

= 4 (Commit transaction/Transaction table update - no undo record)

= 7 (Begin transaction/Transaction table update)

= 8 (Mark transaction as dead)

Layer = 11 (Row Access)

Op Code = 1 Interpret Undo Record

= 2 Insert Row Piece

= 3 Drop Row Piece

= 4 Lock Row Piece

= 5 Update Row Piece

= 6 Overwrite Row Piece

= 7 Manipulate First Column

= 8 Change forward address

= 9 Change Cluster key index

= 10 Set key links

= 11 Quick Multi-Insert (Insert ... select ...)

= 12 Quick Multi-Delete

= 13 Toggle block header flags



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: