可以使用db2pd -trans来确定当前的lowtranLSN吗?

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

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9614008/viewspace-1025054/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9614008/viewspace-1025054/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值