• X GoldenGate自动归档discard文件



    1.背景
    GoldenGate重要的日志文件有2个:ggserr.log和discard文件。

    ggserr.log记录重要的日志,如进程启停、进程失败abend及响应ggsci命令的响应输出。
    discard文件,是丢弃文件,在备机端,同步环境没有问题的前提下,在执行具体某个sql时失败,会把执行失败的sql放入到discard文件。
    由此看出,discard文件很重要,是运维发现哪些表主从不一致的重要线索。

    2.当前环境的问题


    当前设置如下:

    discardfile ./dirrpt/rept01.dsc , purge,megabytes 100


    会出现2个问题:

    discard文件太小:只有200M,持续运行N天后,会满。
    discard文件会被覆盖:尤其重启replicat进程后,文件会被清空。

    3.解决方法
    修改控制参数,相关参数包括:

    3.1.追加还是清空
    指定discard文件名时一起设定为append追加。并调整最大大小。

    Syntax DISCARDFILE <file name>
    [, APPEND | PURGE]
    [, MAXBYTES <n> | MEGABYTES <n>]

    同时,如果文件大小超限后,进程就会退出,顾大小尽量设大。
    To set an upper limit for the size of the file, use either the MAXBYTESor MEGABYTESoption. If the specified size is exceeded, the process will abend.

    3.2. 定期归档
    使用参数:discardrollover
    本参数指定个时点,当到达时点时,自动归档discard文件。归档文件的格式是,<group name><n>.<extension>。

    3.3.修改后
    discardfile ./dirrpt/rept01.dsc , append,megabytes 2048
    discardrollover at 05:30

    经过观察,

    确实在每天的05:30,自动创建个新的discard文件。
    最新的归档总是从0号开始。假设现在已有2个归档文件,rept010.dsc ept011.dsc;新归档后,已有的更名为rept010.dsc->rept011.dsc,rept011.dsc->rept012.dsc,
    新的归档文件名为rept010.dec。
    发现一个问题,虽然新生成了文件,但文件整个生命周期内,没有任何数据。
    对比之前的内容,至少也该有类似trail文件切换的系想你;还有,中间有过4天数据不同步,肯定有无法更新、或删除的记录才对。

    具体看handlecollisions参数介绍

  • 相关阅读:
    Mac上安装Git
    原型对象和原型链
    ES6入门
    一边宽度固定,一边宽度自适应
    15种css居中方式
    阿里CDN核心技术解密
    尽量用const,enum,inline代替define
    Nginx安装
    百度笔试题:malloc/free与new/delete的区别(转)
    C++内存管理(转)
  • 原文地址:https://www.cnblogs.com/chendian0/p/14209809.html
Copyright © 2020-2023  润新知