zoukankan      html  css  js  c++  java
  • 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参数介绍

  • 相关阅读:
    ansible 批量在远程主机上执行命令
    SQLAlchemy
    operator, itertools
    mongodb基础语法
    django model Meta选项
    __getattr__,settr
    django的contenttype表
    time和datetime和tzinfo
    全局钩子的改名
    dom中文字居中
  • 原文地址:https://www.cnblogs.com/chendian0/p/14209809.html
Copyright © 2011-2022 走看看