zoukankan      html  css  js  c++  java
  • GoldenGate如何修改抽取进程的读取点?


         在GoldenGate的运维过程中,经常会因为某些原因,需要修改源端抽取进程的读取点,比如从指定时间开始解析日志。 操作命令如下:
    GGSCI>alter extract ex2, begin 2020-04-22 10:00:00
    以上命令即可将抽取进程的读取点改到2020.4.22 10点整,OGG会捕获这个时间之后启动的事务。
         当然,上面语句能否修改成功,需要确认生产源库的日志文件是否存在,如果修改的读取点是很早之间,有可能归档日志已经被删除,则抽取进程会提示找不到日志文件而报错。

        以上命令针对传统抽取进程,在日志文件具备的情况下是可以走通的。那么从OGG 11.2之后开始出现的集成抽取,能否也可以按相同的方式执行呢?答案是肯定的,但有一些限制条件,而且操作命令比针对传统抽取的修改更复杂。如果只是简单采用上面的语句修改读取时间点,事实上是不会生效,因为集成抽取的读取时间点存储在系统表里,只是修改抽取进程的检查点文件是不行的。针对集成抽取的读取时间点修改,正确的姿势是:

    1. 先查证系统上最早的能读取的SCN
    2. 根据SCN查证当时的时间点
    3. 根据SCN重新注册抽取进程
    4. 根据当时时间点,修改抽取进程的begin时间

    下面为详细的操作过程
    步骤1,系统允许的最早能读取的SCN
    SQL>col scn for 99999999999999999999
    SQL>SELECT first_change# scn FROM gv$archived_log WHERE dictionary_begin = 'YES' AND standby_dest = 'NO' AND name IS NOT NULL AND status = 'A';


    9084298460

    步骤2,基于SCN查询当时的时间点
    SQL>SELECT SCN_TO_TIMESTAMP(89084298460) FROM DUAL;


    2020-04-22 22.21.45

    根据上述返回的结果,能修改的读取时间,不能早于2020-04-22 22.21.45
    否则修改读取点时会提示如下错误:
    2020-04-23 12:30:38  ERROR   OGG-02085  The logmining server failed to locate a dictionary at scn 89,079,565,000.

    步骤3,重新注册
    register extract exora database container(pdb1) scn 89084298460

    步骤4,修改begin时间
    alter exora begin 2020-04-22 22.21.45

    经过以上步骤,即可修改集成抽取的读取点。

        需要注意的是,在生产环境上,在未确认能修改的最早读取点之前,不要轻易stop抽取进程和unregister,除非已经做了读取点和日志备份,否则在重新register时,可能会无法从停止点继续解析日志,从而造成漏数。

  • 相关阅读:
    Kafka.net使用编程入门(三)
    Kafka.net使用编程入门(一)
    在linux机器上面安装anaconda和相关软件
    textrank的方法,大概懂了
    中文分词库及NLP介绍,jieba,gensim的一些介绍
    排序相关指标
    阿里NLP总监分享-NLP技术的应用与思考
    我一直跑的分类LSTM模型原来是这一个,新闻分类网络
    Vue.js@2.6.10更新内置错误处机制,Fundebug同步支持相应错误监控
    掌握 Async/Await
  • 原文地址:https://www.cnblogs.com/margiex/p/12868240.html
Copyright © 2011-2022 走看看