DB2数据库的日志文件管理

DB2的日志模式

1.1循环日志

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

1.2 归档日志

  在归档日志模式中,redo log条目将写入主要日志文件。但是,与循环日志不同,这些日志文件永远都不可重用。当存储于某个日志文件中的所有记录都不再需要用于恢复时,该日志文件将被标记为非活动而不是可重用。这意味着它的内容永远都不会被覆盖。当第一个主要日志文件变满时,系统将分配一个新的日志文件,这样主要日志文件的配置数量(LOGPRIMARY数据库参数)将一直可用。

  与单个事务相关的所有条目必须在活动日志空间中保持一致。如果长时间运行的事务所需要的日志空间大于主要日志文件可以提供的空间,则可能会分配并使用次要日志文件。在归档日志模式中,通过结合使用数据库备份映像和日志文件,我们可以将数据库恢复到具体的时间点。有关此流程的详细描述请参见下文。

设置了归档模式后,数据库将支持前滚恢复。此时,系统中将会存在三种类型的日志文件:

  活动日志:该日志包含尚未提交或回滚的事务单元的相关信息,以及已提交但尚未写入数据库文件的事务的信息。

  联机存档日志:活动日志中所有改动对正常处理已不需要,即该日志中所记录的事务都已提交并写入数据库文件时,该活动日志转换为联机存档日志。称之为联机,是由于它们与活动日志存放在同一个目录下。

  脱机存档日志:将联机存档日志从活动日志目录下Copy到另外的地方存档,就称为脱机存档日志。这些日志可能在数据库前滚恢复的时候仍然需要。

  (所谓联机归档日志,就是归档日志文件和活动日志文件同在一个目录下;而离线归档日志,则是归档日志与活动日志分开存放)

日志模式修改:https://www.cnblogs.com/net2012/archive/2013/02/04/2891502.html

管理数据库日志的工作可以手工完成(即将联机存档日志手工拷贝到某个archive目录),也可由编写USEREXIT程序自动维护。
 
手工管理数据库LOG

既然 DB2 UDB 中用户出口程序的目的是将数据库日志复制到归档目录中,您最终将在活动日志目录(缺省是 SQLOGDIR)中得到重复的日志文件。您可能考虑除去这些重复的联机归档日志以释放文件系统空间。在从数据库目录中除去这些日志之前,要十分细心地验证是否已经将它们成功地复制到归档目录中。还必须确保数据库管理器进行崩溃恢复时不再需要它们。要确定活动日志目录中哪些日志文件不为正常处理所需,可用以下命令检查数据库配置:

db2 "get db cfg for sample"

该命令的数据库配置输出将包括第一个活动日志文件,例如:

First active log file = S000009.LOG

上面输出中所示的日志文件 S000009.LOG是数据库的当前活动日志。任何小于该编号的日志文件都被认为是联机归档日志。

下面是一个示例:

在下面的方案中,活动日志目录中有日志文件 S000000.LOG - S000009.LOG,归档日志目录中有 S000000.LOG - S000008.LOG。因为 S000009.LOG是第一个活动日志文件,所以,可以从活动日志目录中删除 S000001.LOG - S000008.LOG以释放磁盘空间。必须将 S000009.LOG文件留在活动日志目录中,因为当前事务仍然在使用它。

也可以检查数据库历史文件,以查看活动日志目录中不再需要哪些日志文件。以下命令将列出数据库备份信息:

db2 "list history backup all for database sample"

下面是该命令的输出示例:

              List History File for sample
Number of matching file entries = 4
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
-- --- ------------------ ---- --- ------------ ------------
B D 20030416162026001 F D S0000010.LOG S0000014.LOG
------------------------------------------------------------
Contains 2 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
------------------------------------------------------------

在上面的输出中,最早的日志将表明:需要 S0000010.LOG及其之后的任何日志。可以安全地删除
S00000010.LOG之前的任何日志。再次提醒,在从活动日志目录中删除日志文件之前,验证在活动日志目录中存在这些日志文件的副本是非常重要的。

尽管可以从活动日志目录手工删除日志文件,但是除去联机归档日志文件的更安全方法是通过 prune
logfile
命令。可以使用该命令来删除活动日志目录中的日志文件。在下面的示例中,以下命令将删除日志文件
S000000.LOG - S000008.LOG

db2 "prune logfile prior to S000009.LOG"

注:根据您的恢复策略,在有些情况下前面的前滚操作可能会在数据库上执行。归档目录中旧的日志文件可能会被具有相同名称的新日志文件覆盖,从而会阻止您使用旧日志文件对数据库进行时间点恢复。用户出口程序的程序员需要考虑这种情况,这一点非常重要

程序工具自动管理(未验证)
由于DB2对所有平台都提供了相应的USEREXIT示例程序,而且非常易于修改和使用,所以IBM建议用户使用USEREXIT程序来管理日志文件。

使用USEREXIT程序的方法

要使用User exit program自动化log文件的archiving和retrieval过程:

1. 设置database cfg参数logarchmeth1 为USEREXIT

connect to sample
update db cfg using logarchmeth1 USEREXIT
connect reset

2. 创建user exit programs。该程序必须是一个名为db2uext2的可执行文件。DB2在各种平台上都提供了User Exit的示例程序,用户可以通过直接修改该样本文件来实现自己的user exit程序。

在UNIX(R) based的系统中,该程序存放在sqllib/samples/c目录下.

There are four sample user exit programs for UNIX based systems:

• db2uext2.ctsm

This sample uses Tivoli(R) Storage Manager to archive and retrieve database log files.

• db2uext2.ctape

This sample uses tape media to archive and retrieve database log files .

• db2uext2.cdisk

This sample uses the operating system COPY command and disk media to archive and retrieve database log files.

• db2uxt2.cxbsa

This sample works with the XBSA Draft 0.8 published by the X/Open group. It can be used to archive and retrieve database log files. This sample is only supported on AIX.

• 在Windows(R) 系统中,该文件存放在sqllib/samples/c目录下。

There are two sample user exit programs for Windows operating systems:

• db2uext2.ctsm

This sample uses Tivoli Storage Manager to archive and retrieve database log files.

• db2uext2.cdisk

This sample uses the operating system COPY command and disk media to archive and retrieve database log files.

3. 配置该示例程序,指定要将日志文件Archive到哪个系统目录中(在windows平台下,程序中默认为c:\mylogs)。

#define ARCHIVE_PATH "c:\\mylogs\\"
#define RETRIEVE_PATH "c:\\mylogs\\"
#define AUDIT_ERROR_PATH "c:\\mylogs\\"

4. 编译该C文件

cl db2uext2.c

5. 拷贝db2uext2.exe到/SQLLIB/BIN目录下

6. 在db2cmd中键入archive log for db sample user db2admin using duan1980命令强制执行log日志归档任务。查看c:\mylogs目录下有无日志文件归档,验证是否成功。
 

 
参考原文;  https://blog.csdn.net/woshilipengfei/article/details/83327416
https://blog.csdn.net/xiyuan1999/article/details/7898683
 
 

DB2数据库的日志文件管理的更多相关文章

  1. Db2数据库的备份和恢复

    DB2数据库备份与恢复 1.    备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 C:\Documents and Settings\Administra ...

  2. Oracle日志文件管理与查看

    Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...

  3. DB2数据库中提高INSERT性能详解

        分类: Linux INSERT 处理过程概述 首先让我们快速地看看插入一行时的处理步骤.这些步骤中的每一步都有优化的潜力,对此我们在后面会一一讨论. 在客户机准备 语句.对于动态 SQL,在 ...

  4. DB2数据库常用基本操作命令

    点击开始菜单-->所有程序-->IBM-->DB2-->DB2COPY1-->命令行工具-->命令窗口一.DB2实例操作1.查看DB2数据库的版本及安装目录 E:\ ...

  5. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  6. (转)Db2 数据库性能优化中,十个共性问题及难点的处理经验

    (转)https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650629396&idx=1&sn=3ec17927b3d ...

  7. DB2 的事务日志

    1.     DB2事务日志:DB2的日志分主日志和次日志,主日志是在数据库第一次被连接和激活时创建的,而次日志是当写满所有的主日志后,才动态分配次日志,主日志和次日志受设置个数的制约,当配置的所有主 ...

  8. DB2 数据库常用操作【持续更新】

    好久没写博客了. 上次还是两个月前. 1. 连接数据库 db2 connect to dbName user userName using password 2. 查看表结构 db2 "de ...

  9. 【第六章】MySQL日志文件管理

    1.日志文件管理概述: 配置文件:/etc/my.cnf 作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况.SQL语句的执行情况以及错误信息告示. 分类:MySQL日志文件分为4种:错 ...

随机推荐

  1. 2017.9.21 HTML学习总结---多媒体播放系统设计

    1.题目:整个页面被划分三个子窗口,上面窗口为页面功能提示区, 下左部分为不同类型播放的功能选项,下右部分为播放系统显示播放信息窗口. (1)网页设计框架: <html> <head ...

  2. 第17章 EXTI—外部中断/事件控制器—零死角玩转STM32-F429系列

    第17章     EXTI—外部中断/事件控制器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...

  3. ADO.net中常用的对象有哪些?

    ADO.net中常用的对象有哪些?分别描述一下. 答:Connection 数据库连接对像 Command 数据库命令 DataReader 数据读取器 DataSet 数据集 DataReader与 ...

  4. SpringBoot非官方教程 | 第二十五篇:2小时学会springboot

    转载请标明出处: http://blog.csdn.net/forezp/article/details/61472783 本文出自方志朋的博客 一.什么是spring boot Takes an o ...

  5. 11-UITableView

    UITableView 掌握 设置UITableView的dataSource.delegate UITableView多组数据和单组数据的展示 UITableViewCell的常见属性 UITabl ...

  6. js加减乘除精确计算

    Javascript精确计算时的bug JS无法进行精确计算的bug 在做CRM,二代审核需求审核详情页面时.需要按比例(后端传类似0.8的小数)把用户输入的数字显示在不同的地方. 在做dubheIn ...

  7. BZOJ1854: [Scoi2010]游戏(二分图匹配)

    题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...

  8. lincode 680 Split String

    Split String    描述 笔记 数据 评测 Give a string, you can choose to split the string after one character or ...

  9. IDEA的下载安装和激活

    1.下载网站http://www.jetbrains.com/ 2. 3. 4.注意要下载Ultimate版本 5.安装 下载完成后直接下一步,傻瓜式安装 6.激活,在图片位置输入激活码即可 !!!! ...

  10. eCharts.js使用心得

    最近刚刚做了一个项目,需求是使用eCharts实现实时监控,可以动态的增加和删除数据,可以全屏展示,趁着现在还没忘干净,整理一下使用过程中出现的问题和经验.可能有分析的不到位的地方,不喜勿喷! 一.图 ...