暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle resetlogs后goldengate如何继续工作

DB说 2019-12-05
902

【背景】

         最近有朋友在群里面咨询oracle resetlogs后,goldengate无法继续抽取日志,如何能够继续工作.

         这个文档在2014年写的,时间过去5年多了,虽然没有走上全职ogg岗位,在日常使用比较多,重新通过公众号发出来.Oracle database resetlogs 之后,sequence 直接从1 开始了,同时resetlogs_id 也变化了.这个goldengate extract 进程一直处理等在状态.查看当前磁盘上可能还存在尚未处理的日志,但是goldengate 就是不动.这个时候如何处理剩下尚未处理的归档同时处理新的resetlogs_id下产生日志了.下面将通过实验展示处理过程.其中包括classic extract 和 integrated extract 2者对于resetlogs_id 的适应性吧.其中integrated extract 可以无缝将resetlogs 之前和之后链接起来,但是classic extract 需要手动干预的.


【测试环境】

Database version:11.2.0.4 文件系统单实例

 Goldengate version:11.2.1.0.5

      


【当前环境】

GGSCI (target-primary) 1> info all

Program    Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT    RUNNING     EXTINT      00:00:00      00:00:08 

EXTRACT    RUNNING     EXTINTED    00:00:10     00:00:03 



 

GGSCI (target-primary) 2> info EXTINT

EXTRACT    EXTINT    Last Started 2014-08-21 11:44   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:08 ago)

Log Read Checkpoint Oracle Redo Logs  --classic extract (默认的)

                    2014-08-21 14:28:01  Seqno 2, RBA7415808

                    SCN 0.7115298 (7115298)

 

 

GGSCI (target-primary) 3> info EXTINTED

EXTRACT   EXTINTED  Last Started 2014-08-2111:06   Status RUNNING

Checkpoint Lag      00:00:10 (updated 00:00:08 ago)

Log Read Checkpoint Oracle Integrated Redo Logs  --integated extract

                     2014-08-21 14:27:58

                    SCN 0.7115297 (7115297)

 

 

【Classic extract integrated extract 差别】

1、  logread checkpoint:后面是否有integrated关键字,有的话就是integrated,否则就是classic

2、  integrated输出没有读到那个sequence,只显示scn,但是classic extract显示sequence同时还有scn.这个机制导致resetlogs之后是否需要手动干预的原因.就是extract依靠equence来顺序读取,但是integrated是按照scn来顺序读取的,其实进过logminer server处理后的结果.

3、如果配置ddl,integrated extract在11.2.0.4 DB开始ddl是采用数据字典方式,而不是基于触发器方式.

4、integrated extract支持数据类型也比classic extract多.以及rac下分布式事务支持

5、Integrated Extract 是GOLDENGATE 11.2 新功能,EXTRACT 直接从logmining server获取lcr信息.

总之2者实现完全不同,集成模式使用oracle流复制接口来与数据库结合更加紧密.

 

【插入数据验证】

目前查看都没有发生变化数据.

GGSCI (target-primary) 18> stats EXTINT total

 

Sending STATS request to EXTRACT EXTINT ...

 

Start of Statistics at 2014-08-21 14:37:05.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mapped operations                                  0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/it:

 

Extracting from OGG.GGS_MARKER to OGG.GGS_MARKER:

 

*** Total statistics since 2014-08-21 14:36:42 ***

 

        No databaseoperations have been performed.

 

End of Statistics.

 

 

GGSCI (target-primary) 19> stats EXTINTED total

 

Sending STATS request to EXTRACT EXTINTED ...

 

No active extraction maps

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mapped operations                                  0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

【插入数据】

SQL> select count(*) from resetlog;

 

  COUNT(*)

----------

        16

 

SQL> insert into resetlog select * from resetlog;

 

16 rows created.

 

SQL> commit;

 

Commit complete.

 

 

验证结果发现,classic extract and integrated extract都已经捕获16条插入数据.

 

GGSCI (target-primary) 21> stats EXTINTED total

 

Sending STATS request to EXTRACT EXTINTED ...

 

Start of Statistics at 2014-08-21 14:39:11.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                                0.00

 

Output to ./dirdat/et:

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 14:39:06 ***

        Totalinserts                                    16.00

        Totalupdates                                      0.00

        Totaldeletes                                     0.00

        Totaldiscards                                    0.00

        Totaloperations                                 16.00

 

End of Statistics.

 

 

GGSCI (target-primary) 22> stats EXTINT total

 

Sending STATS request to EXTRACT EXTINT ...

 

Start of Statistics at 2014-08-21 14:39:19.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/it:

 

Extracting from OGG.GGS_MARKER to OGG.GGS_MARKER:

 

*** Total statistics since 2014-08-21 14:36:42 ***

 

        No databaseoperations have been performed.

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 14:36:42 ***

        Totalinserts                                    16.00

        Totalupdates                                     0.00

        Totaldeletes                                     0.00

        Totaldiscards                                    0.00

        Totaloperations                                 16.00

 

End of Statistics.

 

 

停止classic integrated extract

GGSCI (target-primary) 24> stop EXTINT

 

Sending STOP request to EXTRACT EXTINT ...

Request processed.

 

 

GGSCI (target-primary) 25> stop EXTINTED

 

Sending STOP request to EXTRACT EXTINTED ...

Request processed.

 

 

【插入数据后,resetlogs数据库后启动extract是否捕获插入的数据】

 

插入96条数据:

SQL> insert into resetlog select * from resetlog;

 

32 rows created.

 

SQL> commit;

 

Commit complete.

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> insert into resetlog select * from resetlog;

 

64 rows created.

 

Commit complete.

 

SQL> alter system switch logfile;

 

System altered.

记录extract停止之前的状态

GGSCI (target-primary) 27> info EXTINT

 

EXTRACT    EXTINT   Last Started 2014-08-21 14:36  Status STOPPED

Checkpoint Lag      00:00:00 (updated 00:02:34 ago)

Log Read Checkpoint Oracle Redo Logs

                    2014-08-21 14:40:37  Seqno 2, RBA7967744

                    SCN 0.7116549 (7116549)

 

 

GGSCI (target-primary) 28> info EXTINTED

 

EXTRACT   EXTINTED  Last Started 2014-08-2114:36   Status STOPPED

Checkpoint Lag      00:00:06 (updated 00:02:32 ago)

Log Read Checkpoint Oracle Integrated Redo Logs

                    2014-08-21 14:40:41

                    SCN 0.7116552 (7116552)

 

查看数据库,记录current_scn

SQL> selectresetlogs_change#,prior_resetlogs_change#,current_scn,flashback_on fromv$database;

 

RESETLOGS_CHANGE# PRIOR_RESETLOGS_CHANGE# CURRENT_SCNFLASHBACK_ON

----------------- ----------------------- -----------------------------

          7103876                  925702     7116702 YES

 

SQL> conn as sysdba

Connected.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 839282688 bytes

Fixed Size                 2257880 bytes

Variable Size            738200616 bytes

Database Buffers          96468992 bytes

Redo Buffers               2355200 bytes

Database mounted.

SQL> flashback database to scn 7116687;

 

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

 

启动extract进程

GGSCI (target-primary) 30> start EXTINT

 

Sending START request to MANAGER ...

EXTRACT EXTINT starting

 

 

GGSCI (target-primary) 32> start EXTINTED

 

Sending START request to MANAGER ...

EXTRACT EXTINTED starting

 

查看进程是否工作

 

GGSCI (target-primary) 33> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 14:48   Status RUNNING

Checkpoint Lag      00:08:15 (updated 00:00:06 ago)

Log Read Checkpoint Oracle Redo Logs

                     2014-08-21 14:40:37 Seqno 2, RBA 7967744

                    SCN 0.7116549 (7116549)

 

GGSCI (target-primary) 35> info EXTINTED

 

EXTRACT   EXTINTED  Last Started 2014-08-2114:36   Status RUNNING

Checkpoint Lag      00:00:06 (updated 00:08:18 ago)

Log Read Checkpoint Oracle Integrated Redo Logs

                    2014-08-21 14:40:41

                     SCN 0.7116552(7116552)

 

 

GGSCI (target-primary) 46> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 14:48   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:07 ago)

Log Read Checkpoint Oracle Redo Logs

                     2014-08-21 14:40:37 Seqno 2, RBA 7967744  --没有变化

                     SCN 0.7116549 (7116549)

 

 

GGSCI (target-primary) 47> info EXTINTED

 

EXTRACT   EXTINTED  Last Started 2014-08-2114:49   Status RUNNING

Checkpoint Lag      00:07:34 (updated 00:00:00 ago)

Log Read Checkpoint Oracle Integrated Redo Logs

                     2014-08-21 14:42:00

                     SCN 0.7116613(7116613)—变化

 

【查看是否捕获到resetlogs之前数据】

发现classicextract变化数据为0,integratedextract变化数据为96,刚好与之前数据一致的.

接下来如何手动处理classicextract extint进程,如何继续捕获之前数据和resetlogs之后数据.

将下面要演示的:

GGSCI (target-primary) 49> stats EXTINT total

 

Sending STATS request to EXTRACT EXTINT ...

 

No active extraction maps

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                        0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                                0.00

.

 

 

GGSCI (target-primary) 50> stats EXTINTED total

 

Sending STATS request to EXTRACT EXTINTED ...

 

Start of Statistics at 2014-08-21 14:51:54.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/et:

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 14:49:34 ***

        Totalinserts                                    96.00

        Totalupdates                                     0.00

        Totaldeletes                                     0.00

        Total discards                                     0.00

        Totaloperations                                 96.00

 

End of Statistics.

 

处理classicextract extint进程:

GGSCI (target-primary) 52> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 14:48   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:05 ago)

Log Read Checkpoint Oracle Redo Logs

                    2014-08-21 14:40:37  Seqno 2, RBA7967744

                    SCN 0.7116549 (7116549)

查看database情况:

发现一共有4resetlogs.当前resetlogs_id就是856190858

SQL> select INCARNATION#,RESETLOGS_TIME,RESETLOGS_ID fromv$database_incarnation;

 

INCARNATION# RESETLOGS_TIME      RESETLOGS_ID

------------ ------------------- ------------

           12013-08-24 11:37:30    824297850

           22014-06-13 10:54:46    850128886

           32014-08-21 11:04:32    856177472

           42014-08-21 14:47:38    856190858

 

通过856190858发现,目前尚未产生新归档.

SQL> select max(sequence#),resetlogs_id fromv$archived_log group by resetlogs_id;

 

MAX(SEQUENCE#) RESETLOGS_ID

-------------- ------------

           447    850128886

             4    856177472

 

SQL> select sysdate from dual;

 

SYSDATE

-------------------

2014-08-21 15:01:06

从上一次resetlogs:856177472和归档里面信息,发现最大sequence#是为4.

我们的classicextract extint才到sequence#2就停止工作了.

GGSCI (target-primary) 52> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 14:48   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:05 ago)

Log Read Checkpoint Oracle Redo Logs

                    2014-08-21 14:40:37  Seqno 2, RBA7967744

                    SCN 0.7116549 (7116549)

 

这个时候extractextint什么也不做,也不报错.这时候提示ATEOF,表示没有任何事务要处理,

所以一直都是这个状态.

GGSCI (target-primary) 59> send EXTINT status

 

Sending STATUS request to EXTRACT EXTINT ...

 

 

EXTRACT EXTINT (PID 7182)

  Current status: Inrecovery[1]: At EOF

 

  Current readposition:

  Redo thread #: 1

  Sequence #: 2

  RBA: 7966224

  Timestamp:2014-08-21 14:40:37.000000

  SCN: 0.7116548

  Current writeposition:

  Sequence #: 7

  RBA: 1103

  Timestamp:2014-08-21 15:07:54.944916

  Extract Trail:./dirdat/it

 

【只能使用alo模式处理剩下的归档日志】

需要修改classic extract extint参数:


 查出归档信息:

发现23sequence#出现大小完全一致的,有可能logminerserver都一台机器产生的(猜测)

-rw-r----- 1 oracle oinstall 7992320 Aug 21 14:42 o1_mf_1_2_9zc55yz3_.arc

-rw-r----- 1 oracle oinstall     6144 Aug 21 14:42 o1_mf_1_3_9zc56nxy_.arc

-rw-r----- 1 oracle oinstall    51200 Aug 21 14:47 o1_mf_1_4_9zc5jbk5_.arc

-rw-r----- 1 oracle oinstall     6144 Aug 21 14:47 o1_mf_1_3_9zc5jbpn_.arc

-rw-r----- 1 oracle oinstall 7992320 Aug 21 14:47 o1_mf_1_2_9zc5jblp_.arc

 

Goldengate tranlogoptions altarchivelogdest 不识别fra自动产生这种格式同时不支持asm磁盘

 

数据库归档格式:

SQL> show parameter log_archive_format

 

NAME                                 TYPE        VALUE

------------------------------------ -----------------------------------------

log_archive_format                   string      %t_%s_%r.dbf

 

现在修改成这种格式:

-rw-r----- 1 oracle oinstall 7992320 Aug 21 14:42 o1_mf_1_2_9zc55yz3_.arc

-rw-r----- 1 oracle oinstall     6144 Aug 21 14:42 o1_mf_1_3_9zc56nxy_.arc

-rw-r----- 1 oracle oinstall    51200 Aug 21 14:47 o1_mf_1_4_9zc5jbk5_.arc

 

%t:表示thread

%s:表示sequence#

%r:表示当前resetlogs_id

SQL> select INCARNATION#,RESETLOGS_TIME,RESETLOGS_ID fromv$database_incarnation;

 

INCARNATION# RESETLOGS RESETLOGS_ID

------------ --------- ------------

           124-AUG-13    824297850

           213-JUN-14    850128886

           321-AUG-14    856177472

           421-AUG-14    856190858

 

[oracle@target-primary 2014_08_21]$ mvo1_mf_1_2_9zc55yz3_.arc 1_2_856190858.dbf

[oracle@target-primary 2014_08_21]$ mvo1_mf_1_3_9zc56nxy_.arc 1_3_856190858.dbf

[oracle@target-primary 2014_08_21]$ mvo1_mf_1_4_9zc5jbk5_.arc 1_4_856190858.dbf

 

修改extractextint参数

添加如下参数并重启,确认是否捕获之前96条记录

tranlogoptions archivedlogonly

tranlogoptions altarchivelogdest primary u01/oracle/fast_recovery_area/TEST/archivelog/2014_08_21

 

GGSCI (target-primary) 63> start EXTINT

 

Sending START request to MANAGER ...

EXTRACT EXTINT starting

 

 

GGSCI (target-primary) 64> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 15:58   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:06 ago)

Log Read Checkpoint Oracle Redo Logs

                    2014-08-21 14:40:37  Seqno 2, RBA7967744

                    SCN 0.7116549 (7116549)

 

间隔1-2分钟: 发现sequence#,rba都变化且捕获到数据.

 

GGSCI (target-primary) 89> info EXTINT

 

EXTRACT    EXTINT    Last Started 2014-08-21 15:59   Status RUNNING

Checkpoint Lag      00:00:00 (updated 00:00:04 ago)

Log Read Checkpoint Oracle Redo Logs

                    2014-08-21 14:46:44  Seqno 4, RBA51200

                    SCN 0.7116769 (7116769)

 

 

GGSCI (target-primary) 90> stats EXTINT total

 

Sending STATS request to EXTRACT EXTINT ...

 

Start of Statistics at 2014-08-21 16:00:09.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mapped operations                                  0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/it:

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 15:59:48 ***

        Totalinserts                                    96.00

        Totalupdates                                     0.00

        Total deletes                                      0.00

        Totaldiscards                                    0.00

        Totaloperations                                 96.00

 

End of Statistics.

 

现在在重新插入数据看下:classicextract extint integrated extract extinted是否都能正常工作?

发现integratedextract extinted无需任何修改都可以正常工作,但是classicextract extint不行,

因为resetlogs之后,sequence#已经变成,所以需要手动修改extract extint>

SQL> insert into resetlog select * from resetlog;

 

128 rows created.

 

SQL> commit;

 

Commit complete.

 

SQL>

 

GGSCI (target-primary) 92> stats EXTINT total

 

Sending STATS request to EXTRACT EXTINT ...

 

Start of Statistics at 2014-08-21 16:03:18.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/it:

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 15:59:48 ***

        Totalinserts                                    96.00

        Total updates                                      0.00

        Totaldeletes                                     0.00

        Totaldiscards                                    0.00

        Totaloperations                                 96.00

 

End of Statistics.

 

 

GGSCI (target-primary) 93> stats EXTINTED total

 

Sending STATS request to EXTRACT EXTINTED ...

 

Start of Statistics at 2014-08-21 16:03:24.

 

DDL replication statistics (for all trails):

 

*** Total statistics since extract started     ***

       Operations                                         0.00

        Mappedoperations                                 0.00

        Unmappedoperations                               0.00

        Otheroperations                                  0.00

        Excludedoperations                               0.00

 

Output to ./dirdat/et:

 

Extracting from TEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since 2014-08-21 14:49:34 ***

        Totalinserts                                   224.00

        Totalupdates                                     0.00

        Totaldeletes                                     0.00

        Totaldiscards                                    0.00

        Totaloperations                                224.00

 

End of Statistics.

 

 

【继续处理extract extint】

1、  去掉alo参数

去掉或注释tranlogoptions参数


2、  Extseqno1开始

GGSCI (target-primary)96> stop EXTINT

 

Sending STOP request toEXTRACT EXTINT ...

Request processed.

 

 

GGSCI (target-primary)97> alter EXTINT,extseqno 1,extrba 0

EXTRACT altered.

 

 

GGSCI (target-primary)98> start EXTINT

 

Sending START request toMANAGER ...

EXTRACT EXTINT starting

 

 

GGSCI (target-primary) 99>

 

【验证是否捕获到刚才插入数据】

发现捕获到128条记录.处理完成

  GGSCI (target-primary) 106> stats EXTINTtotal

 

Sending STATS request toEXTRACT EXTINT ...

 

Start of Statistics at2014-08-21 16:07:29.

 

DDL replication statistics(for all trails):

 

*** Total statistics sinceextract started     ***

        Operations                                         0.00

        Mapped operations                                  0.00

        Unmapped operations                                0.00

        Other operations                                   0.00

        Excluded operations                                0.00

 

Output to ./dirdat/it:

 

Extracting fromOGG.GGS_MARKER to OGG.GGS_MARKER:

 

*** Total statistics since2014-08-21 16:06:59 ***

 

        No database operations have beenperformed.

 

Extracting fromTEST.RESETLOG to TEST.RESETLOG:

 

*** Total statistics since2014-08-21 16:06:59 ***

        Total inserts                                    128.00

        Total updates                                      0.00

        Total deletes                                      0.00

        Total discards                                     0.00

        Total operations                                 128.00

 

End of Statistics.

 

 

至此处理完成.

 

总结

1、  resetlogs之后,integrated extract不受影响可以继续工作

2、  resetlogs之后,classic extract需要2步处理.

A.处理resetlogs之前尚未处理归档

B.处理resetogs之后数据



最后修改时间:2020-11-25 18:10:15
文章转载自DB说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论