DB2事务日志使用经验
2008-11-24 16:34:15 来源:WEB开发网C:Documents and Settingsadministrator>db2 "insert into test values(1112,1,’sdfsdfsdfsdf’,’sdfsdfsdfsdfsdf’,’sdfsdfsdffsdfsd’)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0964C 数据库的事务日志已满。 SQLSTATE=57011
可以看到,当日志满的时候其他的任何记日志的操作都将不能进行,所以整个系统基本处于不可用的状态,除非等事务回滚结束。
OK,事务日志满的情况出现,现在我们就根据日志满的日志,来逆向分析是哪个操作导致的该问题,分析步骤如下:
首先,确定哪个应用的事务占用了大量的日志空间:
在回话2中执行:
C:Documents and Settingsadministrator>db2pd -db sample -transactions
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:02:27
Transactions:
Address AppHandl [nod-index] TranHdl Locks State Tflag Tflag2
Firstlsn Lastlsn LogSpace SpaceReserved TID
AxRegCnt GXID
…..
0x7FC21A80 7 [000-00007] 2 10 WRITE 0x00000000 0x00000
000 0x00003D86000C 0x000048C4FCD0 14014572 201955470 0x000000004F91
1 0
…..
可以看到上面红色部分, AppHandl为7的应用的一个事务占用了大量的日志。如果有多个应用占用了大量的日志,我们可以按照下面的方法逐个分析,看每个应用是执行了什么sql导致的占用如此大的日志。
然后使用db2pd确定这个日志执行了什么语句导致占用了大量的日志:
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接