再次遇到OGG 异常:

归档丢失,OGG 不能找到需要的归档文件.

该表完整expdp 导出评估为 110G,了解到只有插入操作,所以只把归档丢失期间的数据补到目标端就好。

1. 清理目标端 2019/07/11 18:00 之后数据

  1. --目标端
    SQL>
    select count(1) from table1 where GEN_TIME>=to_date('20190711 18:00:00','YYYYMMDD HH24:MI:SS');
    delete from table1 where GEN_TIME>=to_date('20190711 18:00:00','YYYYMMDD HH24:MI:SS');
    COMMIT;

2. 完成2019/07/11 18:00 之后数据的补充

  • 查询SCN

    1. select to_char(current_scn) from v$database; --16253916840
  • 导出数据

    1. DATE=`date +'%Y%m%d'`
      expdp userid=source/pass directory=expdir tables=table1 QUERY=table1:\"where GEN_TIME\>=to_date\(\'20190711 18:00:00\',\'YYYYMMDD HH24:MI:SS\'\)\" filesize=10G dumpfile=initogg$DATE%U.dmp logfile=initogg$DATE.log cluster=n FLASHBACK_SCN=16253916840
  • SCP 到目标端

    1. scp initogg$DATE*.dmp ogg@target:/expdir
  • 目标端导入

    1. DATE=`date +'%Y%m%d'`
      impdp target/pass directory=expdir remap_schema=source:target dumpfile=initogg$DATE%U.dmp logfile=impdp_initogg$DATE.log table_exists_action=append
  • 验证数据

    1. --source
      select count1 from table1 as of scn 16253916840;
      --target
      select count1 from table1;

    数据一致,该SCN后的数据通过OGG同步即可。

3. Source 端OGG 进程处理

  • Extract 进程处理

    1. GGSCI> ALTER EXTRACT EXT1 ,ETROLLOVER
      GGSCI> info exttrail *
            Extract Trail: /ogg/dirdat/ra
                  Extract: DP1
                    Seqno: 2900
                      RBA: 15694
                File Size: 100M
            Extract Trail: ./dirdat/la
                  Extract: EXT1
                    Seqno: 2911 #注意这里新的Seqno 和 RBA
                      RBA: 0 #下面Dump进程用到
                File Size: 100M
      #9点到现在归档是连续的,从今天9点的归档开始抽取,前面丢失的不再需要
      GGSCI> ALTER EXTRACT EXT1 ,BEGIN 09:00
      GGSCI> START EXT1
      GGSCI> INFO EXTTRAIL *
            Extract Trail: /ogg/dirdat/ra
                  Extract: DP1
                    Seqno: 2900
                      RBA: 15694
                File Size: 100M
            Extract Trail: ./dirdat/la
                  Extract: EXT1
                    Seqno: 2911
                      RBA: 19070157 #RBA变更,已有数据被抽取到trail文件
                File Size: 100M
  • DB 进程处理

    1. GGSCI> info DP1
      EXTRACT    DP1  Last Started 2019-07-13 14:57   Status STOPPED
      Checkpoint Lag       00:00:00 (updated 17:00:23 ago)
      Log Read Checkpoint  File ./dirdat/la002910 #使用的旧的trail文件
                          2019-07-11 20:39:24.000000  RBA 31497286
      GGSCI> ALTER EXTRACT DP1, EXTSEQNO 2911, EXTRBA 0 #切换到Extract使用的新文件
      GGSCI> info DP1
      EXTRACT    DP1  Initialized   2019-07-17 11:11   Status STOPPED
      Checkpoint Lag       00:00:00 (updated 00:00:06 ago)
      Log Read Checkpoint  File ./dirdat/la002911
                          First Record  RBA 0
      #启动Dump进程
      GGSCI> START DP1
      GGSCI> INFO DP1
      EXTRACT    DP1  Last Started 2019-07-17 11:12   Status RUNNING
      Checkpoint Lag       00:00:00 (updated 00:00:08 ago)
      Log Read Checkpoint  File ./dirdat/la002911
                          2019-07-17 11:12:50.000000  RBA 19537151 #需等一会儿才有变化
      GGSCI> INFO EXTTRAIL *
            Extract Trail: /ogg/dirdat/ra
                  Extract: DP1
                    Seqno: 2901 #Dump进程启动后自动切换了远端trail文件
                      RBA: 19581384
                File Size: 100M
            Extract Trail: ./dirdat/la
                  Extract: EXT1
                    Seqno: 2911
                      RBA: 19601526
                File Size: 100M
  • 查看Source 端状态都已正常

    1. GGSCI> INFO ALL #相关进程都处于Running 状态,且无延迟

4. Target 端OGG 进程处理

基于SCN 启动Replicat 进程

  1. GGSCI> info RP1
    REPLICAT   RP1  Last Started 2019-07-12 06:00   Status STOPPED
    Checkpoint Lag       00:00:00 (updated 17:03:31 ago)
    Log Read Checkpoint  File ./dirdat/ra002900 #当前还在使用2900
                        2019-07-11 20:39:24.096454  RBA 15694
    #从指定SCN 开始应用
    GGSCI> START REPLICAT RP1, ATCSN 16253916840
    GGSCI> info RP1
    REPLICAT   RP1  Last Started 2019-07-17 11:15   Status RUNNING
    Checkpoint Lag       00:00:00 (updated 00:00:01 ago)
    Log Read Checkpoint  File ./dirdat/ra002901 #已经自动切换到了2901
                        2019-07-17 11:15:20.967710  RBA 19923873

Replicat 在2900没找到需要的SCN,在2901里才能找到,所以自动完成了切换

5. 数据验证

  1. --source
    select count1 from table1;
    --target
    select count1 from table1;

【故障处理】-OGG 丢失归档20190717的更多相关文章

  1. 【OGG 故障处理】 丢失归档恢复

    OGG 有两天由于某种原因没有启动,而这段时间的备份文件缺失了一部分归档.恢复过程记录如下: GGSCI (xxxx) > info all Program Status Group Lag a ...

  2. dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复

    dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复 环境: OS: CentOS 6.5 DB: Oracle 10.2.0.5 1.主备库环境 主库: SQL> sel ...

  3. dataguard丢失归档日志处理

    检查alert日志发现报错如下 Wed Mar 27 15:40:30 2019Managed Standby Recovery not using Real Time ApplyParallel M ...

  4. Oracle DataGuard主库丢失归档日志后备库的RMAN增量恢复一例

    第一部分  问题描述和环境状态确认 ----1. 问题场景 Oracle DataGuard主库丢失archivelog,如何不重建备库完成同步? 在Oracle DataGuard主从同步过程中可能 ...

  5. OGG学习笔记03-单向复制简单故障处理

    OGG学习笔记03-单向复制简单故障处理 环境:参考:OGG学习笔记02-单向复制配置实例 实验目的:了解OGG简单故障的基本处理思路. 1. 故障现象 故障现象:启动OGG源端的extract进程, ...

  6. Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

    本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http: ...

  7. OGG学习笔记03

    OGG学习笔记03-单向复制简单故障处理 环境:参考:OGG学习笔记02-单向复制配置实例实验目的:了解OGG简单故障的基本处理思路. 1. 故障现象故障现象:启动OGG源端的extract进程,da ...

  8. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  9. OGG学习笔记05-OGG的版本

    刚接触OGG的时候,很容易被众多的版本搞晕,虽然官方有提供各版本对应认证OS和DB的表格. 个人认为一个比较简单的方式,是直接去edelivery.oracle.com下载OGG,选定一个大版本后,这 ...

随机推荐

  1. T-SQL_常用内置函数和操作

    作者:icyjiang 推荐:LinkEdu SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数 ...

  2. redis和memcache对比

    1.性能方面:没有必要过多的关心性能,因为二者的性能都已经足够高了.由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一个核上Redis在存储小数据时比Memcached ...

  3. idea的alt+enter可以从菜单点吗

    在idea中,当java某个类的包没有引入的时候,可以通过alt+enter来实现包的引入,那么可以通过菜单按钮,或者右键的方式点出来吗? 我们知道eclipse如果某个类为止,放在这个报错的类上,e ...

  4. 使用sql语句创建和删除约束示例代码

    使用sql语句创建和删除约束  约束类型 主键约束(Primary Key constraint) --:要求主键列数据唯一,并且不允许为空.  唯一约束(Unique constraint) --: ...

  5. 进程间通信之pipe

    实现数据传递 两个进程之间通信 多个进程之间通信,会导致数据不安全,需要加锁,示例 分类 无名管道:父子间进程通信 有名管道:父子间进程通信:任意两个进程之间通信 创建管道方法 os.mkfifo(p ...

  6. linux系统 重启盘符错乱问题

    linux磁盘重启乱序问题处理 最近到客户那去巡检时,客户提到一个问题,他们的rac在重启的时候,原来的sda1.sdb1.sdc1会对应变成sdd1.sde1.sdf1,由于他们使用的是盘符来绑定裸 ...

  7. 【GStreamer开发】GStreamer基础教程07——多线程和Pad的有效性

    目标 GStreamer会自动处理多线程这部分,但在有些情况下,你需要手动对线程做解耦.本教程会教你怎样才能做到这一点,另外也展示了Pad的有效性.主要内容包括: 如何针对部分的pipeline建立一 ...

  8. LeetCode 637. 二叉树的层平均值(Average of Levels in Binary Tree)

    637. 二叉树的层平均值 637. Average of Levels in Binary Tree LeetCode637. Average of Levels in Binary Tree 题目 ...

  9. Asp.Net Core 调用第三方Open API查询物流数据

    在我们的业务中不可避免要与第三方的系统进行交互,调用他们提供的API来获取相应的数据,那么对于这样的情况该怎样进行处理呢?下面就结合自己对接跨越速运接口来获取一个发运单完整的物流信息为例来说明如何在A ...

  10. python基础学习(十一)

    22.类 # 类 class # 实例 实体 instance class Student: # 空语句 保持结构的完整性 pass jack = Student() jack.name = &quo ...