`
javathinker
  • 浏览: 226399 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

SQL0964C The transaction log for the database is full (DB2 事务 日志满 清理 )

 
阅读更多

SQL0964CThe transaction log for the database is full.
这个错误说明事务日志已满,查到一些解决方法:


方法一:命令行方式
把日志文件的大小和日志文件的数量扩充,如下命令:
db2 update db cfg for DATABASE using LOGFILSIZ 7900
db2 update db cfg for DATABASE using LOGPRIMARY 30
db2 update db cfg for DATABASE using LOGSECOND 20

方法二:控制中心方式。
直接在该数据库上右键,弹出如下窗口,找到Configure Dababase Logging Wizard,打开即可设置。

ibm官方说明:
Too many objects have been loaded into the library server and the transaction to delete rows in the library server transaction tracking table is overfilling the DB2® UDB transaction logs.

Workaround:
1. Stop the migrator process.
2. Stop all the DB2 UDB applications. The DB2 UDB command to stop all the applications is: db2 force applications all
3. Change the number of secondary log files in the DB2 UDB database configuration to a greater number such as 100 (default is 20).
4. To see the database configuration settings, enter the following command in a DB2 UDB command window: db2 get db cfg
5. To update the number of secondary log files to 100, enter the following: db2 command db2 update dbm cfg using LOGSECOND=100
6. Start the migrator process.
The error message should now not be appearing in the library server log, and the transaction to delete rows in the library server transaction tracking table should be successful.

有关日志文件的参数有如下几个:
Logprimary:主日志文件的个数;最大为为65536(页数)×4k(块大小);

www.ixdba.net


Logfilsz:每个日志文件的大小;最多不超过256;
Logsecond:第二日志文件的个数;最大不超过254;辅助日志文件在需要时分配,不再使用时系统收回。

平常只使用Logprimary的个数个日志文件,当主日志文件被用完,则启用第二日志文件个数个日志文件。如果都用光了系统就会报日志满错误。

而所谓循环日志方式,是指对主日志文件的循环利用,但是要注意,日志文件的大小必须要满最大单个事务的数据容量需求。因为在一个事务写日志的过程中是不允许循环使用的,平常最好配置到,只使用主日志,不使用第二日志,最好让数据库一天写满一个到两个日志文件。

另外,还有种方法是设置不写日志,即ALTER TABLE A ACTIVATE NOT LOGGED INITIALLY,但是据说这种方法可能会出问题,而且一旦出问题,只能DROP TABLE,无法补救。所以这种方法还是不用了。

补充:
DB2事务日志摘要

事务是逻辑工作单元。每一个事务在事务日记文件中都存储有相应的日志记录。每个事务都有一个相应的Redo Log条目。Redo Log条目将写入当前的活动日志文件。当活动日志文件变满时,它将被标记为unavailable。此时,DB2将接着此活动日志文件另外创建一个日志文件,并继续在其中写入日志条目。当前活动日志文件变满时,DB2将重复这一循环过程。当事务完成后(发起COMMIT或ROLLBACK语句),相应的日志条目将被释放,因为不再需要将它们用于恢复数据库。

  DB2将一直尝试将日志条目写入主要日志文件集,也就是数据库活动时间自动分配的日志文件。如果某个事务将所有主要日志文件消耗怠尽(所有主要日志文件都被标记为unavailable),则数据库管理员将分配一个次要日志文件。当这个文件变满时,数据库管理员将再次检查主要日志文件的状态是否为unavailable。如果是,则再分配一个次要日志文件并继续在其中写入条目。该过程将不断重复,直到所有次要日志文件都分配并写满。如果没有主要日志文件可供写入
分享到:
评论

相关推荐

    SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database ‘***’ is full due to ‘REPLICATION'(数据库“***”的事务日志已满,原因为“REPLICATION”). CDC以及复制的基本原理粗略地讲...

    SQLSERVER 事务日志详解

    详细介绍了,通过[fn_dblog]函数,查询出所有的数据库的操作日志,以及针对此函数,对应关键列名的详细介绍。图文并茂,通过自身测试,提供详细的分析解释。

    SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案

    执行sql 语句,中间没有用到临时表 提示服务器: 消息 9002,级别 17,状态 2,行 1 数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。 网上找了下解决方案,大体是扩大临时库的日志文件...

    Log Explorer for SQL Server v4.22 含注册机

    支持 MS SQL 2005 之前的版本 不支持 sql 2008 介绍 Log Explorer主要用于对MSSQLServer的事物分析和数据恢复。你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的...

    Log Explorer for SQL Serverv v3.21 完全版操作MSSQL日志

    要滿足上述需求,惟有運用隱藏在交易記錄檔(Transaction Log)中的資訊,而Log Explorer的強大功能正能協助您達成這些任務。現在就讓我們開始進入Log Explorer的神奇世界中。 Log Explorer 3.0 for Microsoft SQL ...

    sql数据库日志已满的解决办法

    sql数据库日志已满的解决办法

    sql2000 Log Explorer4.2(含注册码)+汉化

    Log Explorer For SQL SERVER帮助翻译(Log Operation Codes) 日志操作代码 每个日志记录包含一个操作代码,操作代码表示日志的操作 FORMAT_PAGE 写新分配数据页的表头 INSET_ROWS 在用户表或系统表插入行 ...

    微软内部资料-SQL性能优化3

    For example, if you defer constraint checking, it is your responsibility to ensure that the database is consistent. Isolation Concurrent transactions are isolated from the updates of other incomplete...

    Log Explorer for SQL Server v4.22

    如果不选用了删除事务日志中不活动的条目 再用Log explorer打试图看日志时,就能看到原来的日志 2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开...

    Attach a SQL Server database with a missing transaction log file

    解决了出现5102的问题

    Pro.SQL.Server.Internals

    Pro SQL Server Internals is a book for developers and database administrators, and it covers multiple SQL Server versions starting with SQL Server 2005 and going all the way up to the recently ...

    SQL数据库日志已满解决方法

    当前的解决方法是:把硬盘上的其他... 在查询分析器上操作: 清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 解决SQL数据库日志已满的问题 1、右键数据库→属性→选项→

    Log Explorer for SQL Serverv v3.1.1 完全版

    Log Explorer 3.0 for Microsoft SQL Server强大功能包括有 : 能够辨识任何资料纲要(Schema)及权限(Permission)的所有改变 能够依据交易记录档分析您的资料库 能够透过超强的过滤器迅速发掘并解决问题 不需运用...

    SQLServerTransactionLogManagement.pdf 英文原版

    SQL Server Transaction Log Management

    Pro SQL Server Internals

    Pro SQL Server Internals is a book for developers and database administrators, and it covers multiple SQL Server versions starting with SQL Server 2005 and going all the way up to the recently ...

    Beginning T-SQL with Microsoft SQL Server 2005 and 2008

    The examples throughout this book use the following sample databases, which are available to download from Microsoft: the sample database for SQL Server 2005 is called AdventureWorks, and the sample ...

    Addressing OLTP Solutions with CICS:The Transaction Server for AIX

    Addressing OLTP Solutions with CICS:The Transaction Server for AIX PDF格式书籍,206页

    Absolute Database for D7

    Overview Absolute Database: Delphi database with SQL support.Absolute Database lets you forget the Borland Database Engine (BDE). This BDE replacement is the compact, high-speed, robust and easy-to-...

    html5 Web SQL Database 之事务处理函数transaction与executeSQL解析

    通过一个例子说明 Web SQL Database 的基本用法。它首先调用 openDatabase 创建了名为“fooDB”的数据库。然后使用 transaction 执行两条 SQL 语句。第一条 SQL 语句创建了名为“foo”的表,第二条 SQL 语句向表中...

    SQLServer存储过程中事务的使用方法

    主要介绍了SQLServer存储过程中事务的使用方法,简短的代码带大家更好的学习使用SQLServer存储过程中事务,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics