`
starbhhc
  • 浏览: 654663 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

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数据库开归档日志功能.doc

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

    DB2_数据库日志管理.doc

    - DB2支持循环日志和归档日志模式。循环日志适用于简单的离线备份,而归档日志模式允许在线备份和恢复,更适合高可用性需求。 - 可通过修改`LOGRETENTION`等参数来切换日志模式,归档日志模式下,旧的日志文件会被...

    db2数据库sql语句大全

    数据库的日志保留模式分为循环模式和归档模式。循环模式意味着当日志空间不足时,旧的日志会被覆盖;而归档模式则会将旧日志保存起来,便于日后进行恢复操作。要开启归档模式,可以使用: ```sql db2 update dbcfg ...

    DB2数据库备份与恢复

    - 如果当前使用的是循环日志,则需要先将其改为归档日志模式才能执行联机备份。 ##### 3. 联机备份 - **表空间备份**: 使用`db2 backup tablespace tblspc to directory_or_filename`命令进行表空间级别的备份。 - ...

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

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

    数据库原理实验四_DB2数据库恢复_艾孜尔江·艾尔斯兰著.docx

    `LOGRETAIN`和`USEREXIT`参数控制是否启用归档日志模式。 2. **崩溃恢复**:当数据库的工作单元因意外中断(如电源故障)而未完成提交时,`restartdatabase`命令可用于执行崩溃恢复。若`AUTORESTART`设置为开启,...

    DB2备份错误实验报告

    DB2数据库的日志模式有两种:循环日志(Circular Logging)和归档日志(Archival Logging)。其中,循环日志模式下,当日志文件被写满后,新的日志数据会覆盖旧的日志数据;而在归档日志模式下,旧的日志数据会被...

    DB2 日常维护技巧,第 1 部分

    文章内容涉及了恢复日志文件、日志管理方式、循环日志模式和归档日志模式,以及在删除活动日志文件后没有数据库备份时的应急处理方法。 标签:此部分强调了文章的重点是DB2数据库的日常维护技巧。 DB2数据库的日志...

    双机热备配置

    - **日志循环限制:** HADR不支持循环日志。 - **配置参数复制限制:** HADR不会复制数据库配置参数、共享库、DLLs、UDFs或存储过程。 **3. HADR架构图** - 通常情况下,HADR架构包含一个主数据库和一个或多个...

    db2培训资料备份和恢复

    - **日志路径与归档**:通过`logpath/newlogpath`参数指定活动日志和未来归档日志的存放位置。对于归档日志,可选择在线归档或离线归档,前者包含已提交和外部化事务的信息,后者是从活动日志子目录移动出来的归档。...

    DB2高可用性和灾难恢复-HADR

    - **合理选择日志模式**:根据实际应用场景选择合适的日志模式(如归档模式、循环模式等),平衡性能和数据保护的需求。 - **利用压缩技术**:启用日志压缩功能可以减少网络带宽占用,提高日志传输效率。 - **定期...

    IBM DB2 for Linux, UNIX and Windows 在 SAP 环境中的备份和恢复实践指南

    DB2使用两种类型的日志文件:在线日志文件和归档日志文件。在线日志文件用于记录正在运行的事务,而归档日志文件用于长期保存已提交事务的日志记录。 - **在线日志文件**:这些文件是数据库的一部分,用于记录正在...

    DB2应急手册V1.0.doc

    DB2应急手册V1.0提供了在遇到各种DB2数据库问题时的紧急处理方案。以下是一些关键知识点的详细说明: 1. **删除活动日志文件的处理**:DB2的活动日志文件是数据库运行的关键组件,一旦被删除或存储设备故障,可能...

    无废话DB2备份和恢复-基础篇

    - **循环日志**:日志文件循环使用,支持崩溃恢复和完全恢复,但不支持部分恢复和时间点恢复。 - **归档日志**:非活动日志被归档保存,支持所有类型的恢复。 #### 五、恢复类型 ##### 5.1 崩溃恢复 - **定义**...

    DB2高可用与数据恢复与

    - **DB2 Version 9.5**:本版本为IBM DB2数据库管理系统的一个重要版本,发布于2009年4月,适用于Linux、UNIX和Windows等操作系统。 #### 二、高可用性策略概述 ##### 1. 高可用性通过冗余实现 - **定义**:通过在...

    A Practical Guide to Backup and Recovery of DB2 LUW in SAP Environment

    循环日志在日志空间填满后会自动覆盖旧的日志记录,而归档日志则保存了完整的事务历史,对于灾难恢复尤为关键。合理配置日志文件的大小和数量,以及归档策略,是优化备份与恢复性能、保障数据完整性的基础。 ### ...

    db2_命令给需要的同志

    - 非循环模式(Non-Cyclic Mode):在这种模式下,日志文件一旦写满就不会被覆盖,适用于归档和备份需求较高的场景。 #### 模式转换 - 从非循环模式切换到循环模式:`db2 update dbcfg for <dbname> using ...

    DB2的数据同步经验总结

    对于 UNIX 和 Windows 环境,默认情况下是循环日志记录,因此需要将其更改为归档日志记录。 - **步骤3:注册复制源** - 在创建了 Capture 控制表并为复制启用了数据库之后,将 `DEPARTMENT` 表注册为复制源。 - ...

    domino8.5中如何启动DB2Access服务技术文档

    DB2ACCESS是用于连接Domino和DB2数据库的中间件,使得数据能够在两者之间流畅地交互。 为了确保安全性和权限管理,需要在Windows的计算机管理工具中创建一个名为DBA的新用户,并为其设置一个强密码(例如"a$sk6G7...

Global site tag (gtag.js) - Google Analytics