Goldengate 指定时间点重新抽取事务变化

今天的实验是演示goldengate指定时间点重新抽取事务。

实验步骤:
1,制定一个重新抽取的SCN
2,根据SCN在v$archived_log视图找到起始时间
3,停止抽取进程
4,重置抽取进程的开始时间
5,启动抽取进程重新捕获事务(从归档日志中获取)

1,查看源端当前的SCN,记录该值作为重新抽取的时间点
SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                 1507066

2,查看当前抽取进程ex1的状态
GGSCI (node3) 2> info ex1 detail

EXTRACT    EX1       Last Started 2014-11-02 18:19   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2014-11-02 19:09:40  Thread 1, Seqno 12, RBA 10750464
                     SCN 0.1507682 (1507682)
Log Read Checkpoint  Oracle Redo Logs
                     2014-11-02 19:09:39  Thread 2, Seqno 12, RBA 9300480
                     SCN 0.1507682 (1507682)

  Target Extract Trails:

  Remote Trail Name                                Seqno        RBA     Max MB

  /goldengate/dirdat/ex                                2     205729          5

  Extract Source                          Begin             End

  +DATA/prod/onlinelog/group_4.302.859509357  2014-11-02 18:02  2014-11-02 19:09
  Not Available                           * Initialized *   2014-11-02 18:02

Current directory    /goldengate

Report file          /goldengate/dirrpt/EX1.rpt
Parameter file       /goldengate/dirprm/ex1.prm
Checkpoint file      /goldengate/dirchk/EX1.cpe
Process file         /goldengate/dirpcs/EX1.pce
Stdout file          /goldengate/dirout/EX1.out
Error log            /goldengate/ggserr.log


3,查看当前系统时间以及目前存在的local trail文件

[oracle@single goldengate]$ ls -l dirdat
total 424
-rw-rw-rw- 1 oracle oinstall 205826 Nov  1 16:02 rt000000
-rw-rw-rw- 1 oracle oinstall   1192 Nov  1 16:57 rt000001
-rw-rw-rw- 1 oracle oinstall   1161 Nov  1 17:20 rt000002

4,在源端节点2登录测试用户snow,向测试表插入100万条记录
SYS@PROD2 > conn snow/snow

SNOW@PROD2 > begin for i in 1001..1000000 loop
  2  insert into t1 values(i,'Fin');
  3  end loop;
  4  commit;
  5  end;
  6  /

目标端snow.t1成功复制100万条记录
SQL> conn snow/snow
Connected.
SQL> select count(*) from t1;

  COUNT(*)
----------
   1000000

插入100条数据使得源端生成了22个local trail文件,从ex000003-ex000024

[oracle@node3 dirdat]$ ll
total 104128
-rw-rw-rw- 1 oracle oinstall  205795 Nov  2 17:24 ex000000
-rw-rw-rw- 1 oracle oinstall    1076 Nov  2 18:19 ex000001
-rw-rw-rw- 1 oracle oinstall 4999907 Nov  3 10:02 ex000003
-rw-rw-rw- 1 oracle oinstall 4999952 Nov  3 10:02 ex000004
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000005
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000006
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000007
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000008
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000009
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000010
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000011
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000012
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000013
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000014
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000015
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000016
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000017
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000018
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000019
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000020
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000021
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000022
-rw-rw-rw- 1 oracle oinstall 4999951 Nov  3 10:02 ex000023
-rw-rw-rw- 1 oracle oinstall 1122278 Nov  3 10:02 ex000024

5, 根据SCN 1507066 ,查找相对应时间。 

所在归档日志为红色表示记录。该日志生成的时间为 2014-11-02 17:41:26 ,接下来采用该时间作为重新生成local trail的参数。

NAME                                                                        FIRST_CHANGE# FIRST_TIME
--------------------------------------------------------------------------- ------------- -------------------
+ARCH/prod/archivelog/2014_11_03/thread_2_seq_12.295.862650053                    1484800 2014-11-02 17:41:26
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_12.296.862650059                     1484803 2014-11-02 17:41:26
+ARCH/prod/archivelog/2014_11_03/thread_2_seq_13.297.862650071                    1514934 2014-11-03 09:00:52
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_13.298.862650077                    1514938 2014-11-03 09:00:57
+ARCH/prod/archivelog/2014_11_03/thread_2_seq_14.299.862650079                    1514995 2014-11-03 09:01:10
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_14.300.862650089                    1514999 2014-11-03 09:01:16
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_15.301.862653569                    1515027 2014-11-03 09:01:28
+ARCH/prod/archivelog/2014_11_03/thread_2_seq_15.302.862653567                    1515017 2014-11-03 09:01:19
+ARCH/prod/archivelog/2014_11_03/thread_2_seq_16.303.862653581                    1526456 2014-11-03 09:59:27
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_16.304.862653587                    1526452 2014-11-03 09:59:29
+ARCH/prod/archivelog/2014_11_03/thread_1_seq_17.305.862653599                    1526496 2014-11-03 09:59:47


6,删除目标端已经成功复制的100万条数据
SQL> truncate table t1;


7,抽取进程从2014-11-02 17:41:26再次抽取事务
GGSCI (node3) 2> stop ex1

GGSCI (node3) 3> ALTER EXTRACT ex1, TRANLOG, BEGIN 2014-11-02 17:41:26

GGSCI (node3) 5> start ex1

Sending START request to MANAGER ...
EXTRACT EX1 starting

GGSCI (node3) 6> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DP1         00:00:00      00:00:04   <
EXTRACT     RUNNING     EX1         19:41:40      00:00:03


GGSCI (node3) 8> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DP1         03:20:53      00:00:05   <
EXTRACT     RUNNING     EX1         03:20:52      00:00:06

GGSCI (node3) 9> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DP1         03:20:53      00:00:10  <
EXTRACT     RUNNING     EX1         00:00:01      00:00:00



目标端重新复制了100万条记录
SQL> select count(*) from t1;

  COUNT(*)
----------
   1000000

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29047826/viewspace-1319396/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29047826/viewspace-1319396/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用Oracle GoldenGate实现MySQL分布式抽取的案例: 假设我们有两个MySQL数据库:db1和db2,它们都包含一个名为“mytable”的表。现在我们想要将这两个数据库中的数据同步到一个目标数据库中。 首先,在db1和db2数据库中都需要安装GoldenGate。然后,在每个数据库中创建一个名为“gg”的目录,并将GoldenGate的安装文件复制到该目录中。 接下来,我们需要在每个数据库中创建一个GoldenGate提取进程和一个重放进程。在db1中,我们需要运行以下命令: ``` cd gg ./ggsci GGSCI> create extract ext1 GGSCI> add extract ext1 tranlog begin now GGSCI> add extract ext1 sourceis mysql GGSCI> add extract ext1 exttrail ./dirdat/et GGSCI> create replicat rep1 GGSCI> add replicat rep1 exttrail ./dirdat/rt GGSCI> add replicat rep1 targetis mysql GGSCI> start ext1 GGSCI> start rep1 ``` 在db2中,我们需要运行以下命令: ``` cd gg ./ggsci GGSCI> create extract ext2 GGSCI> add extract ext2 tranlog begin now GGSCI> add extract ext2 sourceis mysql GGSCI> add extract ext2 exttrail ./dirdat/et GGSCI> create replicat rep2 GGSCI> add replicat rep2 exttrail ./dirdat/rt GGSCI> add replicat rep2 targetis mysql GGSCI> start ext2 GGSCI> start rep2 ``` 现在,我们已经在两个数据库中创建了提取进程和重放进程,并准备好将数据同步到目标数据库中。在目标数据库中,我们需要创建一个名为“ggs”的目录,并将GoldenGate的安装文件复制到该目录中。 接下来,我们需要在目标数据库中创建一个GoldenGate进程,用于接收来自db1和db2的数据。在目标数据库中,我们需要运行以下命令: ``` cd ggs ./ggsci GGSCI> create extract ext3 GGSCI> add extract ext3 exttrail ./dirdat/et GGSCI> add extract ext3 tranlog begin now GGSCI> create replicat rep3 GGSCI> add replicat rep3 exttrail ./dirdat/rt GGSCI> start ext3 GGSCI> start rep3 ``` 最后,我们需要在目标数据库中创建一个名为“mytable”的表,并在该表中插入一些数据。然后,我们可以在db1和db2数据库中插入新数据,并观察数据在目标数据库中的同步情况。 以上就是一个使用Oracle GoldenGate实现MySQL分布式抽取的案例。请注意,在实际部署中,还需要进行更多的配置和调整,以确保数据同步的准确性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值