当前位置:网站首页>Learn the principle of database kernel from Oracle log parsing
Learn the principle of database kernel from Oracle log parsing
2022-07-06 22:18:00 【Woqu database private cloud】
Preface
No matter to what extent the United States and China are confronting each other at this stage , No matter how arrogant and unruly Larry . Why Ellison is not optimistic about China ,Oracle It is still a unique branch in the database . However , Stones from other hills, can learn , The overall level of several domestic databases in key technology research has also reached international advanced .
There are more and more Oracle The database begins to go offline , Migrate to open source or domestic data ,o2k Support real-time incremental will Oracle Database incremental changes are extracted , Help the localization database to take over seamlessly Oracle.
As the person in charge of the database kernel, the author participated in the implementation of o2k Parsing Oracle journal , And in 2022 year 2 month 15 Open it to the community for free , During this period, I experienced all kinds of confusion , Got the guidance of many leaders , Finally, I handed over a fairly good test paper .
As a DBA Part time developer , Throughout o2k During the implementation of , about Oracle I have learned a lot about database theory and engineering ability , Also further understand the principle of database .
With the help of Oracle Design concept and implementation of , We will also see if it can be of some help and reference to the new generation of database practitioners .
Domestic software is suppressed by the United States , As a basic software, database has won a rare period of vigorous development .
Only a short while ago , Database practitioners are just companies IT The team -> A small department in the O & M team , Now one can guide the development to use the database correctly , Data architects who choose databases to adapt to the business are in short supply .
If you can master the principle of database , Even those who can actively transform the database to adapt to relevant application scenarios have an annual salary of at least one million .
As one of the pearls in the computer crown , The database undertakes the responsibility of online and offline business , Connect the hardware kernel , See more and more talents join the database and database kernel team , I'm very glad !
In this series of articles, we will go from simple to profound Oracle Take the heavy blocking encountered in log parsing as an example , To introduce common in database , And key concepts , Understand the database design idea and the matters needing attention in the project implementation .
This paper focuses on the shallow , Let's briefly introduce the background and Oracle Basic knowledge of log parsing
Pre knowledge understanding
Database log
Similar to the bank account system , Zhang San deposited 100 Dollars will ' First ' Is recorded as ' Zhang San added 100' Daily account of , And then transfer Zhang San's account from 1000 The block is changed to 1100 block .
Database to ensure atomicity and persistence , It will be ' First ' stay redo One or more records in the log redo record, Then modify the actual row records in the database
Be careful , there “ Modify account / Modify row record ” It's all in “ Write a daily account / Write the log ” After that . in other words redo Precede “ Data writing ”, This is the famous database write-ahead logging (WAL) .
Oracle The database log is written in the physical log mode , Records changes in internal data blocks ;MySQL stay Server Layer of binlog It's a logical log , What is recorded is the change of logical line data . So for Oracle Log parsing of requires not only understanding the log itself filespace、redo record,change vector The change of , It also needs to be understood Oracle Format of internal data storage .
How to check Oracle What is recorded in the log
Oracle There are special commands in , Support the specified binary redo The log is parsed into a logical text file , Be similar to MySQL Provided mysqlbinlog Tools , It is convenient for users to view and diagnose database problems .
ALTER SYSTEM DUMP LOGFILE '/opt/oracle/oradata/master1/redo01.log';
Of course , The parsed text file is not so easy to understand , In the following, we will interpret the key information . in addition , This logical text file is not all binary redo The information in the log is parsed and output , for example supplement log such , There is no output
supplemental log
Oracle By default, only the changed information is recorded , Be similar to MySQL in binlog_row_image=minimal The situation of .
in other words , You executed update t1 set c2=3 where id=2, It only records c2=3 The post mirror data and c2=2 Modify the previous front image data .
For active and standby physical block synchronization , This information is enough , But for data warehouse or big data platform , I don't know what is being updated Which line (id=2) The data of , Is unable to keep up with Oracle Consistent data .
adopt alter database add supplemental log data (primary key) columns; It can make Oracle When recording the log, please put primary key The primary key is also recorded , It is convenient for the synchronization tool to map the change to a specific line , These additional logs are called supplemental log.
OGG,O2K And other synchronization tools will require the source side Oracle Turn on supplemental log.
Log organization
WAL A log is a logical log representation , One update The transaction for has been updated 5 Row data , There will be more than one redo record(begin,5 Front and rear images of row records ,commit), These logs are recorded in the log file as a block One block( The default is 512 byte ) Write to file
logically , Database logs are created one by one redo record Composed of ;
Physically , Each... In the database log file block There are Header and Tail, Logical redo record The corresponding relationship recorded in the physical file is as follows :
redo and undo
Log content
Said so many theories 、 Retreat thing , Let's have some dry stuff .
First , Let's see what we do update What log information will be generated by a row of data , In order to eliminate other interferences , We're doing it update Before and after switch logfile, Ensure that we inquire about redo log There are only update A change
stay Oracle The statement executed on is as follows
## Here, create a new table to test
create table test1 (id number primary key, name varchar2(15) not null, hiredate date default(sysdate) );
insert into test1 (id, name) values (1, 'o2k1');
insert into test1 (id, name, hiredate) values (2, 'o2k2', sysdate);
commit
## In order to eliminate other interferences , We're doing it update Before and after switch logfile, Ensure that we inquire about redo log There are only update A change
ALTER SYSTEM SWITCH LOGFILE;
update test1 set name='o2k3' where id=2;
commit;
ALTER SYSTEM SWITCH LOGFILE;
## Query which archive log should be obtained from update Changes
select * from v$archived_log;
## Reverse parse the binary log
ALTER SYSTEM DUMP LOGFILE '+SSDDG1/chenmm/archivelog/2022_05_12/thread_2_seq_114.1017.1104513037';
## Check to see which log is imported trace The file
select value from v$diag_info where name='Default Trace File'; # return ora_6130.trc
Here we get two files :
- The binary redo Log files "thread_2_seq_114.1017.1104513037"
- The text file parsed from the binary log ora_6130.trc
I have put the relevant contents in the appendix at the end of the article , You can check it by yourself .
redo Logical structure
Let's start with a text file ora_6130.trc Take a look at redo The logical form of a document . Reference resources redo Logical format ( See appendix ), You can see
- FILE HEADER: The log file has the header of the log file , Recorded Db Id,Db Name Database information for , The file size is also recorded 、 Document type and Blksiz=512( in other words ,redo The physical block size is 512 byte ), contrast redo Physical format ( See appendix )FILE HEADER It's the first one 512 Bytes of BLOCK in . The file number here corresponds to the log serial number Seq#
FILE HEADER:
File Number=3, Blksiz=512, File Type=2 LOG
- REDO HEADER: In addition, it is recorded here that this is RAC Which node of , It's the serial number redo journal ,scn The scope of the ,"Thread 0002, Seq# 0000000114, SCN 0x0000004f1aa1-0x0000004f1aa8". contrast redo Physical format REDO HEADER It's the second one 512 Bytes of BLOCK in
descrip:"Thread 0002, Seq# 0000000114, SCN 0x0000004f1aa1-0x0000004f1aa8"
thread: 2 nab: 0x4 seq: 0x00000072 hws: 0x2 eot: 0 dis: 0
- REDO Record:redo record yes redo The most important component of the logical log , Database updates are recorded one by one Redo Record in , What we do update and commit It was recorded as two Redo Record. A length of 0x0244, One length 0x00a4
REDO RECORD - Thread:2 RBA: 0x000072.00000002.0010 LEN: 0x0244 VLD: 0x05
...
REDO RECORD - Thread:2 RBA: 0x000072.00000003.0064 LEN: 0x00a4 VLD: 0x01
redo record
Further decomposition redo record, You can see redo record By another redo header And multiple change vector('CHANGE #?') form
- Redo Header: Recorded Redo The length of LEN: 0x0244,redo record The address of RBA: 0x000072.00000002.0010,SCN:0x0000.004f1aa1 Etc
REDO RECORD - Thread:2 RBA: 0x000072.00000002.0010 LEN: 0x0244 VLD: 0x05
SCN: 0x0000.004f1aa1 SUBSCN: 1 05/12/2022 17:10:35
(LWN RBA: 0x000072.00000002.0010 LEN: 0002 NST: 0001 SCN: 0x0000.004f1aa1)
- Change Vector: It is the atomic structure of data changes , Observe the first Redo Record, We can see CHANGE #1 The start of the transaction is recorded ;CHANGE #2 Recorded update Of undo Front mirror ;CHANGE #3 Recorded update Of redo Back image ;CHANGE #4 Recorded session Information ; And the second one. Redo Record Of CHANGE #1 Information about transaction commit is recorded
CHANGE #1 TYP:0 CLS:17 AFN:3 DBA:0x00c00080 OBJ:4294967295 SCN:0x0000.004f1121 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0013 sqn: 0x00000648 flg: 0x0012 siz: 200 fbi: 0
uba: 0x00c00e4c.0209.23 pxid: 0x0000.000.00000000
change vector
In further decomposition change vector, It also has Change Vector Of header And variable data , stay Lewis《oracle core》 Known as “ The single most important feature ”.header And the specific information of variable data will be introduced in detail in future articles .
Here are just a few key messages :
- opcode:OP:5.2 It records the start of the transaction ,OP:5.4 The end of the transaction is recorded ,OP:5.1 What is recorded is the front image ,OP:11.5 The record is update The back image of , Interested students can refer to lewis Records of the opcode Detailed list .
- xid: Transaction number ,Oracle Transaction management starts at undo paragraph , And focus on it . That's why you see things start 5.2、 End of transaction 5.4 and undo Record 5.1 All right. Layer 5 : Transaction Undo The reason for the operation of .xid To some extent, the recorded information is recorded in undo Which is occupied by slot. alibaba.com GalaxyEngine The use of lizard Transaction optimization and Oracle Our affairs are similar
CHANGE #1 TYP:0 CLS:17 AFN:3 DBA:0x00c00080 OBJ:4294967295 SCN:0x0000.004f1121 SEQ:1 OP:5.2 ENC:0 RBL:0
CHANGE #2 TYP:0 CLS:18 AFN:3 DBA:0x00c00e4c OBJ:4294967295 SCN:0x0000.004f1120 SEQ:1 OP:5.1 ENC:0 RBL:0
xid: 0x0001.013.00000648
CHANGE #3 TYP:2 CLS:1 AFN:4 DBA:0x010000ad OBJ:98733 SCN:0x0000.004f1a8c SEQ:1 OP:11.5 ENC:0 RBL:0
CHANGE #1 TYP:0 CLS:17 AFN:3 DBA:0x00c00080 OBJ:4294967295 SCN:0x0000.004f1aa1 SEQ:1 OP:5.4 ENC:0 RBL:0
undo and redo
Here I would like to talk about undo and redo, because MVCC Multi version design :
- Modification of all data , You need to record the value before the data is modified , That is to say undo It records the front image . For our update Is to record name='o2k2'
- meanwhile , To modify all the data, you must first Redo The way of recording to WAL In the log , Also appeared in redo It's recorded in undo Information , That is the first one. Redo Record Of CHANGE #2 Recorded update Of undo Front mirror .
- If the database is rolled forward for recovery ,undo Like table data, it also needs to be restored
in other words , Zhang Sancun 100 Yuan , What is recorded in the daily account is not " Zhang San +100", It is “ Front mirror : Zhang San 1000; Back image : Zhang San 1100”, Modify a row of data , Maybe it's just a few bytes , But the database to ensure data recovery 、 Read consistency writes so many logs , I have done so many things . And if you go deep into the database kernel , You will find that this is a talented design . Because of the length of the article , I won't go into details here .
Tables and rows
On closer inspection , You can see the data changed in the front image and the rear image , for example , The front image data is as follows :
ncol: 3 nnew: 1 size: 0
col 1: [ 4] 6f 32 6b 32
This means that this table has 3 Column , Modified a column , The size changes to 0, The change is col1, The corresponding four bytes are 6f 32 6b 32, That is to say o2k2 6f 32 6b 32 yes Oracle Data storage format , Follow redo Storage structure does not matter much .
Summary
You can see from the logic log above ,Oracle Want to update the table :
- First, build a in your program Redo Record
- Then build a few Change Vector, Including the start of the transaction 、 Modify the front image of data 、 Modify the post image of the transaction, and so on
- take Redo Record and Change Vector Serialize to Redo Buffer (Oracle Specialized LGWR To refresh Redo Buffer To the log file )
- In the end, it will be Change Vector Apply to data blocks , Let's say here , Is it a table or undo, There's no big difference
redo Physical structure
The above mainly introduces redo Logical structure of , yes Oracle Help us to analyze it , This should be enough for general troubleshooting , But if you want to do log parsing or want to further investigate , You may be concerned about how he landed at the binary level .
This chapter is only for 1% Readers of , If you're not interested in this , You can skip this chapter :)
Refer to appendix redo Physical format , Here is the general redo After the file is copied out, it can be used Hexdump Output in hexadecimal format Oracle redo journal
redo file & block header
So let's look at the first one block, yes file header Of block first line , yes block header, Every block The beginning of 16 This is what bytes record block Of header.
Compare the following common block, You can see 0x0022 yes logfile header, 0x0122 yes logfile block The second line starts with redo The file header file header, Here are some key information recorded :“00 02 00 00” Express 0x00 00 02 00 = 512 That is this. redo log One block How big is it ( stay oracle 11.2 in the future BLOCKSIZE It can be set to 512,1024 perhaps 4096), “03 00 00 00” Express 0x00 00 00 03 = 3 Means that there are 3 individual block.
00000000 00 22 00 00 00 00 c0 ff 00 00 00 00 00 00 00 00 |."....��........|
00000010 65 58 00 00 00 02 00 00 03 00 00 00 7d 7c 7b 7a |eX..........}|{z|
Be careful : Because of our Oracle Is installed in little endian The small end x86 Of linux On the server , therefore “00 02 00 00” Express 0x00 00 02 00 = 512 You need to turn it upside down , If your Oracle Run in the Big Endian Big end IBM AIX Last time ,“00 02 00 00” Express 0x00 02 00 00 = 131072 You don't have to turn it upside down
redo record & redo block
Now that you know one block The size is 0x00000200, The first real redo block Starting at the starting position of block Namely 00000000+00000200=00000200, The second one is 00000400, The third is 00000600
00000200 01 22 00 00 01 00 00 00 72 00 00 00 00 80 25 cd |."......r.....%�|
00000400 01 22 00 00 02 00 00 00 72 00 00 00 10 80 66 66 |."......r.....ff|
00000600 01 22 00 00 03 00 00 00 72 00 00 00 64 80 1b 9a |."......r...d...|
here “01 00 00 00”, “02 00 00 00” and “03 00 00 00” Namely block Serial number , This is the number of blocks ;"72 00 00 00"=0x00000072=114 Is the log serial number , The corresponding is redo In the log space Seq# Number ; and "00 80", "10 80", "64 80" Corresponding to this block First of all redo record relative block Offset of starting address .
00000400 Initial redo block Of redo record It's from “10 80”=0x8010-0x8000=0x10=16 From 00000410"44 02 00 00..." The beginning is redo record Bytes of information .
00000400 01 22 00 00 02 00 00 00 72 00 00 00 10 80 66 66 |."......r.....ff|
00000410 44 02 00 00 05 6e 00 00 a1 1a 4f 00 01 00 00 23 |D....n..�.O....#|
00000600 Initial redo block Of redo record It's from “64 80”=0x8064-0x8000=0x64=100 From 00000664"a4 00 00 00..." The beginning is redo record Bytes of information .
00000600 01 22 00 00 03 00 00 00 72 00 00 00 64 80 1b 9a |."......r...d...|
00000610 01 00 03 01 00 00 00 00 00 1a 4f 00 01 00 70 72 |..........O...pr|
00000620 6f 32 6b 33 05 14 00 00 00 00 00 00 00 00 00 00 |o2k3............|
00000630 00 00 00 00 00 00 00 00 00 06 00 00 12 00 04 00 |................|
00000640 00 00 02 00 04 00 04 00 00 00 00 00 03 00 4f f0 |..............O�|
00000650 2a 00 37 00 00 00 00 00 00 04 20 0b ff ff ff ff |*.7....... .����|
00000660 53 59 53 00 a4 00 00 00 01 06 00 00 a2 1a 4f 00 |SYS.�.......�.O.|
We can clearly see a redo record It can span two block Of . That is, the logical redo record May be contained in a physical redo block Medium , It is also possible to span multiple physical redo block.
log redo header
first redo block A special ,"00 80" The beginning of redo record by 0. Start this redo block Not in China redo record. It includes this redo file Instance information of , start-stop SCN Etc , Even part of the information is recorded in plain text “Thread 0002, Seq# 0000000114, SCN 0x0000004f1aa1-0x0000004f1aa8”
summary
in summary , This article briefly introduces Oracle redo The physical and logical format of .
One update When the statement is actually executed , stay Oracle The experience of writing undo、 Record WAL, The process of modifying a data block ; It introduces Oracle In binary redo In the log, the logical redo record Corresponding records to redo block Medium .
A picture at the end of the article , Briefly summarize their relationship :
| appendix
redo Logical format = redo Of trace file
DUMP OF REDO FROM FILE '+SSDDG1/chenmm/archivelog/2022_05_12/thread_2_seq_114.1017.1104513037'
Opcodes *.*
RBAs: 0x000000.00000000.0000 thru 0xffffffff.ffffffff.ffff
SCNs: scn: 0x0000.00000000 thru scn: 0xffff.ffffffff
Times: creation thru eternity
FILE HEADER:
Compatibility Vsn = 186647552=0xb200400
Db ID=2935349816=0xaef5e238, Db Name='CHENMM'
Activation ID=2935307061=0xaef53b35
Control Seq=18659=0x48e3, File size=102400=0x19000
File Number=3, Blksiz=512, File Type=2 LOG
descrip:"Thread 0002, Seq# 0000000114, SCN 0x0000004f1aa1-0x0000004f1aa8"
thread: 2 nab: 0x4 seq: 0x00000072 hws: 0x2 eot: 0 dis: 0
resetlogs count: 0x41a5ccfa scn: 0x0000.000e2006 (925702)
prev resetlogs count: 0x3121c97a scn: 0x0000.00000001 (1)
Low scn: 0x0000.004f1aa1 (5184161) 05/12/2022 17:10:35
Next scn: 0x0000.004f1aa8 (5184168) 05/12/2022 17:10:36
Enabled scn: 0x0000.001f0753 (2033491) 04/07/2022 12:21:09
Thread closed scn: 0x0000.004f1aa1 (5184161) 05/12/2022 17:10:35
Disk cksum: 0xcd25 Calc cksum: 0xcd25
Terminal recovery stop scn: 0x0000.00000000
Terminal recovery 01/01/1988 00:00:00
Most recent redo scn: 0x0000.00000000
Largest LWN: 2 blocks
End-of-redo stream : No
Unprotected mode
Miscellaneous flags: 0x800011
Thread internal enable indicator: thr: 0, seq: 0 scn: 0x0000.00000000
Zero blocks: 8
Format ID is 2
redo log key is 5732c0d413f33575933d9e64c4ff5c6
redo log key flag is 5
Enabled redo threads: 1 2
REDO RECORD - Thread:2 RBA: 0x000072.00000002.0010 LEN: 0x0244 VLD: 0x05
SCN: 0x0000.004f1aa1 SUBSCN: 1 05/12/2022 17:10:35
(LWN RBA: 0x000072.00000002.0010 LEN: 0002 NST: 0001 SCN: 0x0000.004f1aa1)
CHANGE #1 TYP:0 CLS:17 AFN:3 DBA:0x00c00080 OBJ:4294967295 SCN:0x0000.004f1121 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0013 sqn: 0x00000648 flg: 0x0012 siz: 200 fbi: 0
uba: 0x00c00e4c.0209.23 pxid: 0x0000.000.00000000
CHANGE #2 TYP:0 CLS:18 AFN:3 DBA:0x00c00e4c OBJ:4294967295 SCN:0x0000.004f1120 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 200 spc: 2574 flg: 0x0012 seq: 0x0209 rec: 0x23
xid: 0x0001.013.00000648
ktubl redo: slt: 19 rci: 0 opc: 11.1 [objn: 98733 objd: 98733 tsn: 4]
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
0x00000000 prev ctl uba: 0x00c00e4c.0209.20
prev ctl max cmt scn: 0x0000.004ebaab prev tx cmt scn: 0x0000.004ebaea
txn start scn: 0xffff.ffffffff logon user: 0 prev brb: 12586531 prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: L itl: xid: 0x000a.013.00006307 uba: 0x00c0025b.072e.0b
flg: C--- lkc: 0 scn: 0x0000.004f1a39
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ad hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 0
ncol: 3 nnew: 1 size: 0
col 1: [ 4] 6f 32 6b 32
CHANGE #3 TYP:2 CLS:1 AFN:4 DBA:0x010000ad OBJ:98733 SCN:0x0000.004f1a8c SEQ:1 OP:11.5 ENC:0 RBL:0
KTB Redo
op: 0x11 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F xid: 0x0001.013.00000648 uba: 0x00c00e4c.0209.23
Block cleanout record, scn: 0x0000.004f1aa1 ver: 0x01 opt: 0x02, entries follow...
itli: 1 flg: 2 scn: 0x0000.004f1a8c
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ad hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2 ckix: 0
ncol: 3 nnew: 1 size: 0
col 1: [ 4] 6f 32 6b 33
CHANGE #4 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:0 OP:5.20 ENC:0
session number = 42
serial number = 55
transaction name =
version 186647552
audit sessionid 4294967295
Client Id =
login username = SYS
REDO RECORD - Thread:2 RBA: 0x000072.00000003.0064 LEN: 0x00a4 VLD: 0x01
SCN: 0x0000.004f1aa2 SUBSCN: 1 05/12/2022 17:10:35
CHANGE #1 TYP:0 CLS:17 AFN:3 DBA:0x00c00080 OBJ:4294967295 SCN:0x0000.004f1aa1 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0013 sqn: 0x00000648 srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c00e4c.0209.23 ext: 2 spc: 2372 fbi: 0
CHANGE #2 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:0 OP:24.4 ENC:0
END OF REDO DUMP
redo Physical format = hexdump -C redo file
(base) [email protected] ~ % hexdump -C ~/Downloads/114.redo
00000000 00 22 00 00 00 00 c0 ff 00 00 00 00 00 00 00 00 |."....��........|
00000010 65 58 00 00 00 02 00 00 03 00 00 00 7d 7c 7b 7a |eX..........}|{z|
00000020 a0 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |�...............|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200 01 22 00 00 01 00 00 00 72 00 00 00 00 80 25 cd |."......r.....%�|
00000210 00 00 00 00 00 04 20 0b 38 e2 f5 ae 43 48 45 4e |...... .8��CHEN|
00000220 4d 4d 00 00 e3 48 00 00 00 90 01 00 00 02 00 00 |MM..�H..........|
00000230 03 00 02 00 35 3b f5 ae 00 00 00 00 00 00 00 00 |....5;�........|
00000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000250 00 00 00 00 00 00 00 00 00 00 00 00 54 68 72 65 |............Thre|
00000260 61 64 20 30 30 30 32 2c 20 53 65 71 23 20 30 30 |ad 0002, Seq# 00|
00000270 30 30 30 30 30 31 31 34 2c 20 53 43 4e 20 30 78 |00000114, SCN 0x|
00000280 30 30 30 30 30 30 34 66 31 61 61 31 2d 30 78 30 |0000004f1aa1-0x0|
00000290 30 30 30 30 30 34 66 31 61 61 38 00 04 00 00 00 |000004f1aa8.....|
000002a0 fa cc a5 41 06 20 0e 00 00 00 00 00 02 00 00 00 |�̥A. ..........|
000002b0 02 00 00 00 a1 1a 4f 00 00 00 00 00 0b 88 d5 41 |....�.O.......�A|
000002c0 a8 1a 4f 00 00 00 00 00 0c 88 d5 41 00 00 08 02 |�.O.......�A....|
000002d0 53 07 1f 00 00 00 00 00 35 ce a5 41 a1 1a 4f 00 |S.......5ΥA�.O.|
000002e0 00 00 00 00 0b 88 d5 41 00 00 00 00 11 00 80 00 |......�A........|
000002f0 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 |................|
00000300 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 |................|
00000310 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 |................|
00000320 00 00 00 00 7a c9 21 31 00 00 00 00 00 00 00 00 |....z�!1........|
00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000003c0 57 32 c0 0d 41 3f 33 57 59 33 d9 e6 4c 4f f5 c6 |W2�.A?3WY3��LO��|
000003d0 27 f7 6c 1f 74 8a 40 20 48 9c 47 0b 46 31 76 e0 |'�[email protected] H.G.F1v�|
000003e0 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000400 01 22 00 00 02 00 00 00 72 00 00 00 10 80 66 66 |."......r.....ff|
00000410 44 02 00 00 05 6e 00 00 a1 1a 4f 00 01 00 00 23 |D....n..�.O....#|
00000420 06 c5 1e 24 23 63 11 03 00 00 01 00 02 00 00 00 |.�.$#c..........|
00000430 02 00 00 00 0a 65 6c 5f a1 1a 4f 00 00 00 72 76 |.....el_�.O...rv|
00000440 65 72 73 00 00 00 80 f4 a3 1a 4f 00 00 00 00 00 |ers....�.O.....|
00000450 0b 88 d5 41 05 02 11 00 03 00 ff ff 80 00 c0 00 |..�A......��..�.|
00000460 21 11 4f 00 00 00 7c 99 01 00 ff ff 04 00 20 00 |!.O...|...��.. .|
00000470 13 00 00 00 48 06 00 00 4c 0e c0 00 09 02 23 00 |....H...L.�...#.|
00000480 12 00 c8 00 00 63 82 41 00 00 00 00 00 00 00 00 |..�..c.A........|
00000490 05 01 12 00 03 00 ff ff 4c 0e c0 00 20 11 4f 00 |......��L.�. .O.|
000004a0 00 00 00 00 01 00 ff ff 16 00 14 00 4c 00 20 00 |......��....L. .|
000004b0 1d 00 02 00 04 00 14 00 02 00 02 00 02 00 00 00 |................|
000004c0 c8 00 0e 0a 12 00 00 00 01 00 13 00 48 06 00 00 |�...........H...|
000004d0 09 02 23 00 ad 81 01 00 ad 81 01 00 04 00 00 00 |..#.�...�.......|
000004e0 00 00 00 00 0b 01 13 00 08 0c 01 00 00 00 00 00 |................|
000004f0 4c 0e c0 00 09 02 20 00 ab ba 4e 00 00 00 00 00 |L.�... .��N.....|
00000500 ea ba 4e 00 00 00 41 bc 40 08 00 00 ff ff ff ff |�N...A�@...����|
00000510 ff ff 00 00 23 0e c0 00 00 00 00 00 00 00 00 00 |��..#.�.........|
00000520 04 0d 00 00 00 00 00 00 0a 00 13 00 07 63 00 00 |.............c..|
00000530 5b 02 c0 00 2e 07 0b 00 00 80 00 00 39 1a 4f 00 |[.�.........9.O.|
00000540 ad 00 00 01 aa 00 00 01 fa 12 25 01 02 00 00 00 |�...�...�.%.....|
00000550 2c 00 00 00 01 00 03 01 00 00 00 00 00 00 00 00 |,...............|
00000560 01 00 00 00 6f 32 6b 32 01 1c 01 00 01 00 02 00 |....o2k2........|
00000570 02 00 00 00 00 10 00 00 00 00 00 00 01 00 00 00 |................|
00000580 02 00 00 00 c1 03 00 00 0b 05 01 00 04 00 01 00 |....�...........|
00000590 ad 00 00 01 8c 1a 4f 00 00 00 00 00 01 02 ad 81 |�.....O.......�.|
000005a0 0a 00 40 00 1d 00 02 00 04 00 00 00 11 0d 00 00 |[email protected]|
000005b0 00 00 00 00 01 00 13 00 48 06 00 00 4c 0e c0 00 |........H...L.�.|
000005c0 09 02 23 00 00 00 00 00 00 00 00 00 00 00 00 00 |..#.............|
000005d0 00 00 00 00 ad 81 01 00 02 01 01 00 a1 1a 4f 00 |....�.......�.O.|
000005e0 00 00 00 00 01 02 00 00 8c 1a 4f 00 ad 00 00 01 |..........O.�...|
000005f0 aa 00 00 01 fa 12 05 01 02 00 00 00 2c 02 00 00 |�...�.......,...|
00000600 01 22 00 00 03 00 00 00 72 00 00 00 64 80 1b 9a |."......r...d...|
00000610 01 00 03 01 00 00 00 00 00 1a 4f 00 01 00 70 72 |..........O...pr|
00000620 6f 32 6b 33 05 14 00 00 00 00 00 00 00 00 00 00 |o2k3............|
00000630 00 00 00 00 00 00 00 00 00 06 00 00 12 00 04 00 |................|
00000640 00 00 02 00 04 00 04 00 00 00 00 00 03 00 4f f0 |..............O�|
00000650 2a 00 37 00 00 00 00 00 00 04 20 0b ff ff ff ff |*.7....... .����|
00000660 53 59 53 00 a4 00 00 00 01 06 00 00 a2 1a 4f 00 |SYS.�.......�.O.|
00000670 01 00 00 00 00 00 00 00 00 00 00 00 05 04 11 00 |................|
00000680 03 00 ff ff 80 00 c0 00 a1 1a 4f 00 00 00 00 00 |..��..�.�.O.....|
00000690 01 00 ff ff 08 00 14 00 10 00 04 00 13 00 00 00 |..��............|
000006a0 48 06 00 00 00 00 00 00 09 00 00 00 02 00 00 00 |H...............|
000006b0 4c 0e c0 00 09 02 23 00 02 00 44 09 00 7f 00 00 |L.�...#...D.....|
000006c0 0b cf 7c 62 18 04 00 00 00 00 00 00 00 00 00 00 |.�|b............|
000006d0 00 00 00 00 00 00 00 00 00 06 00 00 0a 00 10 00 |................|
000006e0 04 00 02 00 08 00 00 00 28 23 00 00 01 00 13 00 |........(#......|
000006f0 48 06 00 00 ff 00 0e 00 01 0a 09 00 00 00 00 00 |H...�...........|
00000700 a1 1a 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 |�.O.............|
00000710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000800
Reference articles and blog
juliandyke A great god blog Introduce redo Articles in the Journal :www.juliandyke.com/Internals/R…
Lewis Written by the great God 《Oracle Core: Essential Internals for DBAs and Developers (Expert's Voice in Databases) 》 Database kernel staff are regarded as classic books :www.amazon.com/Oracle-Core…\
lewis blog Recorded in the Oracle Of opcode:jonathanlewis.wordpress.com/2017/07/25/…\
Alibaba open source GalaxyEngine Also used. lizard Business :github.com/ApsaraDB/ga…\
WAL Log lookahead mechanism :en.wikipedia.org/wiki/Write-…
边栏推荐
- 2020 Bioinformatics | GraphDTA: predicting drug target binding affinity with graph neural networks
- [10:00 public class]: basis and practice of video quality evaluation
- CCNA-思科网络 EIGRP协议
- The nearest common ancestor of binary (search) tree ●●
- Oracle Performance Analysis 3: introduction to tkprof
- 新入职一家公司需要去实践和注意的内容
- Method return value considerations
- 小常识:保险中的“保全”是什么?
- Unity3D学习笔记6——GPU实例化(1)
- Make menuconfig has a recipe for target 'menuconfig' failed error
猜你喜欢
Oracle-控制文件及日志文件的管理
Reset Mikrotik Routeros using netinstall
[线性代数] 1.3 n阶行列式
UNI-Admin基础框架怎么关闭创建超级管理员入口?
Yyds dry goods inventory C language recursive implementation of Hanoi Tower
Bat script learning (I)
Seata aggregates at, TCC, Saga and XA transaction modes to create a one-stop distributed transaction solution
[10:00 public class]: basis and practice of video quality evaluation
make menuconfig出现recipe for target ‘menuconfig‘ failed错误
[asp.net core] set the format of Web API response data -- formatfilter feature
随机推荐
数据处理技巧(7):MATLAB 读取数字字符串混杂的文本文件txt中的数据
3DMax指定面贴图
C#實現水晶報錶綁定數據並實現打印4-條形碼
GPS從入門到放弃(十三)、接收機自主完好性監測(RAIM)
GPS from getting started to giving up (XX), antenna offset
Leetcode question brushing (XI) -- sequential questions brushing 51 to 55
Huawei has launched attacks in many industries at the same time, and its frightening technology has made European and American enterprises tremble
Notes de développement du matériel (10): flux de base du développement du matériel, fabrication d'un module USB à RS232 (9): création de la Bibliothèque d'emballage ch340g / max232 SOP - 16 et Associa
C#实现水晶报表绑定数据并实现打印4-条形码
[daily] win10 system setting computer never sleeps
GPS from getting started to giving up (XV), DCB differential code deviation
GPS from getting started to giving up (XIII), receiver autonomous integrity monitoring (RAIM)
Earned value management EVM detailed explanation and application, example explanation
2020 Bioinformatics | GraphDTA: predicting drug target binding affinity with graph neural networks
GNN, please deepen your network layer~
Set status bar style demo
Oracle-控制文件及日志文件的管理
小常识:保险中的“保全”是什么?
[leetcode daily clock in] 1020 Number of enclaves
Wechat red envelope cover applet source code - background independent version - source code with evaluation points function