WEB开发网
开发学院数据库DB2 DB2事务日志使用经验 阅读

DB2事务日志使用经验

 2008-11-24 16:34:15 来源:WEB开发网   
核心提示: 可以看到这个写操作占用的日志大约为700个字节,在回话1中再重复执行上面的命令,DB2事务日志使用经验(4),会话2中在看db2pd的输出:C:Documents and Settingsadministrator>db2pd -db sample -transactionsData

可以看到这个写操作占用的日志大约为700个字节,在回话1中再重复执行上面的命令,会话2中在看db2pd的输出: 

  C:Documents and Settingsadministrator>db2pd -db sample -transactions
  Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:45:55
  Transactions:
  Address AppHandl [nod-index] TranHdl Locks State Tflag Tflag2
  Firstlsn Lastlsn LogSpace SpaceReserved TID
  AxRegCnt GXID
  0x7FC21A80 7 [000-00007] 2 8 WRITE 0x00000000 0x00000
  000 0x000028E385B8 0x000028E38806 154 1334 0x000000004F57
  1 0

1334-700=634,我们可以这样评估,单个事务每执行一次表插入,插入一行占用的日志约为700字节,在一个事务中,插入多条记录,插入一行记录占用的日志约为634字节,当然,实际上当插入多行时,日志的大小会比计算值略大。

使用这个方法可以根据业务运行情况来评估需要数据库应该配置的日志大小,也可以评估单个大事务需要的日志空间。

根据估算,200M总日志大小,200*1024*1024/635=330781。因此可以一次插入大约33W记录来构造日志满的场景。

B、 事务日志满场景一:当前未提交的事务太大,超过日志的限制。

在会话1中执行:

C:Documents and Settingsadministrator>db2 commit

DB20000I SQL命令成功完成。

提交前面未提交的事务。

C:Documents and Settingsadministrator>db2 +c call proc_testlog(330000)

SQL0964C 数据库的事务日志已满。 SQLSTATE=57011

这时候我打开另外一个session,执行一个不相关的插入操作。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB 事务 日志

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接