4¡¢GoldenGateͬ²½»ù±¾ÅäÖÃ
GoldenGateÖ§³ÖĿǰ´ó²¿·ÖÖ÷Á÷Êý¾Ý¿â£¬ÕâÒ²ÊÇËüµÄÓÅÊÆÖ®Ò»¡£ÏÂÃæÁоÙÁËOracle¡¢Db2¡¢SybaseÖ®¼äµÄͬ²½¡£
ͬ²½²âÊÔµÄ×¼±¸¹¤×÷ÖУ¬ÓÐÒ»²¿·ÖÊǹ²Í¨µÄ£¬ÈçÏ£º
£¨1£© ÔÚÔ´¶ËºÍÄ¿±ê¶Ë½¨Á¢Ïàͬ½á¹¹µÄÁ½¸ö±í£¬½¨Á¢Ö÷¼ü¡£±£Ö¤¸´ÖƵĶÔÏóÔÚÒ»¿ªÊ¼ÊÇÒ»
Öµġ£
£¨2£© ±£Ö¤Ã»ÓÐÏà¹Ø¶ÔÏóµÄ´¥·¢Æ÷£¨»áµ¼ÖÂÊý¾Ý³åÍ»µÄÄÇЩ£©»òÉèÖÃʧЧ¡£ £¨3£© Êý¾Ý¿âÐèÒª¿ªÆô±ØÐëµÄÈÕ־ģʽ¡£²»Í¬Êý¾Ý¿âµÄÅäÖòîÒìÖ÷ÒªÔÚÕâÒ»²½¡£
£¨4£© Ô´¶ËºÍÄ¿±ê¶Ë¶¼ÐèÒª°²×°ÏàÓ¦°æ±¾µÄGoldenGateÈí¼þ£¬²¢·ÖÅäÒ»¸öÓÐDBAȨÏÞµÄ
Êý¾Ý¿âÓû§¸øGoldenGateÓÃÒÔÁ¬½ÓÊý¾Ý¿â¡£
±¸×¢£º·ÖÅ䏸GoldenGateµÄÓû§Ò»°ãÇé¿öϲ¢²»ÐèÒªÍêÈ«µÄDBAȨÏÞ£¬ÔÚ¹Ù·½ÎĵµÉÏÓÐÏêϸµÄȨÏÞÐèÇó˵Ã÷£¬µ«ÊÇÍêÈ«°´ÕÕÄǸöÅäÖñȽϷ±Ëö¡£¶îÍâµÄ£¬Èç¹ûÊý¾Ý¿âʹÓÃASMʱ£¬ÐèÒªsysdbaȨÏÞ¡£
4.1 oracleÖ®¼äͬ²½ºÍGoldenGate»ù´¡
4.1.1 OracleÊý¾Ý¿âÉèÖÃ
Ê×ÏȰ²×°ºÃORACLE£¬ÉèÖúÃORACLE_SID£¬ORACLE_HOMEµÈ»·¾³±äÁ¿¡£µ±È»£¬ÍƼöµÄ×ö·¨ÊÇÔÚÿ¸ö½ø³ÌÅäÖÃÎļþÀï¶¼¼ÓÉÏÖ¸¶¨µÄ»·¾³±äÁ¿²ÎÊý£¬ÔÚºóÃæÓÅ»¯ÅäÖÃÖнøÐÐ˵Ã÷¡£
OracleÊý¾Ý¿âÐèÒª¿ªÆô¹éµµÈÕÖ¾£¬²¢¿ªÆô×îС¸½¼ÓÈÕ־ģʽ¡£
SQL> select supplemental_log_data_min from v$database; --²é¿´ÊÇ·ñ¿ªÆôÁË×îС¸½¼ÓÈÕ־ģʽ SQL> alter database add supplemental log data; --¿ªÆô×îС¸½¼ÓÈÕ־ģʽ
ʵ¼ÊÉú²úÓ¦ÓÃÖУ¬×îºÃͬʱ´ò¿ªORACLEµÄÇ¿ÖÆÈÕ־ģʽ£¬ÒÔ·ÀÖ¹Ô´Êý¾Ý¿âÒòÖ±½Ó·¾¶¼ÓÔØºöÂÔredoÉú³É¶øµ¼ÖÂÕⲿ·ÖÊý¾ÝÎÞ·¨Í¬²½£º SQL> select force_logging from v$database; SQL> Alter database force logging;
¹â¿ªÆô×îС¸½¼ÓÈÕ־ģʽ»¹²»¹»£¬»¹ÐèÒª´ò¿ª±í¼¶µÄ²¹È«ÈÕÖ¾£¬¿ÉÒÔÔÚGoldenGateÖÐʹÓÃadd trandataÃüÁîÇ¿ÖÆÖØ×öÈÕÖ¾¼Ç¼Ö÷¼üÖµ£¬ÒÔ±£Ö¤ÔÚÄ¿±ê¶ËÄܳɹ¦¸´ÖÆ£º GGSCI> dblogin userid ddw,password ddw --GoldenGateÖеǼOARCLEÊý¾Ý¿â GGSCI>add trandata ddw.
GGSCI> add trandata coss3.per_test,nokey,cols(sampletime, objectid) --ÎÞÖ÷¼üÖ¸¶¨×ֶβ¹È«µÄʾÀý
רҵ×ÊÁÏ
Ò²¿ÉÒÔÔÚÊý¾Ý¿âÖдò¿ª£º
SQL> alter table
ǧÍò²»ÒªÐ¡¿´Õâ²½ÈÕÖ¾ÉèÖã¬ÆäʵÔÚGoldenGateµÄÅäÖÃÖУ¬Õâ²½ÊÇ×îÈÝÒ׳ö´íµÄ»·½Ú¡£Èç¹û¿ªÆôDDL¸´ÖÆ×öÈßÔÖ±¸·Ý£¬×îºÃÖ±½ÓÔÚÊý¾Ý¿â¼¶±ð´ò¿ª²¹È«ÈÕÖ¾£º
SQL> alter database add supplemental log data (primary key,unique,foreign key) columns;
¼ì²éһϣ¬È«ÊÇYES¾ÍOKÁË£¨Õû¸öÊý¾Ý¿â¼¶±ð²¹È«£©
SQL> select supplemental_log_data_min,
supplemental_log_data_pk,supplemental_log_data_ui from v$database;
4.1.2¹ØÓÚOracle²¹È«ÈÕÖ¾²¹³ä˵Ã÷
OracleÈÕÖ¾£¨redo log£©Ò»°ãÓÃÓÚʵÀý»Ö¸´ºÍ½éÖʻָ´£¬µ«ÊÇÈç¹ûÐèÒª¿¿ÈÕÖ¾»¹ÔÍêÕûµÄDML²Ù×÷ÐÅÏ¢£¨±ÈÈçLogmnr¡¢StreamsºÍÕâÀïµÄGoldengate£©£¬Ä¬ÈϼǼµÄÈÕÖ¾Á¿»¹²»¹»¡£±ÈÈçÒ»¸öUPDATEµÄ²Ù×÷£¬Ä¬ÈÏredoÖ»¼Ç¼ÁËrowidÒÔ¼°±»Ð޸ĵÄ×Ö¶ÎÐÅÏ¢£¬µ«ÕâÀïGoldenGate»¹ÔÕâ¸öÊÂÎñ£¬ÒòΪ²»ÊǸù¾Ýrowid¶øÊÇSQL²ãÃæ¸ù¾ÝΨһ¼üÖµÀ´¶¨Î»¼Ç¼£¬ËùÒÔ»¹ÐèÒª½«Ö÷¼ü»òÕ߯äËû×ֶεÄÐÅÏ¢¸½¼Óµ½ÈÕÖ¾ÖÐÈ¥¡£ÒªÍùÈÕÖ¾ÖÐÔö¼ÓÕâЩ¶îÍâ×Ö¶ÎÐÅÏ¢µÄ²Ù×÷£¬¾ÍÊÇ¿ªÆô²¹È«ÈÕÖ¾£¬¼´Add Supplemental Logging¡£´ò¿ª²¹È«ÈÕÖ¾£¬»áʹÊý¾Ý¿âµÄÈÕÖ¾Á¿Ôö¼Ó£¬ËùÒÔÖ»´ò¿ªÐèÒªµÄ¼¶±ðºÍ¶ÔÏó¼´¿É¡£
Oracle²¹È«ÈÕÖ¾¿ÉÒÔÔÚÊý¾Ý¿â¼¶±ðÉèÖã¬Ò²¿ÉÒÔÔÚ±í¼¶±ðÉèÖá£ÔÚÊý¾Ý¿â¼¶±ðÖУ¬²¹È«ÈÕÖ¾°´²¹È«µÄÐÅÏ¢Á¿£¬¶ÔÓ¦ºÃ¼¸¸ö¼¶±ð£º
£¨1£© ×îС¸½¼ÓÈÕÖ¾£¨Minimal supplemental logging£©£ºÊÇ¿ªÆôlogmnrµÄ×îµÍÈÕÖ¾Òª
Çó£¬ÌṩÁËÐÐÁ´½Ó£¨chained rows£©ºÍ¶àÖÖÊý¾Ý´æ´¢£¨±ÈÈç¾Û´Ø±í¡¢Ë÷Òý×éÖ¯±í£©µÄÐÅÏ¢¡£ÔÚOracle 9.2Ö®ºóµÄ°æ±¾ÖУ¬Ä¬È϶¼²»¿ªÆô¡£
£¨2£© Ö÷¼ü²¹È«£¨Primary key supplemental logging£©£ºÔÚÈÕÖ¾Öв¹È«ËùÓÐÖ÷¼üÁС£Èç
¹û±íÖÐÎÞÖ÷¼ü£¬Ôò²¹È«Ò»¸ö·Ç¿ÕΨһË÷ÒýÁУ»Èç¹û·Ç¿ÕΨһË÷Òý¼üҲû£¬ÄÇô»á²¹È«³ýÁËLOBºÍLONGÀàÐÍ×Ö¶ÎÒÔÍâµÄËùÓÐÁУ¬Õâʱ¾ÍºÍÏÂÃæµÄËùÓв¹È«Ò»ÑùÁË¡£
£¨3£© Ψһ¼ü²¹È«£¨Unique key supplemental logging£©£ºµ±Î¨Ò»¼üÁлòλͼË÷ÒýÁб»
ÐÞ¸Äʱ£¬ÔÚÈÕÖ¾Öв¹È«ËùÓÐΨһ¼üÁлòλͼË÷ÒýÁС£´ò¿ªÎ¨Ò»¼ü²¹È«Ò²»áͬʱ´ò¿ªÖ÷¼ü²¹È«¡£×¢ÒâÕâ¸ö¼¶±ðÊÇÐèÒªÌõ¼þ´¥·¢µÄ¡£
£¨4£© Íâ¼ü²¹È«£¨Foreign Key supplemental logging£©£ºµ±Íâ¼üÁб»ÐÞ¸Äʱ£¬½«ÔÚÈÕÖ¾
Öв¹È«ËùÓÐÍâ¼üÁС£Õâ¸ö¼¶±ðÒ²ÊÇÐèÒªÌõ¼þ´¥·¢µÄ¡£
£¨5£© ËùÓв¹È«£¨All supplemental logging£©£ºÔÚÈÕÖ¾Öв¹È«ËùÓÐ×ֶΣ¨ÅųýLOBºÍ
LONGÀàÐÍ£©¡£
ÕâÀï¶ÔÓÚ²¹È«ÈÕÖ¾µÄÏêϸ²Ù×÷Óï¾ä²»×öһһ˵Ã÷¡£
Êý¾Ý¿â¼¶±ðÖеÄ5¸öÀàÐÍÖУ¬³ýÁË×îС¸½¼ÓÈÕÖ¾¼¶±ð£¬¶¼¿ÉÒÔÔÚ±í¼¶½øÐÐÉèÖᣳý´Ë
רҵ×ÊÁÏ
Ö®Í⣬±í¼¶»¹¿ÉÒÔÃ÷È·Ö¸¶¨ÐèÒª²¹È«µÄÁС£
Oracle±í¼¶²¹È«ÈÕÖ¾ÐèÒªÔÚ×îС²¹È«ÈÕÖ¾´ò¿ªµÄÇé¿öÏÂ²ÅÆð×÷Ó㬼´ÈôÒ»¸öÊý¾Ý¿âûÓпª×îС²¹È«ÈÕÖ¾»ò֮ǰdrop supplemental log data²Ù×÷Ôò¼´±ãÖ¸¶¨ÁË±í¼¶²¹È«ÈÕÖ¾£¬Êµ¼ÊÔÚÖØ×öÈÕÖ¾Êä³öµÄ¹ý³ÌÖÐÃèÊöµÄ¼Ç¼ÈÔÖ»¼Ç¼rowidºÍÏà¹ØÁÐÖµ¡£¶øÒª¹Ø±Õ×îС²¹È«ÈÕÖ¾£¬Ò²±ØÐëÊ×ÏȹرÕÊý¾Ý¿â¼¶±ðµÄÆäËû²¹È«¼¶±ðºó£¬²ÅÄܹرա£ ËùÒÔÔÚGoldenGateÖУ¬¶ÔÓÚOracleÊý¾Ý¿âµÄÈÕÖ¾²¹È«ÒªÇó£¬ÖÁÉÙÊÇ´ò¿ª×îС¸½¼ÓÈÕÖ¾ºÍÖ÷¼ü²¹È«¡£Ö÷¼ü²¹È«Ö»ÒªÔÚÐèҪͬ²½µÄ±íÉÏ¿ªÆô¼´¿É¡£µ±È»GoldenGateµÄadd trandataÓï·¨ÖÐÒ²¿ÉÒÔÖ¸¶¨²¹È«µÄÁУ¬ÕâºÍOracle±í¼¶²¹È«ÈÕÖ¾µÄ¹¦ÄÜÍêȫһÖ¡£±Ï¾¹£¬ÈÕÖ¾»¹ÊÇÓÉÊý¾Ý¿âÉú³ÉµÄ£¬GoldenGate²¢²»ÄÜÖ±½Ó¿ØÖÆÈÕÖ¾µÄÉú³É·½Ê½ºÍ¹æÔò£¬Ö»Äܸù¾ÝËù²¶»ñµÄÊý¾Ý¿âµÄÈÕÖ¾¹æÔò¶øÀ´¡£²»Í¬µÄÊý¾Ý¿â£¬ÈÕÖ¾²¹È«µÄ¹æÔòÒ²»á²»Í¬¡£
ÒÔÉϲ¿·ÖÄÚÈݲο¼×Ô¡¶Oracle 10gR2 Utilities¡·Supplemental Logging²¿·Ö
4.1.3 dmlͬ²½
4.1.3.1 Ò»¶ÔÒ»µÄʵʱͬ²½¼òµ¥ÅäÖÃ
ͬ²½Á÷³ÌÈçͼ£º
£¨1£©Ô´Êý¾Ý¿â¶ËÌí¼ÓÌáÈ¡½ø³Ì£¨extract process£©
GGSCI> add extract extl,tranlog,begin now --ÐÂÔö³éÈ¡½ø³Ìextl£¬»ùÓÚÈÕÖ¾·½Ê½£¬Á¢¼´ÉúЧ ÐèҪעÒâµÄÊÇ£¬GoldenGateÖеĽø³ÌÃû×ֻÄÜ8¸ö×Ö·û¡£
×¢Ò⣬Èç¹ûÊÇÔÚRAC»·¾³Ï£¬ÐèÒªÔÙ¼ÓÉÏTHREADS
GGSCI> edit param extl --Éú³É²¢±à¼Í¬ÃûÅäÖÃÎļþ /***
extract extl --³éÈ¡½ø³ÌÃû
רҵ×ÊÁÏ
userid ddw@orcl,password ddw --Á¬½Ó±¾»úDBµÄÕʺÅÃÜÂë
rmthost 192.168.0.44, mgrport 7801 --Ä¿±êÊý¾Ý¿â·þÎñÆ÷µØÖ·ºÍGG·þÎñ¶Ë¿ÚºÅ rmttrail d:\\tools\\GG\\gg10g\\dirdat\\rl --Ô¶³Ì¶ÓÁеÄλÖã¨ÏÂÒ»²½½¨µÄ¶«Î÷£© dynamicresolution --ÓÅ»¯²ÎÊý£¬¶¯Ì¬·ÖÎö±í½á¹¹ gettruncates --ץȡtruncateÊý¾Ý
table ddw.aatest; --ÐèÒª³éÈ¡µÄ±í£¬¿ÉÒÔʹÓÃͨÅä·û ***/
È»ºó¸øÕâ¸öÌáÈ¡½ø³Ì´´½¨Ô¶¶Ë¶ÓÁУ¬¼´Í¼ÖеÄRMTTRAIL£º GGSCI> add rmttrail d:\\tools\\GG\\gg10g\\dirdat\\rl extract extl
ÐèҪעÒâµÄÊÇ£¬ÕâÀï×îºóµÄÃû³Ærl£¨¿ÉÒÔ×Ô¶¨Ò壬×Öĸ»òÊý×Ö£©ÊÇÖ¸ÒÔºóÉú³ÉµÄtrailÎļþ¶¼»áÒÔrl¿ªÍ·£¬Èçrl000001£¬Õâ¸öÎļþÍ·Ãû³Æ×ֻÄÜ2¸ö×Ö·û¡£Èç¹ûÐèÒªÔÚÎļþ¼¶±ðÇø·Ö¶ÓÁУ¬½¨Ò齫¶ÓÁд´½¨ÓÚÓÚ²»Í¬µÄĿ¼Ï¡£
¿ªÆôÕâ¸öÌáÈ¡½ø³Ì£º GGSCI> start extl
GGSCI> info all --²é¿´ËùÓнø³Ì״̬
´Ëʱextl½ø³ÌrunningÔò±íʾÒѳɹ¦ÔËÐУ¬Õâʱ¿ªÊ¼»áÔÚÇ°ÃæÖ¸¶¨µÄÄ¿±ê¶Ë¶ÓÁÐλÖÃÉú³ÉtrailÎļþ¡£Èç¹û½ø³Ì³ö´í£¬¿ÉÒÔʹÓÃview report extl ²é¿´´íÎóÐÅÏ¢¡£
£¨2£©Ä¿±êÊý¾Ý¿â¶ËÌí¼Ó¸´ÖÆÓ¦Óýø³Ì£¨replicat process£©
ÔÚÄ¿±ê¶ËGoldenGateÃüÁîÐÐÖÐÅäÖø´Öƽø³Ì£º
GGSCI>add replicat repl exttrail d:\\tools\\GG\\gg10g\\dirdat\\rl,begin now,nodbcheckpoint ¨CÐÂÔö¸´Öƽø³Ì£¬Ê¹ÓöÔÓ¦µÄ¶ÓÁÐrl£¬¼´¿Ì¿ªÊ¼£¬Ê¹ÓÃÎļþ¼ì²éµã GGSCI>edit param repl --ÅäÖø´Öƽø³Ì²ÎÊý /***
replicat repl --¸´Öƽø³ÌÃû
userid ddw@orcl,password ddw --Ä¿±êÊý¾Ý¿âµÄÕʺÅÃÜÂë
assumetargetdefs --Á½Ì¨Êý¾Ý¿âÊý¾Ý½á¹¹Ò»ÖÂÔòʹÓô˲ÎÊý reperror default,discard --Èç¹û¸´ÖÆÊý¾Ý³ö´íÔòºöÂÔ
discardfile D:\\repsz.dsc,append,megabytes 100 --´íÎóÐÅϢдÈëXXXXÎļþ£¬×·¼Óģʽ£¬×î´ó100m
gettruncates --¸´ÖÆtruncate²Ù×÷ map ddw.aatest, target ddw.aatest_1; --Ó³Éä¹ØÏµ£¬×¢Òâtargetǰ±ØÐëÁôÒ»¸ö¿Õ¸ñ --map ddw.aatest, target ddw.aatest_1, keycols (name), where (TYPE1 = \
--¼ÓÁ½ºá¸ÜÔÚÅäÖÃÎļþÖнøÐÐ×¢ÊÍ£»keycolsÖ¸¶¨Î¨Ò»¼ü£»whereɸѡÊý
¾Ý
***/
¿ªÆô¸´Öƽø³Ì£º GGSCI>start repl
ÖÁ´Ë£¬Ò»¸ö×î¼òµ¥µÄͬ²½ÅäÖÃÍê³É£¬¶ÔÓÚÔ´Êý¾Ý¿âÏàÓ¦±íµÄinsert£¬update£¬deleteºÍ
רҵ×ÊÁÏ