免费注册 查看新帖 |

Chinaunix

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

DB2 archive log的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-28 17:51 |只看该作者 |倒序浏览
DB2 archive log有几个问题困惑很久了:
操作系统:windows
版本:DB2 V8.1
相关参数:
        DB name: SAMPLE
        Path to log files: C:\DB2\NODE0000\SQL00001\SQLOGDIR
        LOGRETAIN = RECOVERY
        LOGARCHMETH1 = DISK:\DB2ArchiveLog
            

问题1:DB2在把log归档到D:\DB2ArchiveLog(这个路径该称作脱机归档日志路经?)的时候,并不是按序号归档的,例如:被归档的是S0000009.LOG -- S0000020.LOG,而S00000001.LOG -- S00000008.LOG, S0000021.LOG -- S0000025.LOG还在C:\DB2\NODE0000\SQL00001\SQLOGDIR下 (这个路径该叫做联机日志路经?),这里面规律是什么?

问题2:不知在什么时候D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000下,除了原有的C0000000外,又多出一个C0000004,里面也有归档的日志,并且日志号有与C0000000中重复的,我查看了db2diag.log,发现在不断的归档中,有归档到C0000000的,间歇还有归档到C0000004的,为什么一个log号会有两个不同大小的log放在两个不同的目录下呢?

[ 本帖最后由 hannary 于 2007-12-29 10:35 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-12-29 14:58 |只看该作者
问题一:
你配置LOGARCHMETH1之后的log会自动归档,之前的并不会理会.
也就是S00000001.LOG -- S00000008.LOG是你配置LOGARCHMETH1之前生成的log
S0000021.LOG -- S0000025.LOG是还不需要归档的日志,自然不会归档.

问题二:
目前没见过这种情况.能把db2diag.log发上来看看?

论坛徽章:
0
3 [报告]
发表于 2007-12-29 17:26 |只看该作者
问题一:查看db2diag.log,S0000000.LOG是被归档到D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000000的,但是不知道为什么还在C:\DB2\NODE0000\SQL00001\SQLOGDIR路径下有,而C:\DB2\NODE0000\SQL00001\SQLOGDIR\C0000000下没有;如果LOGARCHMETH1配置之前的log(S00000001.LOG -- S00000008.LOG)不会被归档的话,它们是联机归档日志?还是脱机?C:\DB2\NODE0000\SQL00001\SQLOGDIR\C0000000下的log都是联机日志吗(活动日志和联机归档日志)?

问题二:db2diag.log已经100多M了,因为是测试库,里面信息很混乱,从9月份开始做backup/restore这块,其间drop过一次库,然后restore,restore出问题,重新建的sample,C0000004的出现应该与restore有关,restore以后的几个log都放到了C000004下。我想重新做一个库,不过可能需要折腾满久才会出现C0000004什么的。。。。给点建议哈

论坛徽章:
0
4 [报告]
发表于 2007-12-30 10:18 |只看该作者
之前由于工作忙的有点乱 呵呵 其实你的这两个问题不复杂
问题一:
在你的例子当中通常我们说C:\DB2\NODE0000\SQL00001\SQLOGDIR\C0000000下存放的是联机日志或者活动日志
D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000000下存放的是归档日志
不过DB2里的日志管理方式有些地方需要注意.
DB2里LOG是一满就会被送到ARCHIVED LOG PATH,DB2会尽快的从联机日志归档到非易失的存储,所以当log还是active的时候,可能已经被归档了

如果我们drop掉sample,然后重建sample,在配置LOGARCHMETH1的时候我们指定的路径跟之前库的路径相同,之前的log文件会被覆盖.
所以你看一下D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000000下的日志创建时间,不要只看日志序号,就可以确认是否是同一个数据库产生的log
同时再考虑我上面说的你什么时候分别对两个库配置的LOGARCHMETH1,应该问题就比较清楚了

问题二:
C00*指的是不同的log chain.
由于你恢复并激活了sample,log chain自然不同.恢复之后的log被归档到新的路径下即是你的C000004

问题总结如下:
由于你在整个过程中LOGARCHMETH1指定的都是同一个路径,所以日志归档是下面的过程
1 创建sample库日志被归档到D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000000下
2 restore sample后日志被归档到D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000004下(其间你应该不只restore了一次)
3 创建新sample库日志被归档到D:\DB2ArchiveLog\DB2\SAMPLE\NODE0000\C0000000下 在使用过程中如果有以前存在的序号相同的log则会覆盖

论坛徽章:
0
5 [报告]
发表于 2008-01-02 09:56 |只看该作者
多谢
看什么时间drop/create/restore/configure 库,只能从db2diag.log里面找了吧,有什么方便的方法处理db2diag.log么,还是地毯式搜索?

论坛徽章:
0
6 [报告]
发表于 2008-01-08 10:23 |只看该作者
有db2diag -h 看看 找你需要的日志级别信息。可以指定只看error的

论坛徽章:
0
7 [报告]
发表于 2008-01-08 11:59 |只看该作者
原帖由 jansonwang 于 2008-1-8 10:23 发表
有db2diag -h 看看 找你需要的日志级别信息。可以指定只看error的

Thanks a lot
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP