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

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 事务日志详解

    本篇将深入探讨SQL Server事务日志的原理,以及如何利用`fn_dblog`这个系统存储过程来查询和解析事务日志。 事务日志是SQL Server中的一个关键组成部分,它跟踪数据库中每个事务的所有更改。每次数据修改时,这些...

    SQLServer处理事务日志文件过大方法

    在SQL Server数据库管理系统中,事务日志文件(Transaction Log File)是用于记录所有事务更改的关键组件之一。随着数据库活动的增加,特别是当数据库频繁执行事务时,事务日志文件可能会迅速增长至非常庞大的尺寸,...

    db2数据库事务日志

    当DB2数据库事务日志已满时,会出现SQL0964C错误,这不仅会影响数据库的正常运行,还可能导致数据丢失等严重后果。因此,了解如何解决DB2数据库事务日志已满的问题是非常必要的。 #### 二、事务日志概念 事务日志是...

    SQL日志清理工具

    SQL日志主要分为两种类型:事务日志(Transaction Log)和操作日志(Activity Log)。事务日志记录了所有对数据库的更改操作,用于回滚未提交的事务和恢复数据库至特定状态。操作日志则记录数据库的操作历史,便于...

    SQL Server日志清理小助手(可自动定期清理)

    SQL Server有两种日志:事务日志(Transaction Log)和错误日志(Error Log)。事务日志记录所有数据库更改操作,用于回滚未提交的事务和在崩溃时恢复数据库;错误日志则存储服务器启动、关闭以及运行期间遇到的...

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

    例如SQL Server Agent未运行或未能及时处理日志,将会导致日志文件中的“Replication”状态条目积累,占用大量空间,进而使事务日志文件达到其最大容量,引发错误:“The transaction log for database ‘***’ ...

    sqlserver日志清理工具

    SQL Server的日志文件主要有两种类型:交易日志(Transaction Log)和错误日志(Error Log)。交易日志用于跟踪数据库的所有更改,确保在系统崩溃或异常情况下能够进行回滚或恢复。而错误日志则记录了SQL Server实例...

    sqlserver还原备份数据库以及清理日志文件

    - **事务日志备份(Transaction Log Backup)**:备份自上次事务日志备份以来发生的事务日志记录。 **1.2 恢复模式** - **简单恢复模式(Simple Recovery Mode)**:不支持事务日志备份。 - **完整恢复模式(Full ...

    如何解决SQL Server日志满问题

    2. 截断事务日志:使用 BACKUP LOG 语句截断事务日志。 BACKUP LOG 数据库名 WITH NO_LOG 3. 收缩数据库文件:使用 DBCC SHRINKDATABASE 语句收缩数据库文件。 DBCC SHRINKDATABASE(客户资料) 也可以使用 DBCC ...

    Attach a SQL Server database with a missing transaction log file

    ### Attach a SQL Server Database with a Missing Transaction Log File 在日常的数据库管理与维护工作中,遇到丢失事务日志文件的情况并不少见。这类问题通常会给数据库的正常运行带来一定困扰,尤其是当试图附加...

    SQL日志清理工具 清理sql server日志的一个小工具

    SQL日志清理工具是针对Microsoft SQL Server数据库管理系统设计的一款实用程序,主要功能是帮助管理员有效管理和清理数据库的日志部分,即事务日志(Transaction Log)。事务日志在SQL Server中扮演着至关重要的角色...

    Log Explorer for SQL Server v4.22

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

    sqlserver清理数据库日志

    1. 事务日志(Transaction Log):记录了数据库中的所有事务操作,包括插入、更新、删除等操作。 2. 错误日志(Error Log):记录了数据库中的错误信息,包括错误的原因、时间、日期等信息。 3. 安全日志(Security ...

    解决SQL数据库日志已满的问题

    在SQL Server中,数据库日志已满的问题是一个常见的问题,主要由于事务日志空间不足导致。日志文件用于记录所有数据库事务,确保数据的一致性和可恢复性。当日志文件达到其最大大小且未被清除或收缩时,可能会阻碍...

    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语句的...

    快速清除SQLServer日志的两种方法

    * 在开发数据库时,可以将Truncate log on checkpoint选项设置为True,以便在执行CHECKPOINT命令时,如果事务日志文件超过其大小的70%,则将其内容清除。 数据库属性 * 在数据库上点右键->属性->选项->故障恢复-...

    sql数据库日志清理工具

    SQL数据库中的日志主要分为两种:事务日志(Transaction Log)和操作日志(Operation Log)。事务日志记录了所有数据库的更改操作,用于回滚未提交的事务和在系统崩溃后进行恢复。操作日志则记录了数据库服务器的...

Global site tag (gtag.js) - Google Analytics