免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7178 | 回复: 16
打印 上一主题 下一主题

数据库归档日志管理方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-15 23:55 |只看该作者 |倒序浏览
数据库归档日志管理方案

需求描述:
由于使用了LOGRETAIN=ON数据库配置,所以数据库日志文件将不会被数据库从活动日志目录中自动删除或循环利用,活动日志目录中的日志文件将会越来越多,所以需要对该目录下的日志文件进行归档。
问题分析
将LOGRETAIN设置为ON后,数据库将支持前滚恢复。此时,系统中将会存在三种类型的日志文件:
活动日志:该日志包含尚未提交或回滚的事务单元的相关信息,以及已提交但尚未写入数据库文件的事务的信息。
联机存档日志:活动日志中所有改动对正常处理已不需要,即该日志中所记录的事务都已提交并写入数据库文件时,该活动日志转换为联机存档日志。称之为联机,是由于它们与活动日志存放在同一个目录下。
脱机存档日志:将联机存档日志从活动日志目录下Copy到另外的地方存档,就称为脱机存档日志。这些日志可能在数据库前滚恢复的时候仍然需要。
管理数据库日志的工作可以手工完成(即将联机存档日志手工拷贝到某个archive目录),也可由编写USEREXIT程序自动维护。
        由于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目录下有无日志文件归档,验证是否成功。

论坛徽章:
0
2 [报告]
发表于 2005-07-18 10:20 |只看该作者

数据库归档日志管理方案

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

------------------------>;这个是在Windows环境下的吧,UNIX环境下应该在/sqllib/adm下。

论坛徽章:
0
3 [报告]
发表于 2005-07-18 11:09 |只看该作者

数据库归档日志管理方案

原帖由 "007linxx" 发表:
5. 拷贝db2uext2.exe到/SQLLIB/BIN目录下。

------------------------>;这个是在Windows环境下的吧,UNIX环境下应该在/sqllib/adm下。


  

看得蛮仔细!

你是对的!

论坛徽章:
0
4 [报告]
发表于 2005-07-19 22:08 |只看该作者

数据库归档日志管理方案

谢谢,谢谢!

论坛徽章:
0
5 [报告]
发表于 2005-07-20 10:13 |只看该作者

数据库归档日志管理方案

别忘了unix平台上,在ARCHIVE_PATH路径下手工创建目录(数据库名),然后进入再创建节点目录。否则,归档不成功的。

论坛徽章:
0
6 [报告]
发表于 2005-07-26 10:08 |只看该作者

数据库归档日志管理方案

补充一下,在DB2 V8.2中,不需要用户自己编译uext2程序了.直接在logarchmeth1中写上"Disk:/usrdata/db2backup/"这样的路径就OK了.

论坛徽章:
0
7 [报告]
发表于 2005-07-26 13:45 |只看该作者

数据库归档日志管理方案

我试了,好像不行。这个参数指定一个路径,命令执行不成功。

论坛徽章:
0
8 [报告]
发表于 2005-07-26 14:44 |只看该作者

数据库归档日志管理方案

[quote]原帖由 "lizhuo"]我试了,好像不行。这个参数指定一个路径,命令执行不成功。[/quote 发表:


db2 update db cfg for <dbname>; using logarchmeth1 'Disk:/..../...'
不成功? 这个路径是需要一个已经存在的目录
我这里都没有任何问题啊

论坛徽章:
0
9 [报告]
发表于 2005-07-26 15:19 |只看该作者

数据库归档日志管理方案

我是在linux平台上做的,我先创建目录,然后修改这个参数,执行不成功。你是在win平台上吧。

论坛徽章:
0
10 [报告]
发表于 2005-07-26 15:27 |只看该作者

数据库归档日志管理方案

我在win平台上实也没有成功,执行下面命令出错:
C:\Documents and Settings\db2admin>;db2 update db cfg using LOGARCHMETH1 'c:\mirror\'
SQL5099N  数据库配置参数 "LOGARCHMETH1" 指示的值 "C" 无效,原因码为 "16"。
SQLSTATE=08004
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP