`
weiruan85
  • 浏览: 385374 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

db2 日志问题

    博客分类:
  • db2
阅读更多
   DB2 数据库支持两种不同的日志模式:循环(Circular)和归档(Archival)。当新数据库创建时,系统默认的日志模式为循环。如果业务需求要求更高级的功能,您可以将日志模式从循环修改为归档。

    DB2 将一直尝试将日志条目写入主要日志文件集,也就是数据库活动时间自动分配的日志文件。如果某个事务将所有主要日志文件消耗怠尽(所有主要日志文件都被标记为 unavailable),则数据库管理员将分配一个次要日志文件。当这个文件变满时,数据库管理员将再次检查主要日志文件的状态是否为 unavailable。如果是,则再分配一个次要日志文件并继续在其中写入条目。该过程将不断重复,直到所有次要日志文件都分配并写满。如果没有主要日志文件可供写入 Redo 条目,并且已经分配最大数量的次要日志文件,则应用程序将收到以下错误消息:
  SQL0964C The transaction log for the database is full.
   希望您曾经遇到过这种错误。但是,如果遇到此错误,则应该根据需要增加主要和次要日志文件(或者它们的大小)的数量。在理想情况下,主要日志文件的数量或大小应该足够保存最大的事务。分配次要日志文件相当消耗资源,因为它将在运行时执行。因此,我们应该将需要在高峰工作负荷期间分配的次要日志文件数量降到最低。要更新主要或次要日志文件的数量,可以发起以下命令:
  UPDATE DB CFG FOR db_name USING LOGPRIMARY value
  UPDATE DB CFG FOR db_name USING LOGSECOND value
   注意:如果出现此问题,则应该分析造成整个日志文件空间变满的原因是什么。它可能是由失控查询或用户错误造成的,因此增加日志文件的数量或大小只能在表面上解决问题。比如说,假设某个用户发起了一个 DELETE FROM tab1 语句,且 TAB1 是一个相当大的表。虽然这一语句看上去没什么问题,每行生成一条删除日记记录,但是如果未经过配置处理它可以轻易地将日志空间填满。


    循环日志


  当循环日志生效时,事务数据将通过循环的方式写入主要日志文件。当存储于某个日志文件中的所有记录都不再需要用于恢复时,该日志文件将被重用,并且可以在以后再次成为活动日志文件。这意味着在循环日志模式中,日志文件的内容最终将被新日志条目重写。由于日志文件的内容被重写覆盖了,因此我们只能将数据库恢复到最后一次完整的数据库备份。不能使用循环日志执行时间点(point-in-time)恢复。


  归档日志


  在归档日志模式中,redo log 条目将写入主要日志文件。但是,与循环日志不同,这些日志文件永远都不可重用。当存储于某个日志文件中的所有记录都不再需要用于恢复时,该日志文件将被标记为非活动 而不是可重用。这意味着它的内容永远都不会被覆盖。当第一个主要日志文件变满时,系统将分配一个新的日志文件,这样主要日志文件的配置数量(LOGPRIMARY 数据库参数)将一直可用。
  与单个事务相关的所有条目必须在活动日志空间中保持一致。如果长时间运行的事务所需要的日志空间大于主要日志文件可以提供的空间,则可能会分配并使用次要日志文件。在归档日志模式中,通过结合使用数据库备份映像和日志文件,我们可以将数据库恢复到具体的时间点。有关此流程的详细描述请参见下文。

    何修改日志模式


  创建新的 DB2 数据库时,默认的日志模式为循环日志 。如果希望将日志模式从循环修改为归档,可以执行以下步骤:
  在磁盘上创建一个文件夹(比如说 e:\db_name\archive),磁盘上必须有足够的空间存储归档日志文件。保证归档文件目标文件夹与活动日志文件目标文件夹分开。
  

终止与数据库的连接:
  TERMINATE
  更新归档日志文件目标文件夹(为归档日志文件指定路径可以将归档日志模式打开)。
  UPDATE DB CFG FOR db_name USING LOGARCHMETH1 "Disk:e:\db_name\archive"

重新连接到数据库:
  CONNECT TO db_name
  连接失败并显示以下错误消息:
  SQL1116N A connection to or activation of database db_name cannot be made because of backup pending: SQLSTATE=57019
  

出现错误消息的原因是,日志模式已经从循环更改为归档,并且需要执行完全数据库备份。数据库处于循环日志模式时执行的备份并不充分,因此当切换模式后需要执行新备份。
  

使用以下命令执行完全数据库备份:
  BACKUP DATABASE db_name TO d:\db_name\backup
  
尝试再次连接到数据库。这次应该能够成功。
  CONNECT TO db_name


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


分享到:
评论

相关推荐

    DB2 归档日志清理

    ### DB2归档日志清理知识点详解 #### 一、DB2日志系统概述 IBM DB2是一款功能强大的关系型数据库管理系统(RDBMS),它提供了高性能的数据存储、管理和检索能力。在DB2中,日志是用于记录数据库中所有事务活动的...

    db2调整日志大小解决方案

    当面临“db2调整日志大小解决方案”的问题时,通常涉及到的是DB2数据库的日志管理,这是数据库性能优化的重要环节。日志文件主要记录了数据库的所有事务操作,用于数据恢复和保证数据一致性。 在DB2中,事务日志...

    db2 日志详解 --参数设置方法和解释

    在DB2数据库管理系统中,日志记录是确保数据一致性和可恢复性的重要机制。事务日志记录是关系数据库系统用来保证数据完整性的关键工具,它记录了所有事务的详细信息,包括事务的开始、修改和结束。本文将深入探讨DB2...

    DB2数据库归档日志管理方案

    为了解决这个问题,需要对日志文件进行归档和管理。本文将详细介绍 DB2 数据库中的日志文件管理方案。 一、日志文件类型 在 DB2 数据库中,日志文件可以分为三种类型:活动日志、联机存档日志和脱机存档日志。 * ...

    db2数据库事务日志

    3. **日志清理机制失效**:DB2数据库通常会有自动清理日志的功能,但如果该功能出现问题,也可能导致日志文件无法被有效利用。 #### 四、解决方法 针对DB2数据库事务日志已满的情况,可以采取以下几种解决方案: 1....

    DB2数据库开归档日志功能.doc

    DB2数据库开归档日志功能 DB2数据库开归档日志功能是DB2数据库中的一项重要功能,它允许数据库管理员将日志文件归档到指定的目录中,以便进行备份和恢复。下面是DB2数据库开归档日志功能的详细知识点: 一、创建...

    DB2故障诊断指南,DB2DIAG.LOG日志文件分析

    本指南将深入解析db2diag.log日志文件,帮助你理解和运用其中的信息来解决DB2遇到的问题。 一、db2diag.log概述 db2diag.log日志文件是DB2系统的核心诊断日志,记录了DB2实例的所有关键事件、错误信息以及警告信息...

    DB2报错日志

    db2报错日志,db2日常维护经常遇到的错误日志。

    db2常见问题分析

    ### DB2 常见问题分析 #### 一、DB2 故障诊断与日志收集 当 DB2 数据库主机遇到重大故障时,我们可以通过 `db2support` 工具来快速收集数据库的诊断日志数据。这些数据对于后续的问题定位至关重要。 - **在可以...

    DB2_db2diag.log_日志分析方法

    ### DB2_db2diag.log_日志分析方法 #### 概述 在DB2数据库管理过程中,`db2diag.log`文件是极其重要的一个组成部分,它记录了DB2数据库运行期间的各种信息,包括但不限于错误信息、警告信息以及系统运行状态等。...

    解决db2事务日志已满及日志磁盘空间已满问题办法详解

    DB2是IBM公司开发的一款关系型数据库管理系统,它广泛应用于各种规模的企业应用中,为了保证数据库事务的完整性和数据恢复能力,DB2采用事务日志来记录数据库的更新操作。然而,在实际工作中,DB2的事务日志可能会...

    db2常见问题集锦

    - 问题:如何查看DB2错误日志? - 解答:在DB2实例目录下的日志文件夹中,找到db2diag.log文件进行查看。 - 问题:如何处理错误和异常? - 解答:根据错误代码和描述,查阅官方文档或在线社区寻找解决方案,必要...

    Linux下db2常用命令总结

    - `db2 rollforward database <数据库名> to end of logs using <备份路径>`:日志滚动恢复。 7. **性能监控** - `db2pd -db <数据库名> -sqlmon`:查看SQL监控。 - `db2top`:实时监控数据库性能。 8. **问题...

    linux db2双机问题解决方法

    ### Linux DB2双机问题解决... - 使用 `chmod db2inst1:db2iadm1 -R /backup/db2log` 更改备份日志文件权限。 通过以上步骤,可以在Linux环境下有效地解决DB2双机配置中出现的各种问题,确保系统的稳定性和可靠性。

    db2死锁问题分析及解决方案

    ### DB2死锁问题分析及解决方案 #### 一、引言 在数据库管理与维护过程中,死锁问题是一个常见的挑战,特别是在使用IBM DB2这样的大型关系型数据库管理系统时。本文将详细探讨DB2中死锁问题的分析方法及有效的解决...

    DB2数据库归档日志的管理方案简介

    DB2数据库归档日志管理方案的核心在于有效地管理和存储数据库的日志文件,以确保数据的安全性和可恢复性。日志文件对于数据库的前滚恢复至关重要,尤其是在LOGRETAIN配置为ON的情况下,日志不会被自动删除,而是积累...

    DB2系统管理日志管理.pdf

    在DB2系统管理中,日志管理是非常关键的一部分,它涉及到数据的可靠性、一致性以及故障恢复。本文将深入探讨DB2的日志管理以及与之相关的系统管理知识。 首先,我们要了解DB2的不同版本。在DB2中,有两个主要版本:...

    DB2错误日志

    DB2错误日志中记录的信息包含了各种错误代码、状态码以及具体的错误描述,这些信息对于理解和解决DB2中的问题至关重要。 #### SQLCODE与SQLSTATE 在DB2错误日志中,SQLCODE和SQLSTATE是最常见的两个用于标识错误的...

    DB2问题诊断方法探讨

    DB2提供了丰富的工具和日志资源,帮助诊断并解决可能出现的问题。以下是一些关键的DB2问题诊断工具和方法: 1. **管理通知日志(Management Notifications Log)**: 在Unix/Linux环境下,这个日志文件以实例名为...

Global site tag (gtag.js) - Google Analytics