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.declarernd number(9,2);
beginfor i in 1..100000 loopinsert into tv values(seqt1.nextval,i*dbms_random.value,'MACLEAN IS TESTING');commit;end loop;
end;
PL/SQL procedure successfully completed./* 在源端随机生成10w行数据 */beginloopdelete 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 load2extract 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 startingGGGSCI (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.00Total updates                              185.00Total deletes                              185.00Total discards                               0.00Total operations                           740.00
*** Daily statistics since 2010-12-11 20:00:32 ***Total inserts                              370.00Total updates                              185.00Total deletes                              185.00Total discards                               0.00Total operations                           740.00
*** Hourly statistics since 2010-12-11 20:00:32 ***Total inserts                              370.00Total updates                              185.00Total deletes                              185.00Total discards                               0.00Total operations                           740.00
*** Latest statistics since 2010-12-11 20:00:32 ***Total inserts                              370.00Total updates                              185.00Total deletes                              185.00Total discards                               0.00Total 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 einitextract 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 OracleVersion 11.1.1.0.0 Build 078Linux, x64, 64bit (optimized), Oracle 10 on Jul 28 2010 15:39:00Copyright (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_64soft 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
SOURCEISTABLE2010-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.99GDatabase 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 - ProductionDatabase 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 rinitreplicat 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 OracleVersion 11.1.1.0.0 Build 078Linux, x64, 64bit (optimized), Oracle 10 on Jul 28 2010 15:58:11Copyright (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_64soft limit   hard limit
Address Space Size   :    unlimited    unlimited
Heap Size            :    unlimited    unlimited
File Size            :    unlimited    unlimited
CPU Time             :    unlimited    unlimitedProcess id: 18554Description:***********************************************************************
**            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):    881MDatabase 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 - ProductionDatabase 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:14MAP resolved (entry CLINIC.TV):map CLINIC.TV, target clinic.tv;
Using following columns in default map by name:T1, T2, T3Using 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 recordsReport 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:         0Last log location read:FILE:      /s01/new/clinictvRBA:       11245052TIMESTAMP: 2010-12-11 20:03:10.969955EOF:       NOREADERR:   400SQL> select count(*) from tv;COUNT(*)
----------100780/* 以上完成了initial load所要求的工作,接着我们打开同步使用的replicat*/
GGSCI (rh3.oracle.com) 3> start rep2
Sending START request to MANAGER ...
REPLICAT REP2 startingGGSCI (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 rep2Sending 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.00Total updates                              102.00Total deletes                              102.00Total discards                               0.00Total operations                           408.00*** Daily statistics since 2010-12-11 20:09:54 ***Total inserts                              204.00Total updates                              102.00Total deletes                              102.00Total discards                               0.00Total operations                           408.00*** Hourly statistics since 2010-12-11 20:09:54 ***Total inserts                              204.00Total updates                              102.00Total deletes                              102.00Total discards                               0.00Total operations                           408.00*** Latest statistics since 2010-12-11 20:09:54 ***Total inserts                              204.00Total updates                              102.00Total deletes                              102.00Total discards                               0.00Total 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 ServerVersion 3.0.0.6Build 002Copyright (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) RemainingCompare Pairs with Errors: 0Compare Pairs with Out-Of-Sync: 0Compare Pairs without Out-Of-Sync: 1Compare Pairs Cancelled: 0Group terminated normally.

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

beginloopdelete 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: newpGeneral:
***********************************************************************Out-Of-Sync Output Format: binaryMaximum Size of EachOut-Of-Sync XML Chunk (Rows): 500Output in-sync rows to OOSfile: false
Output in-sync after in-flightrows to OOS file: trueReport in-sync rows to reportfile: false
Report in-sync after in-flightrows to report file: falseSorting Method:Sort Data Using: databaseMaximum Memory Usage (MB): 50Number Of Concurrent Threads: 4Temporary Storage Directoryfor Source Data:Temporary Storage Directoryfor Target Data:NSort Memory Retry Limit: 0
NSort Memory Retry Wait Interval: 0Initial Compare (General):
***********************************************************************Max Concurrent ComparisonThreads: 4
Terminate when Maximum RecordsOut-Of-Sync: 100000Output Out-Of-Sync RecordDetails to Report File: falseUpdate Report file Every(seconds): 0Update Report file EveryThreads: 0
Terminate when Maximum RecordsOut-Of-Sync: 100000Output Out-Of-Sync RecordDetails to Report File: falseUpdate Report file Every(seconds): 0Update Report file Every(records): 0Limit Number of Input Rows: 0Delta processsing enabled: falseInitial Compare (Event Reporting):
***********************************************************************Generate Messages: bothGenerate Warning Messages ForOut-Of-Sync Rows After(differences): 9999Initial Compare (Agent):
***********************************************************************Use Static Listening Port ForFor Agent During Row HashOn Source: 0Use Static Listening Port ForFor Agent During Row HashOn Target: 0Initial Compare (NonStop Process):
***********************************************************************Source Process Name StartingWith:Source Process CPU Number: -1Source Process Priority: 0Target Process Name StartingWith:Target Process CPU Number: -1Target Process Priority: 0Confirm-Out-Of-Sync (General):
***********************************************************************Perform Confirm Out-Of-SyncStep: trueRun Concurrently WithInitial Compare: trueDelay Confirm-Out-Of-SyncBy (seconds): 0
Terminate when Maximum RecordsOut-Of-Sync: 100000Output Out-Of-Sync RecordDetails to Report File: trueUpdate Report fileEvery (seconds): 0Update Report fileEvery (records): 0Confirm-Out-Of-Sync (Event Reporting):
***********************************************************************Generate Messages: bothGenerate Warning Messages ForFor Out-Of-Sync RowsAfter (differences): 9999Confirm-Out-Of-Sync (Agent):
***********************************************************************Use Static Listening Port ForAgent During Row HashOn Source: 0Use Static Listening Port ForAgent During Row HashOn Target: 0Confirm-Out-Of-Sync (NonStop Process):
***********************************************************************Source Process Name StartingWith:Source Process CPU Number: -1Source Process Priority: 0Target Process Name StartingWith:Target Process CPU Number: -1Target Process Priority: 0Starting  Veriagt session for source rowhash at 2010-12-11 20:32:25.Initial Compare Source Agent Information:ORACLE_HOME : /s01/10gdbNLS_LANG (from environment) :ORA_SDTZ :NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1NLS_LENGTH_SEMANTICS : BYTESESSIONTIMEZONE : -05:00Process ID : 21473Operating System : LinuxArchitecture : x86_64Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___source_rh.rptTrace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___source_rh.trcStarting  Veriagt session for target rowhash at 2010-12-11 20:32:26.Initial Compare Target Agent Information:ORACLE_HOME : /s01/db_1NLS_LANG (from environment) :ORA_SDTZ :NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1NLS_LENGTH_SEMANTICS : BYTESESSIONTIMEZONE : +08:00Process ID : 18639Operating System : LinuxArchitecture : x86_64Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___target_rh.rptTrace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___target_rh.trcProcessing 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: 103959duration (secs): 00:00:02rows/sec: 51979.50row bytes: 4345147row bytes/sec: 2172573bytes/row: 41rh bytes/row: 23rows skipped: 0blocks skipped: 0hash comp rate: 0.55total comp rate: 0.23pct time fetching: 15.44pct time waiting: 5.91time until first row: 00:00:00ipc msgs: 12ipc bytes: 2809974bytes/msg: 234164compressed bytes/msg: 99262bytes/sec: 1404987compressed bytes/sec: 595572msg compression ratio: 0.42*** Summarizing Initial Row Comparison Step ***Time: 2010-12-11 20:32:27.Elapsed Time: 00:00:00Comparisons performed: 103961Rows per second: 169593Rows out-of-sync: 11inserts: 9updates: 0deletes: 2Performance Statistics for target Rowhash at 2010-12-11 20:32:27.rows: 103952duration (secs): 00:00:01rows/sec: 103952.00row bytes: 4344826row bytes/sec: 4344826bytes/row: 41rh bytes/row: 23rows skipped: 0blocks skipped: 0hash comp rate: 0.55total comp rate: 0.23pct time fetching: 20.51pct time waiting: 17.15time until first row: 00:00:00ipc msgs: 12ipc bytes: 2809779bytes/msg: 234148compressed bytes/msg: 99256bytes/sec: 2809779compressed bytes/sec: 1191076msg compression ratio: 0.42COOS source Agent Information:ORACLE_HOME : /s01/10gdbNLS_LANG (from environment) :ORA_SDTZ :NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1NLS_LENGTH_SEMANTICS : BYTESESSIONTIMEZONE : -05:00Process ID : 21475Operating System : LinuxArchitecture : x86_64Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___source_coos.rptTrace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___source_coos.trcStarting  Veriagt session for target COOS at 2010-12-11 20:32:28.COOS target Agent Information:ORACLE_HOME : /s01/db_1NLS_LANG (from environment) :ORA_SDTZ :NLS_LANG (from DBMS) : AMERICAN_AMERICA.WE8ISO8859P1NLS_LENGTH_SEMANTICS : BYTESESSIONTIMEZONE : +08:00Process ID : 18641Operating System : LinuxArchitecture : x86_64Report File : /home/maclean/veridata/agent/dirver/report/maclean_PC_4150_000010110000000100000001___target_coos.rptTrace File : /home/maclean/veridata/agent/dirver/trace/maclean_PC_4150_000010110000000100000001___target_coos.trcPersistent out of sync row (optype: insert)source row values:T1  K     0     6  107913GGROWHASH        1     8  0x0E8563AC22AA9C0FT2  H     2     5  55512T3  H     3    19  MACLEAN IS UPDATINGPersistent out of sync row (optype: insert)source row values:T1  K     0     6  107914GGROWHASH        1     8  0xAAB002BF5C1B3233T2  H     2     6  255834T3  H     3    19  MACLEAN IS UPDATINGPersistent out of sync row (optype: insert)source row values:T1  K     0     6  107917GGROWHASH        1     8  0xC0723BE324DC032DT2  H     2     6  197710T3  H     3    19  MACLEAN IS UPDATINGPersistent out of sync row (optype: insert)source row values:T1  K     0     6  107918GGROWHASH        1     8  0x8A63DA5F06C3A12CT2  H     2     6  194628T3  H     3    19  MACLEAN IS UPDATINGPersistent out of sync row (optype: delete)target row values:T1  K     0     8  99993242GGROWHASH        1     8  0x958B6304CEC4BAD3T2  H     2     4  1213T3  H     3    11  OUT OF SYNC*** Summarizing Confirm Out-of-Sync Step ***Time: 2010-12-11 20:32:29.Elapsed Time: 00:00:01Rows confirmed: 11Rows per second: 11*** Summarizing Persistently Out-of-Sync Rows ***Rows out-of-sync: 5inserts: 4updates: 0deletes: 1*** Summarizing In-Sync-after-In-Flight Rows ***Rows in-sync-after-in-flight: 6inserts: 5updates: 0deletes: 1*** Summarizing Still-Changing Rows ***Rows in-flight: 0inserts: 0updates: 0deletes: 0Comparison terminated normally.

转载于:https://blog.51cto.com/maclean/1277626

Goldengate实现在线数据迁移相关推荐

  1. 在线数据迁移,数字化时代的必修课——京东云数据迁移实践

    打破数据边界,是数字化时代常挂在嘴边的一句话,数据的价值是在流动中体现的,数据应用也是如此.以往为了满足开发.测试.数据保护容灾和数据分析的需要,我们不断对数据进行复制.备份.迁移,因此数据迁移非常重 ...

  2. 做一次完美的数据迁移

    1. 数据迁移概述       数据迁移,是一个非常复杂的过程,不仅仅是将数据从一个地方移动到另一个地方.这里需要考虑业务定义.架构变更.应用改造.数据安全等诸多方面问题.在实际迁移工作中,需要结合企 ...

  3. mysql单机在线迁移_MySQL 不停服务 在线进行100亿数据迁移切换

    MySQL 不停服务 在线进行100亿数据迁移切换 背景: 促销库压力巨大,单实例已经不足以提供写入性能,虽然有256个分表,但是经常io打满,总数据量已经达到100亿,单实例io已经支撑不住,所以方 ...

  4. 阿里云服务器如何简单的迁移数据?阿里云通过镜像实现在线数据复制克隆

    阿里云服务器如何简单的迁移数据?阿里云通过镜像实现在线数据复制克隆 1.相同阿里云账号下 2.服务器没有到期 3.不改变现有数据(包含不局限于操作系统) 实现目的:阿里云服务器如何简单的迁移数据?阿里 ...

  5. Kafka的灵魂伴侣Logi-KafkaManger(4)之运维管控–集群运维(数据迁移和集群在线升级)

    推荐一款非常好用的kafka管理平台,kafka的灵魂伴侣 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台 技术交流 有想进滴滴LogI开源用户群的加我个人微信: jjdl ...

  6. 在线存储、近线存储、离线存储、数据迁移

    在线存储:在线存储是指存储设备和所存储的数据时刻保持"在线"状态,可供用户随意读取,满足计算平台对数据访问的速度要求.就像PC机中常用的磁盘存储模式一样.一般在线存储设备为磁盘和磁 ...

  7. DedeCMS织梦文章数据在线一键迁移至WordPress系统(附插件)

    DedeCMS织梦系统是国内的优秀开源建站系统,使用的网站数量众多,不过近期织梦也要开始收取授权费用了:除个人非盈利网站外,均需要购买DedeCMS商业使用授权,授权费为5800元. 消息一出,WPC ...

  8. 不同数据库之间的数据迁移方案设计及迁移工具选择

    以前的工作迁移过oracle到Informix.oracle和SQLSERVER.oracle到mysql. 在目前的公司又因为去o的关系,做了大量的迁移工作,栽了不少坑,所以和大家交流一下在迁移的过 ...

  9. 轻松上云系列之一:本地数据迁移上云

    本文档围绕如何将您的本地数据迁移到阿里云,提供了多个场景的实践方案. 背景信息 在云计算服务高速发展的今天,如何方便快捷地将已有的服务器系统迁移上云,有着非常重要的意义.阿里云服务器迁移服务方案,即迁 ...

最新文章

  1. ACMNO.3 有三个整数a b c,由键盘输入,输出其中的最大的数。 输入 一行数组,分别为a b c 输出 a b c其中最大的数 样例输入 10 20 30 样例输出 30
  2. 对第三方 SDK 依赖冲突,重新打个包试试
  3. js---25桥模式
  4. 【Cannot convert from [[B] to】 @RabbitListener 反序列化报错
  5. firefox BUG --输入法转换时,关闭浏览器. 5555....... 心碎...
  6. 这4个免费办公神器有多良心?用后就离不开,可惜一般人都不知道
  7. python中线程里面多线程_Python中的线程和多线程是什么
  8. 简述控制反转ioc_Spring学习之——控制反转(IoC)与依赖注入(DI)
  9. 基于Node.js打造Web在线聊天室
  10. 使用触发器对学生表操作进行日志记录
  11. oracle数据库在linux,怎样在Linux系统中备份Oracle数据库
  12. IntelliJ IDEA 12.0搭建Maven Web SSH2架构项目示例(二)
  13. 用友NC 漏洞汇总(转载)
  14. Lexical Simplification with Pretrained Encoders 论文精读
  15. c语言的int型运算符,C语言运算符
  16. 三国赵云传1---辅助研究
  17. 转载 : 张维迎:反思经济学(上、下全篇)
  18. 猿创征文|GISER开发者必备高能武器库
  19. CollectionUtils属于哪个包
  20. 微信公众号,文本消息带a标签的处理

热门文章

  1. 独家 | 林元庆新征程:创立AIbee估值8亿,毗邻百度,吴恩达助攻
  2. Java泛型(类、接口、方法)及通配符
  3. Laravel 大将之 路由 模块
  4. 成吉思汗:意志征服世界——读书笔记
  5. mysql高可用方案之主从架构(master-slave)
  6. 微软推出Azure区块链开发套件,重点解决两大难题
  7. ArcGIS10.2安装教程
  8. [CF1073E]Segment Sum
  9. [Contest20180418]物理竞赛
  10. Exadata Griddisk Can't be auto added