Goldengate实现在线数据迁移

Goldengate的一大卖点就是可以实现在线的数据迁移,这意味着在整个过程中我们无需关闭数据库,甚至于无需停止应用。在<How to create a GoldenGate uni-directional target database in a production database zero downtime>中,大致介绍了实现零下线时间数据迁移所涉及的步骤,包括:

  1. 在source与target主机上完成OGG的初始化配置
  2. 创建extract及exttrail
  3. 创建pump
  4. 启动本地extract和pump
  5. 创建带有HANDLECOLLISIONS参数的replicat,但不启动它
  6. 完成数据的initial load即数据初始化
  7. 启动replicat
  8. 当replicat追上extract后取消replicat的HANDLECOLLISIONS参数

接下来我们通过以下实例来实践OGG的在线数据迁移:

SQL> conn clinic/clinic
Connected.

/* 以clinic为应用用户 */

SQL> create table tv (t1 int primary key,t2 int,t3 varchar2(30));
Table created.

/* 为别在source和target创建该测试用表,在这里我们先不考虑同步DDL*/

SQL> create sequence seqt1 start with 1 increment by 1;
Sequence created.

declare
  rnd number(9,2);
begin
   for i in 1..100000 loop
     insert into tv values(seqt1.nextval,i*dbms_random.value,'MACLEAN IS TESTING');
     commit;
   end loop;
end;
PL/SQL procedure successfully completed.

/* 在源端随机生成10w行数据 */

begin
   loop
    delete from tv where rownum=1;
     commit;
     insert into tv values(seqt1.nextval,200000*dbms_random.value,'MACLEAN IS UPDATING');
     commit;
	 insert into tv values(seqt1.nextval,300000*dbms_random.value,'MACLEAN IS UPDATING');
	 commit;
	update tv set t2=t2+10 where rownum=1;
	commit;
     dbms_lock.sleep(1);
     end loop;
end;

/* 以上匿名块可以造成简易的数据变化,它会在每1秒钟删除/更新/插入TV表的部分数据
    我们打开多个窗口执行以上匿名块,以模拟在线业务
*/

以上为测试前提工作,接下来我们正式配置OGG FOR ZERO DOWNTIME MIGRATION:

GGSCI (rh2.oracle.com) 3> dblogin userid maclean
Password:
Successfully logged into database.

GGSCI (rh2.oracle.com) 5> add trandata clinic.tv
Logging of supplemental redo data enabled for table CLINIC.TV.

/* 通过add trandata命令为tv表加上追加日志 */

GGSCI (rh2.oracle.com) 6> add extract load2,tranlog,begin now
EXTRACT added.

GGSCI (rh2.oracle.com) 7> add rmttrail /s01/new/ze,megabytes 200,extract load2
RMTTRAIL added.

GGSCI (rh2.oracle.com) 10> view params load2

extract load2
userid maclean, password AACAAAAAAAAAAAHANCUEFHPAVCYDNJVD,encryptkey default
RMTHOST rh3.oracle.com, MGRPORT 7809
RMTTRAIL /s01/new/ze
Table clinic.tv;

/* 为了让整个过程更简洁,我们在这里不适用pump */

GGSCI (rh2.oracle.com) 9> start load2
Sending START request to MANAGER ...
EXTRACT LOAD2 starting

GGGSCI (rh2.oracle.com) 11> stats load2
Sending STATS request to EXTRACT LOAD2 ...
Start of Statistics at 2010-12-11 20:00:44.
Output to /s01/new/ze:
Extracting from CLINIC.TV to CLINIC.TV:
*** Total statistics since 2010-12-11 20:00:32 ***
        Total inserts                              370.00
        Total updates                              185.00
        Total deletes                              185.00
        Total discards                               0.00
        Total operations                           740.00
*** Daily statistics since 2010-12-11 20:00:32 ***
        Total inserts                              370.00
        Total updates                              185.00
        Total deletes                              185.00
        Total discards                               0.00
        Total operations                           740.00
*** Hourly statistics since 2010-12-11 20:00:32 ***
        Total inserts                              370.00
        Total updates                              185.00
        Total deletes                              185.00
        Total discards                               0.00
        Total operations                           740.00
*** Latest statistics since 2010-12-11 20:00:32 ***
        Total inserts                              370.00
        Total updates                              185.00
        Total deletes                              185.00
        Total discards                               0.00
        Total operations                           740.00
End of Statistics.

/* 以上完成了extract的配置和启动,接下来我们配置target上的replicat */

GGSCI (rh3.oracle.com) 39> add replicat rep2,begin now,exttrail /s01/new/ze,checkpointtable maclean.checkpoint
REPLICAT added.

GGSCI (rh3.oracle.com) 42> view params rep2
replicat rep2
userid maclean,password maclean
ASSUMETARGETDEFS
discardfile /s01/discard/clinic.log,append,megabytes 10
HANDLECOLLISIONS
map clinic.tv, target clinic.tv;

/* 注意为replicat加上HANDLECOLLISIONS参数,
    用以处理可能的deplicate records和missed records;
    该参数的具体定义见Reference文档
*/ 

/* 注意在配置完replicat后,不要去启动它;直到完成initial load才能启动*/

/* 接下来要配置initial load使用的extract和replicat */

GGSCI (rh2.oracle.com) 14> add extract einit,sourceistable
EXTRACT added.

/* 以sourceistable选项创建extract */

GGSCI (rh2.oracle.com) 17> view params einit

extract einit
SOURCEISTABLE
userid maclean, password maclean
RMTHOST rh3.oracle.com, MGRPORT 7809
RMTFILE /s01/new/clinictv
Table clinic.tv;

/* 之后我们需要在命令行界面下调用该extract */
[maclean@rh2 gg]$ pwd
/home/maclean/gg

[maclean@rh2 gg]$ extract paramfile dirprm/einit.prm
2010-12-11 20:03:06  INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.
***********************************************************************
                 Oracle GoldenGate Capture for Oracle
                     Version 11.1.1.0.0 Build 078
   Linux, x64, 64bit (optimized), Oracle 10 on Jul 28 2010 15:39:00
 Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
                    Starting at 2010-12-11 20:03:06
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Mon Mar 29 22:10:29 EDT 2010, Release 2.6.18-194.el5
Node: rh2.oracle.com
Machine: x86_64
                         soft limit   hard limit
Address Space Size   :    unlimited    unlimited
Heap Size            :    unlimited    unlimited
File Size            :    unlimited    unlimited
CPU Time             :    unlimited    unlimited
Process id: 21399
Description:
***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
extract einit
SOURCEISTABLE

2010-12-11 20:03:06  INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is used.
userid maclean, password *******
RMTHOST rh3.oracle.com, MGRPORT 7809
RMTFILE /s01/new/clinictv
Table clinic.tv;
Using the following key columns for source table CLINIC.TV: T1.
CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE:                         64K
CACHESIZE:                                8G
CACHEBUFFERSIZE (soft max):               4M
CACHEPAGEOUTSIZE (normal):                4M
PROCESS VM AVAIL FROM OS (min):          16G
CACHESIZEMAX (strict force to disk):  13.99G

Database Version:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

Database Language and Character Set:
NLS_LANG environment variable specified has invalid format, default value will be used.
NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.
NLS_LANGUAGE     = "AMERICAN"
NLS_TERRITORY    = "AMERICA"
NLS_CHARACTERSET = "WE8ISO8859P1"
Warning: your NLS_LANG setting does not match database server language setting.
Please refer to user manual for more information.
2010-12-11 20:03:06  INFO    OGG-01478  Output file /s01/new/clinictv is using format RELEASE 10.4/11.1.
2010-12-11 20:03:11  INFO    OGG-01226  Socket buffer size set to 27985 (flush size 27985).
Processing table CLINIC.TV
***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************
Report at 2010-12-11 20:03:12 (activity since 2010-12-11 20:03:06)
Output to /s01/new/clinictv:
From Table CLINIC.TV:
       #                   inserts:    100780
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0

/* 以上extract操作在target上RMTFILE指定的路径生成了导出文件*/

[maclean@rh3 new]$ pwd
/s01/new

[maclean@rh3 new]$ file clinictv
clinictv: data

[maclean@rh3 new]$ strings clinictv |head -20
uri:rh2:oracle:com:6
/s01/new/clinictv7
Linux1
rh2.oracle.com2
2.6.18-194.el53
##1 SMP Mon Mar 29 22:10:29 EDT 20104
x86_642
CLINICA2
clinica3
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
EINIT1
Version 11.1.1.0.0 Build 0784
CLINIC.TV
MACLEAN IS TESTINGZ
CLINIC.TV
MACLEAN IS TESTINGZ

/* 接下来我们要在target上配置initial load使用的replicat,以导入之前的EXTFILE */

GGSCI (rh3.oracle.com) 12> add replicat rinit,specialrun
REPLICAT added.

GGSCI (rh3.oracle.com) 17> view params rinit

replicat rinit
SPECIALRUN
userid maclean,password maclean
EXTFILE /s01/new/clinictv
ASSUMETARGETDEFS
map clinic.tv, target clinic.tv;

/ *之后我们在命令行上调用该replicat */

[maclean@rh3 gg]$ replicat paramfile dirprm/rinit.prm 

***********************************************************************
                 Oracle GoldenGate Delivery for Oracle
                     Version 11.1.1.0.0 Build 078
   Linux, x64, 64bit (optimized), Oracle 10 on Jul 28 2010 15:58:11

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

                    Starting at 2010-12-11 20:06:14
***********************************************************************

Operating System Version:
Linux
Version #1 SMP Mon Mar 29 22:22:00 EDT 2010, Release 2.6.18-194.el5xen
Node: rh3.oracle.com
Machine: x86_64
                         soft limit   hard limit
Address Space Size   :    unlimited    unlimited
Heap Size            :    unlimited    unlimited
File Size            :    unlimited    unlimited
CPU Time             :    unlimited    unlimited

Process id: 18554

Description: 

***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
replicat rinit
SPECIALRUN
userid maclean,password *******
EXTFILE /s01/new/clinictv
ASSUMETARGETDEFS
map clinic.tv, target clinic.tv;

CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE:                         64K
CACHESIZE:                              512M
CACHEBUFFERSIZE (soft max):               4M
CACHEPAGEOUTSIZE (normal):                4M
PROCESS VM AVAIL FROM OS (min):           1G
CACHESIZEMAX (strict force to disk):    881M

Database Version:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

Database Language and Character Set:
NLS_LANG environment variable specified has invalid format, default value will be used.
NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.
NLS_LANGUAGE     = "AMERICAN"
NLS_TERRITORY    = "AMERICA"
NLS_CHARACTERSET = "WE8ISO8859P1" 

Warning: your NLS_LANG setting does not match database server language setting.
Please refer to user manual for more information.

***********************************************************************
**                     Run Time Messages                             **
***********************************************************************

Opened trail file /s01/new/clinictv at 2010-12-11 20:06:14

MAP resolved (entry CLINIC.TV):
  map CLINIC.TV, target clinic.tv;
Using following columns in default map by name:
  T1, T2, T3

Using the following key columns for target table CLINIC.TV: T1.

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************

Last record for the last committed transaction is the following:
___________________________________________________________________
Trail name :  /s01/new/clinictv
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)
UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)
RecLength  :    52 (x0034)    IO Time    : 2010-12-11 20:03:10.969955
IOType     :     5  (x05)     OrigNode   :   255  (xff)
TransInd   :     .  (x03)     FormatType :     R  (x52)
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
AuditRBA   :          0       AuditPos   : 0
Continued  :     N  (x00)     RecCount   :     1  (x01)

2010-12-11 20:03:10.969955 Insert             Len    52 RBA 11244940
Name: CLINIC.TV
___________________________________________________________________

Reading /s01/new/clinictv, current RBA 11245052, 100780 records

Report at 2010-12-11 20:06:54 (activity since 2010-12-11 20:06:14)

From Table CLINIC.TV to CLINIC.TV:
       #                   inserts:    100780
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0

Last log location read:
     FILE:      /s01/new/clinictv
     RBA:       11245052
     TIMESTAMP: 2010-12-11 20:03:10.969955
     EOF:       NO
     READERR:   400

SQL> select count(*) from tv;
  COUNT(*)
----------
    100780

/* 以上完成了initial load所要求的工作,接着我们打开同步使用的replicat*/
GGSCI (rh3.oracle.com) 3> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting

GGSCI (rh3.oracle.com) 7> lag rep2
Sending GETLAG request to REPLICAT REP2 ...
Last record lag: 4 seconds.
At EOF, no more records to process.

GGSCI (rh3.oracle.com) 9> stats rep2

Sending STATS request to REPLICAT REP2 ...

Start of Statistics at 2010-12-11 20:10:15.

Replicating from CLINIC.TV to CLINIC.TV:

*** Total statistics since 2010-12-11 20:09:54 ***
        Total inserts                              204.00
        Total updates                              102.00
        Total deletes                              102.00
        Total discards                               0.00
        Total operations                           408.00

*** Daily statistics since 2010-12-11 20:09:54 ***
        Total inserts                              204.00
        Total updates                              102.00
        Total deletes                              102.00
        Total discards                               0.00
        Total operations                           408.00

*** Hourly statistics since 2010-12-11 20:09:54 ***
        Total inserts                              204.00
        Total updates                              102.00
        Total deletes                              102.00
        Total discards                               0.00
        Total operations                           408.00

*** Latest statistics since 2010-12-11 20:09:54 ***
        Total inserts                              204.00
        Total updates                              102.00
        Total deletes                              102.00
        Total discards                               0.00
        Total operations                           408.00
End of Statistics.

/* 当replicat追上extract后,需要取消HANDLECOLLISIONS参数 */

GGSCI (rh3.oracle.com) 11> view params rep2
replicat rep2
userid maclean,password maclean
ASSUMETARGETDEFS
discardfile /s01/discard/clinic.log,append,megabytes 10
map clinic.tv, target clinic.tv;

GGSCI (rh3.oracle.com) 12> stop rep2
Sending STOP request to REPLICAT REP2 ...
Request processed.

GGSCI (rh3.oracle.com) 13> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 starting

接下来停止模拟的在线业务,进行数据对比。首先使用Goldengate veridata创建group及compare pair等配置:


接着生成job,并执行:

Job运行的结果界面:

对比发现同步正常的报告:

***********************************************************************
                  Oracle GoldenGate Veridata Server
                           Version 3.0.0.6
                              Build 002

Copyright (C) 2004, 2009, Oracle and/or its affiliates. All rights reserved.

                   Starting at 2010-12-11 20:15:58

***********************************************************************
Unexpected Windows major version
Process id: 6340, Thread id : 6392
Group: clinic (1) Compare Pairs
Performing 1 comparisons ...
        Compare pair: TV=TV
2010-12-11 20:15:58. Submitted (1 of 1) Compare Pair (TV=TV) RunId (runid=(1007, 1, 1)).
2010-12-11 20:16:00. Completed in-sync. Compare Pair (TV=TV). (0) Remaining

               Compare Pairs with Errors: 0
          Compare Pairs with Out-Of-Sync: 0
       Compare Pairs without Out-Of-Sync: 1
                 Compare Pairs Cancelled: 0

Group terminated normally.

接着我们在target端执行一些人工修改数据的SQL,以达到不同步的效果:

begin
   loop
    delete from tv where rownum=1;
     commit;
     insert into tv values(seqt1.nextval,200000*dbms_random.value,'MACLEAN IS UPDATING');
     commit;
	 insert into tv values(seqt1.nextval,300000*dbms_random.value,'MACLEAN IS UPDATING');
	 commit;
	update tv set t2=t2+10 where rownum=1;
	commit;
     dbms_lock.sleep(1);
     end loop;
end;
/

/* 在源端打开模拟的应用程序 */

/* 在target插入一条额外的纪录 */

SQL> insert into tv values(99993242,1213,'OUT OF SYNC');
1 row created.

SQL> commit;
Commit complete.

再次运行Goldengate veridata中相关的job,可以在job相关的日志中看到详细的out-of-sync纪录信息:

Profile: newp

General:
***********************************************************************
     Out-Of-Sync Output Format: binary
          Maximum Size of Each
  Out-Of-Sync XML Chunk (Rows): 500
    Output in-sync rows to OOS
                          file: false
Output in-sync after in-flight
              rows to OOS file: true
 Report in-sync rows to report
                          file: false
Report in-sync after in-flight
           rows to report file: false
          Sorting Method:
               Sort Data Using: database
     Maximum Memory Usage (MB): 50
  Number Of Concurrent Threads: 4
   Temporary Storage Directory
               for Source Data:
   Temporary Storage Directory
               for Target Data:
      NSort Memory Retry Limit: 0
NSort Memory Retry Wait Interval: 0

Initial Compare (General):
***********************************************************************
     Max Concurrent Comparison
                       Threads: 4
Terminate when Maximum Records
                   Out-Of-Sync: 100000
     Output Out-Of-Sync Record
        Details to Report File: false
      Update Report file Every
                     (seconds): 0
      Update Report file Every
                       Threads: 0
Terminate when Maximum Records
                   Out-Of-Sync: 100000
     Output Out-Of-Sync Record
        Details to Report File: false
      Update Report file Every
                     (seconds): 0
      Update Report file Every
                     (records): 0
    Limit Number of Input Rows: 0
     Delta processsing enabled: false

Initial Compare (Event Reporting):
***********************************************************************
             Generate Messages: both
 Generate Warning Messages For
        Out-Of-Sync Rows After
                 (differences): 9999

Initial Compare (Agent):
***********************************************************************
 Use Static Listening Port For
     For Agent During Row Hash
                     On Source: 0
 Use Static Listening Port For
     For Agent During Row Hash
                     On Target: 0

Initial Compare (NonStop Process):
***********************************************************************
  Source Process Name Starting
                          With:
     Source Process CPU Number: -1
       Source Process Priority: 0
  Target Process Name Starting
                          With:
     Target Process CPU Number: -1
       Target Process Priority: 0

Confirm-Out-Of-Sync (General):
***********************************************************************
   Perform Confirm Out-Of-Sync
                          Step: true
         Run Concurrently With
               Initial Compare: true
     Delay Confirm-Out-Of-Sync
                  By (seconds): 0
Terminate when Maximum Records
                   Out-Of-Sync: 100000
     Output Out-Of-Sync Record
        Details to Report File: true
            Update Report file
               Every (seconds): 0
            Update Report file
               Every (records): 0

Confirm-Out-Of-Sync (Event Reporting):
***********************************************************************
             Generate Messages: both
 Generate Warning Messages For
          For Out-Of-Sync Rows
           After (differences): 9999

Confirm-Out-Of-Sync (Agent):
***********************************************************************
 Use Static Listening Port For
         Agent During Row Hash
                     On Source: 0
 Use Static Listening Port For
         Agent During Row Hash
                     On Target: 0

Confirm-Out-Of-Sync (NonStop Process):
***********************************************************************
  Source Process Name Starting
                          With:
     Source Process CPU Number: -1
       Source Process Priority: 0
  Target Process Name Starting
                          With:
     Target Process CPU Number: -1
       Target Process Priority: 0

Starting  Veriagt session for source rowhash at 2010-12-11 20:32:25.

Initial Compare Source Agent Information:
                       ORACLE_HOME : /s01/10gdb
       NLS_LANG (from environment) :
                          ORA_SDTZ :
              NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1
              NLS_LENGTH_SEMANTICS : BYTE
                   SESSIONTIMEZONE : -05:00
                        Process ID : 21473
                  Operating System : Linux
                      Architecture : x86_64
                       Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___source_rh.rpt
                        Trace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___source_rh.trc

Starting  Veriagt session for target rowhash at 2010-12-11 20:32:26.

Initial Compare Target Agent Information:
                       ORACLE_HOME : /s01/db_1
       NLS_LANG (from environment) :
                          ORA_SDTZ :
              NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1
              NLS_LENGTH_SEMANTICS : BYTE
                   SESSIONTIMEZONE : +08:00
                        Process ID : 18639
                  Operating System : Linux
                      Architecture : x86_64
                       Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___target_rh.rpt
                        Trace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___target_rh.trc

Processing first rowhash block from source at 2010-12-11 20:32:26.
Processing first rowhash block from target at 2010-12-11 20:32:27.
Comparing first row at 2010-12-11 20:32:27.
Starting  Veriagt session for source COOS at 2010-12-11 20:32:27.

Performance Statistics for source Rowhash at 2010-12-11 20:32:27.

                     rows: 103959
          duration (secs): 00:00:02
                 rows/sec: 51979.50
                row bytes: 4345147
            row bytes/sec: 2172573
                bytes/row: 41
             rh bytes/row: 23
             rows skipped: 0
           blocks skipped: 0
           hash comp rate: 0.55
          total comp rate: 0.23
        pct time fetching: 15.44
         pct time waiting: 5.91
     time until first row: 00:00:00
                 ipc msgs: 12
                ipc bytes: 2809974
                bytes/msg: 234164
     compressed bytes/msg: 99262
                bytes/sec: 1404987
     compressed bytes/sec: 595572
    msg compression ratio: 0.42

*** Summarizing Initial Row Comparison Step ***

                          Time: 2010-12-11 20:32:27.
                  Elapsed Time: 00:00:00
         Comparisons performed: 103961
               Rows per second: 169593
              Rows out-of-sync: 11
                       inserts: 9
                       updates: 0
                       deletes: 2

Performance Statistics for target Rowhash at 2010-12-11 20:32:27.

                     rows: 103952
          duration (secs): 00:00:01
                 rows/sec: 103952.00
                row bytes: 4344826
            row bytes/sec: 4344826
                bytes/row: 41
             rh bytes/row: 23
             rows skipped: 0
           blocks skipped: 0
           hash comp rate: 0.55
          total comp rate: 0.23
        pct time fetching: 20.51
         pct time waiting: 17.15
     time until first row: 00:00:00
                 ipc msgs: 12
                ipc bytes: 2809779
                bytes/msg: 234148
     compressed bytes/msg: 99256
                bytes/sec: 2809779
     compressed bytes/sec: 1191076
    msg compression ratio: 0.42

COOS source Agent Information:
                       ORACLE_HOME : /s01/10gdb
       NLS_LANG (from environment) :
                          ORA_SDTZ :
              NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1
              NLS_LENGTH_SEMANTICS : BYTE
                   SESSIONTIMEZONE : -05:00
                        Process ID : 21475
                  Operating System : Linux
                      Architecture : x86_64
                       Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___source_coos.rpt
                        Trace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___source_coos.trc

Starting  Veriagt session for target COOS at 2010-12-11 20:32:28.

COOS target Agent Information:
                       ORACLE_HOME : /s01/db_1
       NLS_LANG (from environment) :
                          ORA_SDTZ :
              NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1
              NLS_LENGTH_SEMANTICS : BYTE
                   SESSIONTIMEZONE : +08:00
                        Process ID : 18641
                  Operating System : Linux
                      Architecture : x86_64
                       Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___target_coos.rpt
                        Trace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___target_coos.trc

Persistent out of sync row (optype: insert)

  source row values:

                  T1  K     0     6  107913
           GGROWHASH        1     8  0x0E8563AC22AA9C0F
                  T2  H     2     5  55512
                  T3  H     3    19  MACLEAN IS UPDATING

Persistent out of sync row (optype: insert)

  source row values:

                  T1  K     0     6  107914
           GGROWHASH        1     8  0xAAB002BF5C1B3233
                  T2  H     2     6  255834
                  T3  H     3    19  MACLEAN IS UPDATING

Persistent out of sync row (optype: insert)

  source row values:

                  T1  K     0     6  107917
           GGROWHASH        1     8  0xC0723BE324DC032D
                  T2  H     2     6  197710
                  T3  H     3    19  MACLEAN IS UPDATING

Persistent out of sync row (optype: insert)

  source row values:

                  T1  K     0     6  107918
           GGROWHASH        1     8  0x8A63DA5F06C3A12C
                  T2  H     2     6  194628
                  T3  H     3    19  MACLEAN IS UPDATING

Persistent out of sync row (optype: delete)

  target row values:

                  T1  K     0     8  99993242
           GGROWHASH        1     8  0x958B6304CEC4BAD3
                  T2  H     2     4  1213
                  T3  H     3    11  OUT OF SYNC

*** Summarizing Confirm Out-of-Sync Step ***

                          Time: 2010-12-11 20:32:29.
                  Elapsed Time: 00:00:01
                Rows confirmed: 11
               Rows per second: 11

*** Summarizing Persistently Out-of-Sync Rows ***

              Rows out-of-sync: 5
                       inserts: 4
                       updates: 0
                       deletes: 1

*** Summarizing In-Sync-after-In-Flight Rows ***

  Rows in-sync-after-in-flight: 6
                       inserts: 5
                       updates: 0
                       deletes: 1

*** Summarizing Still-Changing Rows ***

                Rows in-flight: 0
                       inserts: 0
                       updates: 0
                       deletes: 0

Comparison terminated normally.

Comments

  1. LinFeng says

    这文章好像打不开,404 error

    • 你指那篇打不开?http://www.askmaclean.com/archives/goldengate%E5%AE%9E%E7%8E%B0%E5%9C%A8%E7%BA%BF%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB.html 这篇是可以打开的哦

  2. 如果是数据量很大的表,造成全表扫描的话,veridata还好用吗?

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号