1. 什么是lowtranLSN:
lowtranlsn
LSN of the first log record written by the oldest uncommitted transaction. It only moves up when the oldest transaction commits/aborts. Oldest is is ordered by the time transactions write their first log records, not the UOW start time reported by database monitor.
2. lowtranLSN的作用是什么?
lowtranLSN和minbuffLSN是DB2数据库进行崩溃恢复时重要依据。下面会有比较详细的说明。
3. 针对db2pd -trans能否确定当前系统中的lowtranLSN,我做了如下的测试
测试环境: DB2 v9.5 FP2a
测试的表: 1. SALES 位于表空间USERSPACE1(自动存储器表空间)
2. TEST 位于表空间USERSPACE1(自动存储器表空间)
测试1:
Trans A: $ db2 +c "insert into sales select * from sales"
DB20000I The SQL command completed successfully.
Monitor: $ db2pd -db sample -trans
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:10:03
Transactions:
Address AppHandl [nod-index] TranHdl Locks State Tflag Tflag2 Firstlsn Lastlsn LogSpace SpaceReserved TID AxRegCnt GXID
0x0700000030337C80 38 [000-00038] 8 12 WRITE 0x00000000 0x00000000 0x00000FAF2843 0x00000FAF2B32 506 1334 0x0000000010D9 1 0
Trans B: $ db2 +c "insert into test select * from test"
DB20000I The SQL command completed successfully.
Monitor: $ db2pd -db sample -trans
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:11:33
Transactions:
Address AppHandl [nod-index] TranHdl Locks State Tflag Tflag2 Firstlsn Lastlsn LogSpace SpaceReserved TID AxRegCnt GXID
0x0700000030331F80 30 [000-00030] 2 4 WRITE 0x00000000 0x00000000 0x00000FAF2B7F 0x00000FAF2C2C 302 542 0x0000000010CE 1 0
0x0700000030337C80 38 [000-00038] 8 12 WRITE 0x00000000 0x00000000 0x00000FAF2843 0x00000FAF2B32 506 1334 0x0000000010D9 1 0
Trans B: $ db2 commit
DB20000I The SQL command completed successfully.
Monitor: $ db2_kill
ipclean: Removing DB2 engine and client's IPC resources for e95q2aa.
$ db2 restart db sample
DB20000I The RESTART DATABASE command completed successfully.
Check the db2diag.log:
----------------------------------------------------
2009-08-07-22.10.45.244506-300 I6378A436 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, base sys utilities, sqledint, probe:30
MESSAGE : Crash Recovery is needed.
2009-08-07-22.10.45.376739-300 I6815A499 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:410
MESSAGE : Crash recovery started. LowtranLSN 000000000FAF24EB MinbuffLSN
000000000FAD5DE3
2009-08-07-22.10.45.387264-300 E7315A453 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:410
MESSAGE : ADM1530E Crash recovery has been initiated.
2009-08-07-22.10.45.388413-300 I7769A493 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlprecm, probe:2000
DATA #1 :
Using parallel recovery with 5 agents 5 QSets 20 queues and 6 chunks
2009-08-07-22.10.45.392217-300 I8263A408 LEVEL: Info
PID : 667742 TID : 3086 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000
EDUID : 3086 EDUNAME: db2lfr (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlplfrVerifyLogPages, probe:980
DATA #1 :
Inform shredder to overwrite ping with pong page in buffer. pagelsn is 00000FAF2E56
2009-08-07-22.10.45.623964-300 I8672A509 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlprecm, probe:4000
MESSAGE : DIA2051W Forward phase of crash recovery has completed. Next LSN is
"000000000FAF2E57".
2009-08-07-22.10.45.645452-300 E9182A462 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:3170
MESSAGE : ADM1531E Crash recovery has completed successfully.
2009-08-07-22.10.45.645864-300 I9645A464 LEVEL: Warning
PID : 667742 TID : 1801 PROC : db2sysc 0
INSTANCE: e95q2aa NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.e95q2aa.090808031044
AUTHID : E95Q2AA
EDUID : 1801 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:3170
MESSAGE : Crash recovery completed. Next LSN is 000000000FAF2E57
----------------------------------------------------
可见,Crash Recovery使用的lowtranLSN:000000000FAF24EB 与我们用db2pd监控到的0x00000FAF2843是不一致的之间差了0x358=856 bits
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9614008/viewspace-1025054/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9614008/viewspace-1025054/