数据比对,通过SCN临时比对技巧ogg
  IE5LYMWlmdvL 2023年11月02日 40 0

方案概述

在使用goldengate进行正式迁移实施时,都有一个环节是对迁移表的数据进行全量比对,保证数据不会有任何丢失。因为这个比对动作是发生在正式实施阶段,如果此时比对有数据丢失,这时再进行数据补救可能会影响到割接的时间,所以这里介绍一个小技巧,可以在平时的动态同步时,对数据进行全量比对,提早发现数据不一致的问题。

实施步骤

1. 首先暂时停止目标端的replicat进程R_TEST1,并查看该进程正读取到trail文件(tt000000000)和RBA(13360)

GGSCI> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                          
REPLICAT    RUNNING     R_TEST1     00:00:00      00:00:07    
GGSCI> stop R_TEST1
Sending STOP request to REPLICAT R_TEST1 ...
Request processed.
GGSCI> info R_TEST1
REPLICAT   R_TEST1   Last Started 2022-04-13 02:16   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:26:40 ago)
Log Read Checkpoint  File /goldengate/191004/dirdat/e_test1/tt000000000
 13360

2.  通过trail文件(tt000000000)和RBA(13360)获取源端对应的SCN(1127250

Logdump>open /goldengate/191004/dirdat/e_test1/tt000000000
Current LogTrail is /goldengate/191004/dirdat/e_test1/tt000000000
Logdump>pos 13360
Reading forward from RBA 13360
Logdump>ghdr on
Logdump>detail data
Logdump>ggstokens detail
Logdump>n
___________________________________________________________________
Hdr-Ind    :     E  (x45)     Partition  :     .  (x0c)  
UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)  
RecLength  :    23  (x0017)   IO Time    : 2022/04/13 02:40:57.291.649  
IOType     :     5  (x05)     OrigNode   :   255  (xff)
TransInd   :     .  (x03)     FormatType :     R  (x52)
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
AuditRBA   :         11       AuditPos   : 1076752
Continued  :     N  (x00)     RecCount   :     1  (x01)

2022/04/13 02:40:57.291.649 Insert               Len    23 RBA 13360
Name: TEST.TAB1  (TDR Index: 1)
After  Image:                                             Partition x0c   G  s  
0000 0600 0000 0200 3230 0100 0900 0000 0500 4943 | ........20........IC  
4f4c 24                                           | OL$  
Column     0 (x0000), Len     6 (x0006)  
0000 0200 3230                                    | ....20  
Column     1 (x0001), Len     9 (x0009)  
0000 0500 4943 4f4c 24                            | ....ICOL$  
 
GGS tokens:
TokenID x52 'R' ORAROWID         Info x00  Length   20
4141 4156 5670 4141 4541 4141 4143 7541 4273 0001 | AAAVVpAAEAAAACuABs..
TokenID x4c 'L' LOGCSN           Info x00  Length    7
3131 3237 3235 30                                 | 1127250  
TokenID x36 '6' TRANID           Info x00  Length   11
302e 3232 2e31 332e 3131 36                       | 0.22.13.116

 3131 3237 3235 30                                 | 1127250  

3. 获取当前目标端的SCN(2042340

SQL> col current_scn for 9999999999999999999999
SQL> select current_scn from v$database;
           CURRENT_SCN
-----------------------
               2042340

4.  获取到源端和目标端一致的SCN后,此时可以重新开启目标端的replicat进程R_TEST1的同步,不影响下一步的数据比对。

5.  通过指定SCN进行全量数据比对(可以针对记录数比对、也可以生成HASH值进行比对)

通过前面可以知道源端的scn为1127250,目标端的scn为2042340。

数据量比对:

源端:select count(*) from test1.tab1  as of scn 1127250;
目标端:select count(*) from test1.tab1  as of scn 2042340;


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: FFmpeg FFmpeg 下一篇: Docker CE
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   46   0   0 MySQLSQL
  xaeiTka4h8LY   2024年05月17日   52   0   0 数据库JavaSQL
  xaeiTka4h8LY   2024年05月17日   52   0   0 数据库SQL
  Dk8XksB4KnJY   2023年12月23日   32   0   0 字段字段SQLSQL