`

(转)DB2解决“数据库日志已满”操作 SQLCODE=-964

    博客分类:
  • DB2
 
阅读更多

http://www.db2china.net/club/thread-4244-1-1.html

DB2解决“数据库日志已满”操作 SQLCODE=-964  

2011-01-06 15:57:13|  分类: DB2|字号 订阅

日志文件需要更多空间,但是减少了应用程序重试该操作的需要。

若正在安装样本数据库,则删除它并再次安装样本数据库。

sqlcode : -964

sqlstate : 57011

用控制中心直接改会比较容易一点,在数据库名称上点右键–>配置参数–>日志–>日志文件大小、主

日志文件数、辅助日志文件数改大一点。

LOGFILSIZ       日志文件大小

LOGPRIMARY  主日志文件大小

LOGSECOND  辅助日志文件数

---------------------------------------------------
也可用命令行db2cmd

db2 update db cfg for dbname  using    LOGFILSIZ 1000–日志文件大小

db2 update db cfg for dbname  using    LOGPRIMARY 20    –主日志

db2 update db cfg for dbname  using    LOGSECOND 10      –辅助日志
要将与此数据库的所有连接断开后才会生效。

 

----------------------------------------------------------------------------------------------------------------------------------------------

DB2数据库事务日志已满问题解决方案

本系列文章主要介绍数据库管理员(DBA)在日常维护中遇上一些比较紧急的情况如何处理,本篇主要介绍DB2交易日志存储空间满问题如何处理。

1、数据库事务日志的最大大小

数据库事务日志的最大大小由数据库的三个配置参数决定,分别是“主日志文件的数目”(LOGPRIMARY)、“辅助日志文件的数目”(LOGSECOND)和“日志文件大小(4KB)”(LOGFILSIZ)。数据库事务日志的最大大小的计算公式如清单 01-32 所示:


清单 1. 数据库事务日志的最大大小的计算公式

数据库事务日志的最大大小 = ( LOGPRIMARY + LOGSECOND )* LOGFILSIZ * 4KB

LOGSECOND 在这个公式中不能设为 “ -1 ” ,“ -1 ”代表你在请求一个无限的活动日志空间,数据库也不会报数据库事务日志已满错误,如果空间不足则会报日志磁盘已满错误,具体如本章第五节所述。下面我们具体看一下这三个参数:

  1. 主日志文件的数目 LOGPRIMARY
    此数据库配置参数用来指定要预分配的主日志文件个数。主日志文件建立分配给恢复日志文件的固定存储器数量。在循环日志管理模式下,数据库事务将按顺序重复使用主日志,也就是当一个主日志已满时,顺序使用下一个主日志,如果主日志已满,则按需一次分配一个辅助日志,辅助日志在使用完后,将被释放。如果你发现数据库会经常分配辅助日志文件,则可能需要通过增大日志文件大小或增大主日志文件的数目来提高系统性能。
  2. 辅助日志文件的数目 LOGSECOND
    此数据库配置参数用来指定按需分配的辅助日志文件个数。尽量不要把此参数的值设置成“ -1 ” ,“ -1 ”代表你在请求一个无限的活动日志空间,数据库也不会报数据库事务日志已满错误,如果空间不足则会报日志磁盘已满错误。
  3. 日志文件大小 LOGFILSIZ
    此数据库配置参数用来指定日志文件的大小。

2、数据库事务日志已满错误

数据库事务日志已满错误是指当前事务无法写入到活动日志中(此时主日志文件和辅助日志文件已经全部用完或者没有足够当前事务写入的空间),需要注意的是,这个错误和日志磁盘空间已满是两个概念,如果想查看日志磁盘已满错误,请参照本章第五节。数据库事务日志已满不是由于磁盘空间满引起的,而是由于没有落实的事务总体过大,超过了数据库事务日志所能容纳的最大大小所造成的。

一般系统上线之初(如果是分阶段上线,则是每次上线之初),由于经常要导大量的数据,容易出现这个问题,当出现这个问题时,直接的办法是找到引起这个错误的当前事务,终止掉这个事务即可,后续在操作时找到当前执行的事务中比较大的事务,尽量落实或回滚该事务。

一般情况下,建议大家在系统上线之初进行导数时,尽量使用 LOAD 实用程序(如果是归档日志模式,建议使用带 NONRECOVERABLE 选项的 LOAD 实用程序,否则装入完成后数据库或装入的表所在的表空间会被置于备份暂挂状态,需要做一次全备才能解除备份暂挂状态),LOAD 实用程序在装入数据时不记日志。

如果使用 IMPORT 实用程序,建议使用 COMMITCOUNT 选项。无论是循环日志模式还是归档日志模式,使用 IMPORT 实用程序导入大量数据时,都有可能报数据库事务日志已满(也就是当前导入操作产生的事务过大,使得当前活动日志满了,包括所有的主日志和辅助日志都用完了),所以为了避免数据库日志已满错误,提高并发性,可以使用 COMMITCOUNT 选项,对要导入的数据分阶段提交。比如可以将 COMMITCOUNT 参数设置为“自动”,指示 import 实用程序 内部决定何时进行落实。此外,也可以将 COMMITCOUNT 选项设置为特定数字,指示 import 实用程序 在导入指定记录数后即进行落实。

尽量避免在上线之初直接使用“ INSERT INTO … SELECT .. FROM .. ”语句,导入一个很大的事务的方式进行导数,这样会使事务非常大。另外,还可以在系统上线之初把主日志文件的数目(LOGPRIMARY)、辅助日志文件的数目(LOGSECOND)和日志文件大小(4KB)(LOGFILSIZ)三个参数调大,等系统正式上线稳定后,再调回合适的值。

如果是在正式上线后的系统,经常出现这个问题,就需要查找原因,具体的原因可能有:

  1. 数据库并发连接比较多
    这种情况下,就要考虑适当增加主日志文件的数目(LOGPRIMARY)和日志文件大小(4KB)(LOGFILSIZ)。
  2. 有人通过第三方软件或其他工具直接连接到了生产库
    在这样的情况下,就要监控数据库,看其是否经常写一些大的语句对数据库进行增删改的操作,如果是的话,建议增加数据库的控制,尽量不要让不相关的人员连接生产库(如果其他人有需要,尽量开放备份库给他们使用,而不要开放生产库,生产库尽量只给业务系统正常使用),如果你使用的是 DB2 V9.5 版本,则可以使用工作负载管理 WLM 对数据库的资源进行调配。如果使用的是 DB2 V9.5 之前的版本,则可以在数据库服务器上通过配置操作系统的方式,限制一些 IP 的访问。

当出现这样的错误时,不要尝试使用 DB2STOP FORCE 命令来强制停掉数据库,建议大家使用 FORCE APPLICATION 命令停掉引起这个错误的应用程序或者停掉所有的应用程序。也不建议大家使用 KILL 命令来杀掉任何 DB2 相关的进程。

分享到:
评论

相关推荐

    对表进行任何操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 ,原因码 \"7\"的错误:SQL0668N Operation not

    标题中的错误信息“SQLSTATE=57016 SQLCODE=-668”是一个IBM DB2数据库系统中常见的错误代码,通常与权限或对象状态有关。这个错误的完整信息是"SQL0668N Operation not allowed.",意味着在尝试执行特定的数据库...

    db2数据库错误解决代码sqlcode

    例如,SQLCODE -911表示“会话已中断”,-955表示“数据库会话已满”,而0表示操作成功。 1. **错误分类与解读**: - **系统错误**:这些错误通常与DB2的内部工作或资源管理有关,如内存不足、磁盘空间不足等。 -...

    详解DB2 sqlstate 57016 SQLCODE=-668 原因码 "7"错误的快速解决办法

    在使用DB2过程中,可能会遇到各种错误代码,其中SQLSTATE 57016与SQLCODE -668,特别是原因码“7”,是一个常见的错误,通常表示在尝试执行数据库操作时遇到了权限问题。本篇文章将深入探讨这个错误的原因,并提供...

    db2 sqlcode中文说明

    在使用IBM DB2数据库的过程中,开发者可能会遇到各种各样的错误。为了更好地理解和解决这些问题,了解SQLCODE的具体含义至关重要。本文将详细介绍DB2 SQLCODE的相关知识点,包括其基本概念、作用以及如何根据具体的...

    DB2的SQL、sqlcode、sqlstate错误码中文大全

    因此,本文旨在整理 DB2 的 SQL、sqlcode、sqlstate 错误码大全,提供详细的错误码说明和用户响应方法,帮助用户快速解决问题,提高工作效率。 SQL0000 - SQL0099 在 DB2 中,SQL0000 - SQL0099 错误码系列主要...

    Db2 11.5 新特性_高级事务日志空间管理_v3.doc

    Db2 11.5 引入了一个名为高级事务日志空间管理的新特性,这是针对“数据库事务日志已满”这一常见问题的解决方案。在传统的数据库管理中,当事务日志达到其最大容量时,可能导致数据库操作失败,严重影响系统的正常...

    DB2错误操作手册(日志错误汇总)

    DB2错误操作手册是数据库管理员和开发者在遇到DB2数据库系统异常时的重要参考资料。日志错误汇总收集了各种SQL操作中可能出现的错误信息,通过这些信息可以定位问题并解决。以下是一些常见的DB2错误及其详细说明: ...

    DB2数据库常用命令大全整合

    ### DB2数据库常用命令大全整合 #### 一、启动与停止数据库 - **启动数据库**: - `db2start`:此命令用于启动DB2数据库管理器。 - **停止数据库**: - `db2stop`:此命令用于停止DB2数据库管理器。 - `db2stop...

    DB2 sqlstate错误码大全.zip

    在使用DB2进行SQL查询或操作时,可能会遇到各种错误,这些错误通常会通过sqlcode和sqlstate来表示。"DB2 sqlstate错误码大全.zip"这个压缩包文件提供了关于DB2系统中的SQL错误码的详细信息,帮助用户理解和解决遇到...

    DB2数据库SQL语句错误代码查询

    ### DB2数据库SQL语句错误代码查询:深入解析与应对策略 #### 引言 在进行数据库操作时,遇到SQL语句错误是常有的事,尤其是对于DB2这样的大型关系型数据库管理系统而言,其丰富的功能和复杂的架构可能导致各种...

    DB2_常用命令

    通过上述详细说明,我们可以清晰地了解到 DB2 数据库管理中的常见操作命令及它们的用途和注意事项。这些命令涵盖了从基本的数据库创建、管理到复杂的备份恢复、故障排查等多个方面,对于 DB2 数据库管理员来说是非常...

    db2数据库入门教程(官方中文版)

    实验 #1 安装DB2 Express-C,创建 SAMPLE数据库........................................................32 第 4章 – DB2的应用环境............................................................................

    db2错误码 中文

    在IT行业中,数据库管理系统(DBMS)是至关重要的组成部分,而IBM DB2作为一款高性能、高可靠性的数据库系统,被广泛应用于各种企业级应用中。在DB2的日常管理和维护过程中,遇到错误是难以避免的,而理解这些错误代码...

    DB2command.txt

    根据提供的文件信息,我们可以归纳出一系列与IBM DB2数据库系统相关的命令及选项。这些命令涵盖了DB2系统的管理和操作,包括但不限于实例管理、配置调整、工具使用等关键领域。接下来将详细解析这些知识点。 ### ...

    DB2错误日志

    在数据库管理与维护中,DB2错误日志扮演着至关重要的角色,它能够帮助DBA(数据库管理员)快速定位并解决数据库运行过程中遇到的问题。DB2错误日志中记录的信息包含了各种错误代码、状态码以及具体的错误描述,这些...

    sqlcode

    这个术语主要与IBM的DB2数据库管理系统紧密相关。本文将深入探讨SQLCODE及其在DB2中的应用。 SQLCODE是一个特殊的返回码,用于报告在执行SQL语句时遇到的问题。当DB2执行一个SQL语句,它会返回一个SQL状态,这个...

    DB2常用命令集

    以上列出的命令涵盖了DB2数据库管理中的许多常见任务,从基本的数据库管理(如启动和停止实例)到更复杂的任务(如备份和恢复),以及性能调优和监控等方面。掌握这些命令将大大提高DBA和开发人员的工作效率。

    DB2-SQLSTATE消息

    在这个场景中,我们主要探讨DB2数据库在执行SQL操作时如何通过SQLSTATE来报告错误。 SQLSTATE代码由五个字母或数字组成,通常以两个字母的类别开头,接着是三个数字。类别部分提供了错误的大致范围,而具体的三位...

    DB2的常见SQLCODE所表示负数的含义.doc

    了解这些SQLCODE可以帮助数据库管理员和开发者更快地诊断和解决DB2中的错误,从而提高数据库操作的效率和准确性。在遇到这些问题时,除了查看SQLCODE外,还应参考SQLSTATE,因为SQLSTATE提供了关于错误类别的额外...

    db2 代码错误对照表

    在DB2数据库管理系统中,错误处理是一项重要的功能,它帮助用户理解系统运行时遇到的问题并进行相应的解决。本文将根据给定的部分内容来详细解释DB2中的部分错误代码及其对应的SQLSTATE值,帮助读者更好地理解和解决...

Global site tag (gtag.js) - Google Analytics