¤À´²¦¡¸ê®Æ®w¤Îªí®æ½Æ»sTable Replication

DBMaker¦³µÛ¥t¶µ±j¤jªº¥\¯à¡G¡u¤À´²¦¡¸ê®Æ®w¡v¡A¦ý¨Ï¥ÎªÌ©¹©¹©¿²¤¡F¥»½g¦®¦b»¡©ú¡A¦b¤°»ò¼ËªºÀô¹Ò»Ý­n¨Ï¥Î³o¼Ëªº¥\¯à¡A¤Î³o¶µ¥\¯à¯à±aµ¹¨Ï¥ÎªÌªº¦n³B¡C

1.      ¬°¤°»ò»Ý­n¨Ï¥Î¤À´²¦¡¸ê®Æ®w

²³æ¦a»¡¡A¸ê®Æ®w°ò¥»¤W¬O±Ä¶°¤¤¦¡ºÞ²z¡A¦ý²{¹ê¥Í¬¡ùØ¡A¨Ï¥ÎªÌ«o¥i¯à¤À§G¦b¦U¦a¡C­Y¬O¨Ï¥ÎªÌ³B©ó¹s´²¥BµL³W«ßªº¦a²z¦ì¸m¡A¨º»ò¨Ï¥ÎWeb©ÎAP Server¡A¨Ó¦s¨ú¸ê®Æ®w¡A©{¦p¦³­Ó¥N²z¤HÀ°±zªA°È¡A³o¼Ë¦ü¥G¬O³Ì¦nªº¸Ñ¨M¤è¦¡¡A¦ý²{¹ê¥Í¬¡¤¤¡A¨Ï¥ÎªÌ©¹©¹¬O»E¶°¦¨¼Æ­Ó¤j¡u¸sÅé¡v¡A±`¨£ªº«K¬O´²§G¦b¡u¤À¤½¥q¡vªº¨Ï¥ÎªÌ¡C

¨º»ò¡A­Y±N¸ê®Æ®w©ñ¸m¨ì¤@­Ó¶°¤¤¦aÂI(¨Ò¦p¡G¥x¥_)¡A©TµM¬OºÞ²z¤W¸û¬°¤è«K¡A¦ý¬O¥x¤¤¡B°ª¶¯ªº¨Ï¥ÎªÌ¡A«o­n§Ô¨ü¸ûºCªººô¸ôÀW¼e¡C

¦P®É¡A¦³¨Ç¦a°ì©Êªº¸ê®Æ¡A¨Æ¹ê¤W¦s©ñ¦b¥x¥_Á`¦æ¡A¨Ã¤£¨£±o¦X²z¡AÁ`¦æ¥i¯à¶·­nªº¬O¥x¤¤¡B°ª¶¯ªº²Î­p©Ê¸ê®Æ¡A¦Ó¤£»Ý­nª¾¹D¥x¤¤¤À¦æªºÂø¤ä¶O¥Î¡B¹q¸Ü¶O¥Îµ¥²Ó³¡¶O¥Î¡C

¥H¤H¨Æ¸ê®Æ¬°¨Ò¡A¥x¥_¦³¥x¥_ªº¤H¨Æ¸ê®Æ¡A¥x¤¤¡B°ª¶¯¤]³£¦³¦U¦Ûªº¤H¨Æ¸ê®Æ¡A­Y¦b³]­pªí®æ®É¡A¥i¯à·|¥Î¥H¤U³o­Ó¤è¦¡¨Ó³]­p¡G

¤H¨Æªí®æ

©m¦W ­û¤u½s¸¹ ¡K ¡K ©Ò¦b¦a
Sharon 001 ¡K ¡K ¥x¥_
Alen 002 ¡K ¡K ¥x¤¤

©Î¬O¡G

¥x¥_¤H¨Æªí®æ

©m¦W ­û¤u½s¸¹ ¡K ¡K
Sharon 001 ¡K ¡K
       

¥x¤¤¤H¨Æªí®æ

©m¦W ­û¤u½s¸¹ ¡K ¡K
Sharon 001 ¡K ¡K
       

·Q¤@·Q¡A©Ò¦³ªºÀ³¥Îµ{¦¡¤Î¨Ï¥ÎªÌ¡A¥²¶·±q¥x¤¤¡B°ª¶¯ª½±µ³s±µ¨ì¥x¥_¨Ó¦s¨ú¸ê®Æ®w¡A¥i¯à·|ªá¤W·¥¬°©ù¶Qªº®É¶¡¦¨¥»¡A¦Ó©Ò­n±o¨ìªº¸ê®Æ¡A¥i¯à³º¬O¡u¥x¤¤¡v¦Û¤vªº¤H¨Æ¸ê®Æ!

¡u¤À´²¦¡¸ê®Æ®w¡vªº³]­p²z©À«K¬O¡G¡u±N¤@­ÓÅÞ¿è©ÊªºÁ`Åé¸ê®Æ®w¡A¤À´²¦¨¼Æ­Ó¹êÅé¸ê®Æ®w¡C¡v¨Ò¦p¡A¤W­z¤½¥q¸ê®Æ®w¡A¬O¤@­ÓÅ޿誺¾ãÅé¡A§Ú­Ì¥i±N¥¦¤Æ¾ã¬°¹s¡A¥Î¼Æ­Ó¹êÅé¸ê®Æ®w´²§G¦b¥x¤¤¡B°ª¶¯¡A¦p¦¹¤@¨Ó¡A¤W­z°ÝÃD«K¥iÁ{¤b¦Ó¸Ñ¡C

2.      ¤À´²¦¡¸ê®Æ®w³]­p

(1)   ¾î¦V¤À³Î

¾î¦V¤À³Î¡A§Y¬O¥x¥_¡B¥x¤¤¡B°ª¶¯¦U¦aªº¸ê®Æ®w¡A©¼¦¹¦³µÛ¬Û¦Pªºµ²ºc¡A¦Ó¦U¦Û¦s©ñ¦U¦Û±MÄݪº¸ê®Æ¡F¨Ò¦p¡G¦U¦a¸ê®Æ®w³£¦³¤H¨Æ¡B·|­p¡B­ÜÀx¡Kµ¥µ¥ªí®æ¡A¥u¬O¥x¤¤©ñ¥x¤¤ªº¸ê®Æ¡A¥x¥_©ñ¥x¥_¦Û¤vªº¸ê®Æ¡C

(2)   ««ª½¤À³Î

Áa¦Vªº««ª½¤À³Î¡A«K¬O¥\¯à§Oªº¤Á³Î¡A¨Ò¦p·|­p¡B¤H¨Æ¸ê®Æ©ñ¦b¥x¥_Á`¤½¥q¡A¦ý¥Ñ©ó°ª¶¯¬O­Ü®w¡A¬G­ÜÀxªí®æ©ñ¦b°ª¶¯¡A­Y¼t°Ó¦h¦b¥x¤¤¡A¨º»ò¼t°Ó¡B¶i³fµ¥¬ÛÃöªí®æ´N©ñ¥x¤¤¡A¥D¥H¥\¯à§O¬°¾É¦V¡C

(3)   ºî¦X

²{¹ê¦Ò¶q¤W¡A¤W­zµ²ºc¥¼¥²²Å¦X¹ê»Ú»Ý¨D¡A©Ò¥H¹ê»Úªº¨Ò¤l¤¤¡A©¹©¹¬Oºî¦X¤W­z¨âºØ¤è¦¡¡A½Õ¾ã¥X²Å¦X¦Û¨­»Ý¨Dªº¬[ºc¡A¨Ò¦p¡G­ÜÀx¸ê®Æ¥i¥H¤À§G¦b¦U¦a¡A¦Ó¤H¨Æ¡B°]°È¤è­±ªº¸ê°T¥i¥H²Î¤@©ñ¦b¥x¥_¡A¤è«KºÞ²z¡F°w¹ï»Ý¨D­±¡A§@¨â¤è­±ºî¦X©Ê³]­p¡C

1.        ¥\¯à¯S©Ê¤ÀªR

¥H¤W¹Ï¨Ó»¡©ú¡A¹êÅ馳¤T­Ó¸ê®Æ®w¡A¦ý¾ã­Ó¥iµø§@¤@­ÓÅÞ¿è¤Wªº¸ê®Æ®w¡C

¦b¤Á³Î®É¡A§Ú­Ì¥i¥ý±N¾ã­Ó¨t²Îªº¦s¨úÃö«Yø»s¦¨¹Ï¡AµM«áÀ˵ø¦U­Óªí®æ©Ò§t¬Aªº¬O¦ó¸ê®Æ¡A¦U­Ó¥\¯à¤S·|¥h¦s¨ú¨º¨Çªí®æ¸ê®Æ¡C


¤W¹Ï¤¤¡A¥H¤@­Ó¡u­q³f-¥X³f¡vªº¥\¯à¨Ó¬Ý¡A­º¥ýUser¥²¶·¥ý±q¡u«È¤á-­û¤u-²£«~¡v²Õ¦¨¤@±i­q³æ¡A·s¼W¤@µ§À³¦¬±b´Ú¨ì·|­pªí®æ¡B¤@±i¥X³f³æ¨ì¥X³fªí®æ¡A¤Î´î¤Ö­ÜÀx¸ê®Æ¤¤¦s³fªº¼Æ¶q¡C

«È¤á¦W³æ¬O§_¦³¦a°ì©Ê¦]¯À?­Y¬O¥x¥_ªºuser¡A­±¹ïªº´X¥G³£¬O¥x¥_ªº«È¤á¡A¥x¤¤ªºuser«o´X¥G¤£·|³B²z¨ì¥x¥_ªº«È¤á¡A¨º»ò«È¤á¦W³æ¦C¦¨¤T¥÷¡A¦U¦a³B²z¦U¦aªº¡A´N¤Q¤À¦X²z¡C

¦ý¬O¤½¥qªº­û¤u¡A´N¨S¦³¥R¤À²z¥Ñ³Î¦¨¤T¦a¡A©Ò¥H¤T¦aªº¨Ï¥ÎªÌ¡AÀ³¸Ó­n¥Î¦P¤@¥÷ªº­û¤u¦W³æ¡F¦P¼Ëªº¡A¤T¦a©Ò­±¹ïªº²£«~¸ê®Æ¥çÀ³¤@­P¡C

±µ¤U¨Ó¬O²Õ¦X¦¨ªº­q³æ¡A°Ñ°u¤½¥q±ø¥ó¡A¦b¡u­q³f-¥X³f¡vªº°Ê§@¤¤¡A¥x¥_¤Uªº­q³æ¡A»P°ª¶¯¤Uªº­q³æ¡A¤T¦a¸ê®Æ¥i¿W¥ß¡A·s¼W¡uÀ³¦¬±b´Ú¡v¨ì·|­pªí®æ¤]¬O¤@¼Ë¡A¤T¦a¥i¦U¦Û¿W¥ß¡F(¦ý¦pªG²{¦bÁ`¤½¥q­n¶i¦æ¡u·|­p¡v¬ÛÃöªº¥\¯à¡A¨Ï¥ÎªÌ­±¹ïªºÀ³¸Ó¬OÁ`Å骺­q³æ¸ê®Æ¡A¤À¦¨¥x¥_¡B¥x¤¤¡B°ª¶¯¨Ã¨S¦³¤Ó¤jªº·N¸q)¡C

­ÜÀx¸ê®ÆÀ³¬O³Ì¦a°ì©Êªº¡A¥u­n·s¼W¤@±i¥X³f³æ¨ì¦U¦a­ÜÀx§Y¥i¡A²{¦b¥H¥x¤¤ªº¨Ï¥ÎªÌ¬°¨Ò¡A±µ¨ì¥x¤¤«È¤á­q³æ¡A¦b°ª¶¯¥X³f¡A»s¹Ï¦p¤U¡G


¦A¦¸±j½Õ¡A³o¼Ëªº¬[ºcÁÙ¬O­n¨Ì¤½¥q»Ý¨D¬°¥D¡A¦³¨Ç¤½¥q´N¤£»{¬°«È¤á¸ê®Æ¶·­n¦³¯S§Oªº¦a°ì¤Æ¡A¦Ó¬O¥þ¤½¥q³£¨Ï¥Î¦P¤@¥÷«È¤á¸ê®Æ¡C

§Ú­Ì¥²¶·¥H¡u¥\¯à¡v(¨Ò¦p¡G¤W­zªº­q³æ°Ê§@)¨ÓµûÂ_¡u¤À³Î¡vªº²z¥Ñ©Ê¡A¨Ò¦p¡G­q³æ¸ê®Æ¡A¥Ø«e¼È©w¬°¡u¤À³Î¡v¡A¥x¤¤²Õ¦X¦¨ªº­q³æ©ñ¦b¥x¤¤¦Û¤v³oùØ¡A¦ý¬O­Y¬O²{¦b­n§@¥þ¤½¥qªº­q³æ²Î­p®É¡A³o¼Ëªº¤À³Î¤Ï¦Ó¤£¦n¡C°Ñ°u¤½¥qªº¦U¶µ¡u¥\¯à¡v«á¡Aµ¹¤©¿Å¶qÅv¼Æ¡A¨Óµû©w¡u¤À³Î¡vªº²z¥Ñ¥R¤À©Ê¡A¨Ò¦p¡u­ÜÀx¸ê®Æ¡vªº²z¥Ñ©Ê´N«Ü°÷¡A¦]¬°¥ô¦ó¤@­Ó­ÜÀx¥\¯à(¨Ò¦p¡G½LÂI)¡A¤£¤Ó¥i¯à¥s¥x¥_Á`¤½¥qªº¤H¥h¶i¦æ¦U¤À¤½¥qªº½LÂI¡A¦Ó¬O¥æµ¹¦U¦a­ÜºÞ¤H­û¡A©Ò¥H¦b¦¹¤w¸g½T©w­ÜÀx¥²¶·¤À³Î¡C

2.        ºô¸ô³t«×

±µ¤U¨Ó¡A¦b§@³o¤è­±ªº³W¹º®É¡A¤]­n¦Ò¶q¨ìºô¸ôªº³t«×¡A¦]¬°¦a°ì©Êªº»·ªñ±`¦ñÀHµÛ¤@­Ó°ÝÃD¡A«K¬Oºô¸ô³t«×µLªk¹³°Ï°ìºô¸ô³o¯ë§Ö³t¡A­Y¬O¶°¤¤¦¡ªº¸ê®Æ(¦p¹Ï¤¤ªº·|­p¡B°]°Èªí®æ)»Ý­n±`±`³Q¦s¨úªº¸Ü¡A¨º»ò¥x¤¤¡B°ª¶¯±`±`­n¨ì¦Ñ»·ªº¥x¥_§@¸ê®Æ¦s¨ú¡B²§°Ê¡A³o¼Ëªº³W¹º¤Ï¦Ó·|©ì¸ó®Ä¯à¡A¤£¨£±o¦n¡C

3.        ¦]À³»Ý¨D¤Î¤ÀªR¡A§é°J¨M©w³Ì«á¬[ºc

3.      DBMaker¤À´²¦¡¸ê®Æ®wªº¨Ï¥Î

(1)   ¤À´²¦¡¸ê®Æ®wªº³]©w¨BÆJ

¦bDBMaker¤¤¡A­n¨Ï¥Î¤À´²¦¡¸ê®Æ®w«D±`ªºÂ²³æ¡A¥u­nÁʶRªº±ÂÅv½d³ò¤º³\¥i¡A¥u­n¦bdmconfig.ini¤¤¥[¤WDD_DDBMD=1¡A­«·s±Ò°Ê¸ê®Æ®w¡A«Kµo¥Í®ÄªG¤F¡C

¨Ï¥ÎªÌ¥i¥H¨Ï¥Î¡uselect * from SYSUSER¡v¡A·|µo²{¦h¤F¤@­ÓGTRECO_Dªºdaemon¡A³o­ÓDaemon¥D­nªº¥\¥Î¬O¥Î¨Ó§@¡u¥þ°ì¥æ©ö¡vªººÞ²z(Global Transaction)¡A¦ó¿×¡u¥þ°ì¥æ©ö¡v©O??¤@¯ëªº¥æ©ö¦hµo¥ÍLocalªº¸ê®Æ®w¤º³¡¡A¦ý¬O¥þ°ì¥æ©ö¶·­n»P¥~³¡ªº¹êÅé¸ê®Æ®w§@³s±µ¡A©Ò¥H¥²¶·­n¦Ò¼{ºô¸ô¬O§_í©w¡B¹ï¤è¸ê®Æ®wªºconstraint­­¨î¡A³oºØ¾÷¨î¦h¬O¥Î¡u¤G¶¥¬qcommit¡v¨Ó¹ê§@¡C

¨â¶¥¬qcommitªº·N«ä¬O»¡¡A·íÀ³¥Îµ{¦¡³s¦ÜDB_A­n¶i¦æ¥æ©ö¡A¦P®É¦¹¥æ©ö·|¥h§ó°ÊDB_Bªº¸ê®Æ®w¤º®e¡A¦¹®É¤£·|³w¦æ¹ïDB_B§@commitªº°Ê§@¡A¦Ó¬O¥ý¥h¸ß°Ý¡G¡uDB_B¬O§_¤¹³\commit??¡v¡A·íDB_B¦^µª¡u¥i¡v®É¡A¤~·|¦b²Ä¤G¶¥¬q¯u¥¿°õ¦æCommit¡A³o·í¤¤¡A¥Ñ©ó»Ý­n¦U­Ó°Ñ»PªÌ¡A¹ï¨ó½ÕªÌ§@¥X¦^À³¡A¬GºÙ¤§¬°¡u¥þ°ì¥æ©ö¡v¡CGRECO_D«K¬O¦b¶i¦æ³o¼Ëªº¨ó½Õ¤u§@¡C

ª`·N¡A¦b°Ñ»PªÌªºDB¨âºÝ¡A³£»Ý³]©wDD_DDBMD=1¡A¦ý¹ï©ó¹ï¤èªº³]©w¡A«hµL»Ý³]©w¦¹keyword(¦¹keyword¥u¦bServerºÝµo¥Í®Ä¥Î)¡C¦ý¨âÃä¹ï·í¦aªºDB³£»Ý³]©w¡A¦p¤U¨Ò©Ò¥Ü¡G

¦bSite A

[DB_A]

¡K.

DB_DDBMD=1

[DB_B]

¡K

(µL»Ý³]©w)

Site B

[DB_B]

¡K.

DB_DDBMD=1

[DB_A]

¡K

(µL»Ý³]©w)

¨âÃä­«·s¶}±ÒDB«á¡A¨âªÌ´N¥i»¡¬O¤w¸g¦P¬O°Ñ»PªÌ¤F¡C²{¦b¨Ï¥Î¤u¨ã¶i¤JDB_A¡A­Y¬O·Q­nª¾¹DDB_Bªº¸ê®Æ¡A¥u­n¤U¹F¡G

select * from DB_B:OWNER_NAME.TABLE_NAME;

«K¥iÂ^¨ú»·¤è¸ê®Æ¡C

(2)   ¤À´²¦¡¸ê®Æ®wªºÅv­­±±ºÞ

¥t¥~­nª`·Nªº¬O¡G¥Ñ©ó³oÄÝ©ó¡u¤À´²¦¡¸ê®Æ®w¡v¡A¾¨ºÞ¦U­Ó°Ñ»P¸ê®Æ®w¥i¯à´²¸¨¦U¦a¡A¦ý¬OÅÞ¿è¤W-¡u¤j®a³£¬O¦P¤@°ê¡vªº¡C¨º»ò¦b¦U¦aªº¨Ï¥ÎªÌºÞ²z¤W¡A´N­nµy¥[¯d·N¡C

¨Ò¦p¡G¦bDB_A¤¤ªº¡usharon¡v¡A·ílogin¶iDB_A®É¡A·Q­n¦s¨úDB_Bªº¸ê®Æ®É¡ADBMaker¬O¥Hsharon¦blogin DB_A®É©Ò¥ÎªºUserName¤ÎPassword¨Óµn¤JDB_B¡A©Ò¥H­Y¬O¦bDB_B¤¤µLsharon¨ä¤H®É¡A«K·|¥X²{¿ù»~°T®§¡Aªí¥Ü¸Ó¦W¨Ï¥ÎªÌ¥¼³q¹LÅçÃÒ¡C

DmSQL>connecto to DB_A Sharon ******;

dmSQL> select * from DB_B:t1;

ERROR (6804): [DBMaker] (remote error occurred) invalid authorization specification (invalid password when connecting)  at: DB_B@B [rmbind.c 70],0,0,6804

(3)   À³¥Îµ{¦¡½Õ¾ã

·í­n¦s¨ú¦U¦a¸ê®Æ®É¡A¥u­n«ü©ú¸ê®Æ©Ò¦b¦ì¸m(¦p¹Ï¤¤¥x¥_)§Y¥i¡A¨Ò¦p«e­±©Ò»¡ªº­q³æ°Ê§@¡A­Y¬O­n±N¦s³f(¤À´²¦b¦U¦a)´î¤Ö¡A¦P®É¼W¥[·|­pªºÀ³¦¬±b´Ú(°²³]¬°¶°¤¤¦¡)¡Aµ{¦¡¥i¥H¼g¦¨¡G

update ¦s³f set ¡K¡K.;

insert into ¥x¥_:À³¦¬±b´Ú values (¡K.);

³o¨â¥ySQL«ü¥O¡A²Ä¤@¥y©Ò«üªº¡A³£¬O¦b¦aªº¸ê®Æ®w¡A¦ý²Ä¤G¥y³£·|¥h¶°¤¤¦a¥x¥_ªº¸ê®Æ®wªºÀ³¦¬±b´Ú§@·s¼W¾A¥Î¡F¬GÀ³¥Îµ{¦¡¨ì¦U¦a¬Ò¥i¤@Åé¾A¥Î(·Q¤@·Q¡A¥Ñ©óÀ³¦¬±b´Ú¥u¦s¦b©ó¥x¥_¡A©Ò¥H¥i³]©wsynonym¡A±N¡uÀ³¦¬±b´Ú¡v³]©w¦¨¡u¥x¥_:À³¦¬±b´Ú¡v§Y¥i¡A¨º»ò¤W­z²Ä¤G¥y«ü¥O¤S¥i¦A²¤Æ)¡C

(4)   ¸ê®Æ®wÃì(Database Link)

¤À´²¦¡¸ê®Æ®w»Ý­n¨âÃä³£¦³¬Û¦Pªº¨Ï¥ÎªÌ»P±K½X¡A¦ý³o­Ó°Ê§@«o·|¹ï¦U¦aªº¸ê®Æ®wºÞ²z­û²£¥Í³\¦hºÞ²z¤u§@¡A©Ò¥H¡u¸ê®Æ®wÃì¡v´NÀ³¹B¦Ó¥Í¡F©Ò¿×ªº¡u¸ê®Æ®wÃì¡v¡A¥i¥Hµø§@¨Ï¥Î¬Y¯S©w¨­¥÷¥h³s±µ»·ºÝ¸ê®Æ®wªº©T©w³s±µ¡A±N³o­Ó¡uÃìµ²¡vµø§@¬O¬YºØ¥N²z¤H¡A¨º»òÀ³¥Îµ{¦¡³s±µ¨ìDB_A®É¡A¥i¯à¬O¨Ï¥ÎUser_Aªº¨­¥÷¡A·í³z¹LDB_A³s±µ¨ìDB_B®É¡A¥i¨Ï¥ÎDB_B_Link(³o­ÓÃìµ²¥i¯à¬ODB_A³oùتºDBA³]©w§¹¦¨¡A²Î¤@¨Ï¥ÎUser_B¡BPassword_B¥h³s±µDB_B)¡A¨º»òUser_A¥i¥Î¦Û¤vªº¨­¥÷µn¤JDB_A¡A¦ý¦b¨Ï¥ÎDB_B_Link®É¡A´NÅܦ¨¤FUser_B¡BPassword_B¤F¡C(¦P¼Ë¦a¡A­YUser_Cµn¤JDB_A¡A¨Ï¥ÎDB_B_Link®É¡A¤´¬O¨Ï¥ÎUser_B)

³]©wªº¤è¦¡¤Q¤À®e©ö¡A­º¥ý±NDB_A¡BDB_B³]©w¦¨¡u¤À´²¦¡¸ê®Æ®w¡vªºÀô¹Ò¡A±µµÛ¡A¥HDBAªº¨­¥÷µn¤JDB_A¡AÁä¤J¥H¤U©R¥O¡G

create [private|public] database link Link_Name connect to DB_B identified by User_B Password_B;

¨ä¤¤private©Îpublic¬O³]©w¸ÓDB_LINK¬O¨p¤H¨Ï¥Î¡A©Î¬O¥i¶}©ñµ¹¨ä¥L¤H¨Ï¥Î¡A¹w³]¬Oprivate¡A¬°¤F¯àÅý¨ä¥L¤H¯à¨É¥Î¨ì³o±ø¸ê®ÆÃìµ²¡A³Ì¦n¬O³]©w¦¨¡upublic¡v¸û¦n¡C

±µµÛ¡A·í¨ä¥L¤H­n¦s¨ú»·ºÝDB_Bªº¸ê®Æ®É¡A¥u­n¨Ï¥Î¡G

select * from Link_Name:[Owner_Name.]Table_Name;

«K¥i¦s¨ú¡A¦ý¤@¯ë¦b¼¶¼g³o¼ËªºSQL«ü¥O®É¡A¥¼§K¦³¨Ç³Â·Ð¡A©Ò¥H§ó²«Kªº¤è¦¡¡A¬O«Ø¥ß¤@­Ósynonym¡A³o¼Ë¤@¨Ó¡A¨Ï¥ÎªÌ³s¤W¨Ó®É¡A³sDB_Link¬O¤°»ò³£¥i¥H¤£¥Îª¾¹D¡G

create synonym Table_Name for Link_Name:[Owner_Name.]Table_Name;

·í¨Ï¥ÎªÌ¤U¡Gselect * from Table_Name; ®É¡A³o­ÓTable_Name¥i¯à¬O»·¦b¥L¤èªº¥t¤@­Ó¸ê®Æ®w¡C

¸ê®Æ®wÃ쪺Æ[©À¤Q¤À¦n¥Î¡A¥i¨Ï¥Î³o­Ó¤è¦¡¨ÓÁ×§K±¼¤À´²¦¡¸ê®Æ®w¤@©w±o¦b¨âÃ䦳¬Û¦Pªº¨Ï¥ÎªÌ¤Î±K½Xªº³Â·Ð¡A¬GŪªÌÀ³¦h¥[½m²ß¤Î¼ô±x¡C


4.      ªí®æ½Æ»s»P¤À´²¦¡¸ê®Æ®wªº·f°t

(1)   ¦P¨B¤Î«D¦P¨Bªí®æ½Æ»s²¤¶

¦b¶°¤¤¦¡¸ê®Æ¶q¤pªº±¡§Î¤U¡A¤W­±ªº¤À´²¦¡¸ê®Æ®w¬[ºc¡A©|¥i¹B§@±o¶¶§Q¡A­Y¬O¶°¤¤¦¡¸ê®Æ¶q¤j¡A¦a°ì©Ê¸ê®Æ¶q¤p¡A¨º»ò¦U¦aªºÀ³¥Îµ{¦¡ÁÙ¬O«÷©R¦a±N¸ê®Æ²§°Ê©¹¶°¤¤¦a¶Ç°e¡A¥u¦³¤Ö¼Æªº¸ê®Æ¥i¦bªñºÝ±o¨ì¡A®Ä¯àªº§C¸¨¬O¥i¥H¹w´Áªº¡C

DBMaker¥t¦³¤@¶µ±j¤jªº¥\¯à¡AºÙ¤§¬°ªí®æ½Æ»s¡F³o¶µ¥\¯à¬O¥i±N¦U¦a¸ê®Æ®w¡A¦P¨B©Î«D¦P¨B¦a½Æ»s¨ì¨ä¥L¸ê®Æ®w¡A¬Æ¦Ü¥i¸ó¶V¨ì¨ä¥L¼tµP¸ê®Æ®w¡C

¥ý­«·sÂsÄý¤@¦¸­ì©l¬[ºc¡G


¦b²Ä(2)¡B(3)¨BÆJ¤¤¡A³£»Ý­n¦V¶°¤¤¦¡ªºªí®æ¬d¸ß¡A³o¨âªÌªºªí®æ¯S©Ê¡A³Ì¦n¬OÄÝ©ó¤Ö¶q¡B¤ÖÅܰʡF§_«hÁ`¤½¥q¦b¬d¸ß­q³æ¸ê®Æ¡BÀ³¦¬±b´Ú®É¡A¥Ñ©ó¸ê®Æ´²§G¦b»·ºÝªº¥x¥_¡B¥x¤¤¡B°ª¶¯¡A®Ä²v·|¤Q¤Àªº½wºC¡F¦ý­Y¬O¦]¦¹§ï±Ä¶°¤¤¦¡¡A¤SÅܦ¨¤F¥x¤¤¡B°ª¶¯¨C·s¼W¤@µ§¸ê®Æ©Î¬d¸ß¤]Åܱo«Ü½wºC¡CµL½×¬O¶°¤¤¡B¤À´²³£¦³¤@¤è»Ý­n§Ô¨ü½wºCªº®Ä¯à¡C

·í²£«~¸ê®Æªº¶q«Ü¤j®É¡A­Y¬O¨C¦¸¬d¸ß­n¨ì¥x¥_¥h¬d¡A¦ü¥G¤Ó»·¤FÂI¡A¦b¦¹¨Ò¤¤¡A§Ú­Ì¥i¥H±N²£«~¸ê®Æ©ñ¤@¥÷¦b¦U¦a¡A¤§«á¦U¦aªºÀ³¥Îµ{¦¡´NµL¶·¤d¨½­|­|¨ì¥x¥_Á`¤½¥q¥h§ä¤F¡A¦Ó¥x¥_Á`¤½¥q¤@¥¹¦³³Ì·sÅܰÊ(²£«~»ù®æ¡B¼t°Ó)¡A¥²¶·¾¨³t±N·s¸ê°T©¹¦U¤À¤½¥q¶Ç°e¡C

DBMaker´£¨Ñ¤F¡u¦P¨B¡v»P¡u«D¦P¨B¡vªí®æ½Æ»sªº¥\¯à¡A«K¥i¡u¥ß§Y¡v©Î¬O¡u©w´Á¡v¦a¡A±N¬Y¨Çªí®æªº¸ê®Æ¡A¦P¨B¨ì¦U¦a¸ê®Æ®w¥h¡C

©Ò¿×ªº¡u¦P¨Bªí®æ½Æ»s¡v¡A¬O«ü¤@¥¹¸ê®Æ¿é¤J¨ìDB_A¤¤¡ADB_B·|°¨¤WÀH¤§§ó·s¡A¥Ñ©ó³o¨â­Ó°Ê§@µø§@¦P¤@µ§¡u¥æ©ö¡v¡A©Ò¥H­Y¬O¦P¨B¨ìDB_Bªº°Ê§@¥¢±Ñ¡A·|¬Û¹ïªº³sDB_Aªº¿é¤J°Ê§@¤]¥¢±Ñ¡C


(2)   ¦P¨B»P«D¦P¨Bªí®æ¾A¥Î±¡§Î

¡u¦P¨Bªí®æ½Æ»s¡v¾A¥Î©ó»Ý­n§Y®Éªº¸ê®Æ§ó·s¡Bºô¸ô«~½è¬O¥i«H¿à¡B¥B¶Ç°eªº¸ê®Æ¶q¤£¤jªº±¡ªp¡C­Y¬Oºô¸ô«~½è¥»¨­¦³°ÝÃD¡A¨º»ò¤£³æ¬O¹ïDB_Bªº§ó·s·|¦³°ÝÃD¡A³s±aªº·|¨ÏDB_A¤]µLªk¿é¤J¡A¤Ï¦Ó¹ï¥¿±`·~°È±a¨Ó§ó¤jªº¤£«K¡C

¦Ó¡u«D¦P¨Bªí®æ½Æ»s¡v¡A«h¾A¥Î©ó¥i§Ô¨ü¸ê®Æ§ó·s³t«×¦b¤@©wªº´Á­­(¨Ò¡G¤@¤Ñ¡B¤T¤Ñ¡B¤@¬P´Á)¡A¥B¶Ç°eªº¸ê®Æ¶q¸û¤jªºª¬ªp¡C¦b¤W­z¨Ò¤l¤¤¡ADB_Aªº¿é¤J±N¤£·|³QDB_B¤Îºô¸ô©Ò¼vÅT¡C¹ê»Ú¨Ò¤l¤¤¡A­Y¬O¶Ç¿éªº¸ê®Æ¶q¤j¡A¦h«ü©w¬Y¨Ç§Nªù®É¶¡¡A±N¸ê®Æ¦b¸Ó®É¬q¦P¨B¨ìDB_B¤¤¡A¦Ó¨Ï¥ÎªÌ¯à°÷§Ô¨ü¦b©|¥¼¦P¨B«e¡A¸ê®Æ¤£¤@­Pªº°ÝÃD¡C

µL½×¬O¦P¨B¡B«D¦P¨Bªí®æ½Æ»s¡ADB_B³£¬O³æ¯Âªº¨ü¤è¡A¨Ï¥ÎªÌ­Y¹ïDB_B¶i¦æupdate¡Bdeleteªº°Ê§@ªº¸Ü¡A±N·|³y¦¨¨âÃ䤣¤@­P¡A¥BDB_A¬OµLªk®ø«Ú¦¹ºØ¤£¤@­Pªº²{¶H¡C

¦³¨Ç¨Ï¥ÎªÌ«h·Q­nÅýDB_A¡BDB_B¯à¤¬¬Û½Æ»s¡A³oºØ­n¨D¬Ý¨Ó¦X²z¡A²Ó±´¤§¤U¡A«o¤S¦³¨ä§xÃø³B¡C¨Ò¦p¡G­Y­n¨DDB_AªºTable1ªº¡u·s¼W¡v¸ê®Æ¡A¥²¶·­n½Æ»s¨ìDB_BªºTable1¥h¡A¦P®É¤S­n¨DDB_BªºTable1¸ê®Æ¡A¤]­n¯à½Æ»s¨ìDB_A¥h¡A¦bT0(²Ä¤@¦¸¦P¨B±Æµ{)¡ADB_Aªº¸ê®Æ¹L¥h¤FDB_B¡A¦bT1(²Ä¤G¦¸¦P¨B±Æµ{)®É¡ADB_B¥Ñ©ó¤]·s¼W¤F¸ê®Æ(¥ÑDB_A¹L¨Óªº)¡A©Ò¥H¤S¦A½Æ»s¦^¥hDB_A(³o­Ó°Ê§@À³¸Ó·|¥¢±Ñ¡A­ì¦]¬O½Æ»s¬O¥Îprimary key¨Ó³]©w¡A®e«á¦A­z)¡Fµ²ªGÅܦ¨¤F¤@­Ó´`Àô¡A©Ò¥HÃþ¦ü¦¹ºØDB_AóDB_Bªº»Ý¨D¡A¨Ã¤£¬O¹F¦¨¤£¤F¡A¦ý¨âÃ䪺ªí®æ¥²¶·¿ù¶}¡A©Î¬O°t¦Xon cascadeªº©R¥O¡A¥HÁ×§K¤W­zªºª¬ªp¡C

5.      ¦P¨Bªí®æ½Æ»s

DBMakerªº¦P¨Bªí®æ½Æ»s¡AÄY®æ¦a»¡¡A¬O¨Ï¥Î¤FDDB¤ÎTriggerªº¾÷¨î¡A¥Ñ©óDDB(¤À´²¦¡¸ê®Æ®w)¡A¥iÅý§Ú­Ì¦s¨ú»·ºÝªº¸ê®Æ®w¡A¦ÓTrigger«h¬O¥iÅý¸ê®Æ·s¼W¡B§R°£¡B­×§ï®É¡A¦P®ÉIJµo¬Y¨Ç°Ê§@¡A³o¨â­Ó°Ê§@¥[¦b¤@°_¡A«K¬O¡u·s¼W¡B§R°£¡B­×§ï¸ê®Æ®É¡A¦P®ÉIJµo¬Y¨Ç°Ê§@¡A¨Ó·s¼W¡B§R°£¡B­×§ï¬Y­Ó»·ºÝ¸ê®Æ®wªí®æ¡v¡C

(1)   ¦P¨Bªí®æ½Æ»s³]©w¤è¦¡

­º¥ý­n±NDB_A¡BDB_B³]©w¦¨DDB¼Ò¦¡¡A³]©w¤è¦¡½Ð¬Ý«e­z¡A·í³]©w§¹¦¨«á¡A§Q¥Îdmsql¤U¹F¥H¤U«ü¥O¡G

create replication replication_name with primary as table_name replicate to DB_B:table_name;

¨ä¤¤replication_name¬OReplicationªº¦WºÙ¡A¦ÓDB_A:table_name»PDB_B:table_name«h¬O¨âÃ䪺ªí®æ¦WºÙ(table name)¡Aª`·N!!¨âÃäªí®æ¤@©w­n³]©wPrimary Key¡A¦]¬°¦P¨Bªº¾÷¨î¬O§Q¥ÎPrimary Key¨Ó§@¨Ì¾Ú¡A©Ò¥H¡A·í§Ú­Ì­×§ï¡B§R°£DB_AªºRecord®É¡A¥¦¤~¦³¨Ì¾Ú¥h¹ïDB_Bªºtable_name§@¬Û¦P°Ê§@¡C

(¤@¼Ë­nª`·Nªº¡A¦bDDB¼Ò¦¡¤¤¡A¨Ï¥ÎªÌ/±K½X¥²¶·¨âÃä¬Û¦P¡A¦]¬°¥¦·|¥ÎLogin DB_Aªº¨Ï¥ÎªÌ/±K½X¥hLogin DB_B)

§Ú­Ì¤]¥i¥H¤£¥Î½Æ»s¥þ³¡ªºÄæ¦ì¡A¦Ó¥u½Æ»s³¡¥÷¡F¦p¤U¡G

create replication replication_name with primary as table_name (c1,c2,c3)  replicate to DB_B:table_name (c1,c2,c3);

¬Æ¦Üµ¹¤©¤@­Ó±ø¥ó¡A·í³o­Ó±ø¥ó¬°¯u®É¡A¤~¶i¦æ¦P¨B¡G

create replication replication_name with primary as table_name (c1,c2,c3) where c3=¡¦¥x¤¤¡¦ replicate to DB_B:table_name (c1,c2,c3);

¦bªì©l¶¥¬q¡A§Ú­ÌÁÙ¥i¥Î¤U­±©R¥O¡Aª½±µÅý¨âÃä¦P¨B¡G

create replication replication_name with primary as table_name (c1,c2,c3) where c3=¡¦¥x¤¤¡¦ replicate to DB_B:table_name (c1,c2,c3) clear and flush data;

clear¥Nªí¶i¦æ¦P¨B«e¡A¥ý§R°£»·ºÝªí®æ©Ò¦³¸ê®Æ¡Fflush«h¬O±NDB_Aªº©Ò¦³¸ê®Æ­Ë¨ìDB_B¥h¡A¬G³o­Ó°Ê§@¡A±N·|¨Ï±oDB_Bªºtable¸ê®Æ¡A¾ã­Ó³Q§R±¼¦A±qDB_A½Æ»s¤@¥÷¹L¨Ó¡C

6.      «D¦P¨Bªí®æ½Æ»s

DBMaker¦b³]©w«D¦P¨Bªí®æ¤W¡A¤ñ°_¡u¦P¨B¡vºâ±o¤W¬O½ÆÂø³\¦h¡A¦ý¬O¥u­n¯à´x´¤¦í­n­n³Z¡A¨Æ¹ê¤W«D¦P¨B½Æ»s¤]¬O¤Q¤À®e©ö³]©wªº¡C

(1)   «D¦P¨Bªí®æ½Æ»sªº­ì²z

²{¦b°²³]¤@¼Ë­n±qDB_A½Æ»s¨ìDB_B¡G

¦b³o­Ó±¡¹Ò¤U¡ADB_AºÙ¤§¬°Primary DB¡A¦ÓDB_B¬°Slave DB¡A³o¨âªÌ¬O¹êÅ骺¸ê®Æ®w¡A¦ý¥t¦³­t³d¬£°eªº¤@­Óprocess¡AºÙ¤§¬°Distributor(µo°eªÌ)¡A´N¹³µo³ø¯È¤@¼Ë¡A°e³ø¥Í(Distributor)¨ì³øªÀ(Primary DB)¡A±N³ø¯Èµo°e¨ì­q¾\ªÌ(Slave DB)ªº¤â¤W¡A¨äÃö«Y¹Ï¦p¤U¹Ï©Ò¥Ü¡G


«D¦P¨Bªí®æ½Æ»s(ATR)ªº¾÷¨î¡A«K¬O­º¥ý¸ê®Æ®w·|±N©Ò¦³°w¹ï¬Y¯S©wªí®æ(³]¬°Table_ATR)ªº©Ò¦³°Ê§@¡A°O¿ý¤U¨Ó¡A¦s¦¨LOG(TRPLOG)¡A·í³]©wªº®É¶¡¨ì¤F¡ADistributor´N·|±Ò°Ê¡A±N³o­Ó°O¿ý¤U¨ÓªºLOGÅܦ¨¬Û¹ïÀ³ªºODBC Call¡A¥h§ó°Ê»·ºÝªºSlave DB¡A¨Ã±N³o­Ó¹Lµ{¡A°O¿ý¦bATRP.LOGÀÉ¡A­Yµo¥Í¿ù»~¡A¤]·|°O¿ý¦bATRERROR³o­ÓLOGÀÉ¡C

¬°¤F¯à½T¨Ï¨C¤@­Ó°Ê§@¯à¥¿½TµL»~¡A«ØÄ³ÅªªÌ¦b³]©w®É¡A¯à¨Ì·Ó¤U¦C¨BÆJ¤@¨B¤@¨B¾Þ§@¡C

(2)   «D¦P¨Bªí®æªº³]©w¨BÆJ

1.        ¶}±ÒDDB³]©w

¦¹¶µ°Ê§@¥i¦bdmconfig.ini¤¤¡A¥[¤J¥H¤U¤@¦æ¡G

DD_DDBMD=1;

·í¥[¤J¤F³o¶µ«ü¥O«á¡A­«·s±Ò°Ê¸ê®Æ®w¡A¦¹®É­Y¤U¹F¡uselect * from SYSUSER¡vªº«ü¥O¡A±N·|µo²{¦h¤F¤@­Ó¨Ï¥ÎªÌ¬°¡GGTRECO_D¡A³o­ÓDaemon«K¬O­t³d§@Global Transactionªº¡A¥u­n±NDDB¥´¶}¡A¹w³]«K·|±N¦¹Daemon±Ò°Ê¡C

2.        ±Ò°ÊDistributor

±µ¤U¨Ó¡A³]©wÅýDistributor¯à°÷¥¿±`±Ò°Ê¡A½Ð¦bdmconfig.ini¥[¤J

DD_ATRMD=1;

ªí¥Ü­n¨Ï¥Î«D¦P¨Bªí®æ½Æ»s¡AÀx¦s«á¡A­«·s±Ò°Ê¸ê®Æ®w¡A¨Ã¨Ï¥Îdmsqlc¡A¤U¡uselect * from SYSUSER¡v«ü¥O

 

3.        ³]©w©ñ¸mReplication Logªº¥Ø¿ý

½Ð¦^ÀY¬ÝATRªºÃö«Y¹Ï¡A¹Ï¤¤¡A§Ú­Ì¥i¥H¬Ý¨ì¡GDistributor¥u¬O­t³d±NTRPLOGªº¸ê®Æ¡AÅܦ¨¤@­Ó­ÓªºODBC«ü¥O¡A¥hupdate»·ºÝ¸ê®Æ®w¡A©Ò¥H§Ú­Ì¥i¥H¥ý¨ìdmconfig.ini¡A¥h³]©w­n©ñ¸mTRPLOGªº¥Ø¿ý¡C

RP_LGDIR=k:\alendb\TRPLOG_X(¨Ì¦Û¤v©Ò»Ý³]©w)

­«·s±Ò°Ê¸ê®Æ®w¡A¥H«K³o­Ó·s³]©w¯à°÷µo¥Í§@¥Î¡C

¦b¨ú¥XTRPLOG«á¡ADistributor·|Åܦ¨¤@­Ó­ÓODBC«ü¥O¡Aupdate¨ì»·ºÝ¸ê®Æ®w¡A­Y¬O¦¹®Éºô¸ôÂ_½u¡A©Î¬O»·ºÝ¸ê®Æ®w¥¼¶}±Ò¡A¾É­PODBC©I¥s¥¢±Ñ®É¡A¸Ó«ç»ò¿ì??

¬°¤FÅý¨Ï¥ÎªÌ¯à´x´¤ATR¹ê»Ú°õ¦æªº¦¨¥\¡B¥¢±Ñ±¡ªp¡ADistributor·|±N¾ã­Ó¹Lµ{°O¿ý¦bATRP.LOG(¹Lµ{)¡BATRERROR.LOG(¥¢±Ñ­ì¦])¡C¹w³]³o¨â­ÓÀÉ®×·|©ñ¦bDBDIRªº¥Ø¿ý¤U¡F¨Ï¥ÎªÌ²{¦b¥i¥H¥ý¥´¶}DBDIR¡A¥ýÀ˵ø¬Ý¬Ý¥Ø«e¦³¨S¦³Ãþ¦üªº¥Ø¿ý¤ÎÀɮסA¥Ñ©ó²{¦b§Ú­Ì¨Ã¥¼¶}©lªí®æ½Æ»sªº°Ê§@¡A©Ò¥H²{¦b¬ÛÃöªºÀɮ׳£©|¥¼«Ø¥ß¡A½Ð±N¦¹¥Ø¿ý«O«ù¶}±Òª¬ºA¡A¦b¤U­±¾Þ§@¹Lµ{¡A¥i®É®É¥Î¥HÆ[¹î¬Û¹ïÀ³ªºÅܤơC

4.        ¶}±Ò¤vºÝ¤Î©¼ºÝDDB¼Ò¦¡

²{¦bAºÝªº³]©w¤w¸g³]©w§¹²¦¡A½Ð¦ÜBºÝ¡A±N¨äDB_DDBMD=1¡A¶}±Ò¤À´²¦¡¸ê®Æ®w¡C

²{¦bÅý§Ú­Ì¸Õ¸Õ¬Ý¬O§_DDB Mode¦¨¥\±Ò°Ê¡A¸ê®Æ¶¡¥i¤¬¬Û³z³q¡A½Ð¦bAºÝ¤¤ªºdmsqlc¡A¬d¸ßBºÝªº¸ê®Æ¡G

select * from DB@B:SYSINFO;

­Y¬O¯à¥¿½T³s±µ¨ìªº¸Ü¡Aªí¥ÜDDB Mode¤w¸g¶}±Ò¥B¹B§@¥¿±`

5.        ³]©w±Æµ{(Schedule)

¥Ñ©ó§Ú­Ì­n³]©wªº¬O¡u«D¦P¨Bªí®æ½Æ»s¡v¡A©Ò¥H¦bªí®æ½Æ»sªº³]©w¤W¡A¤À¦¨¡u³]©w±Æµ{ (Schedule)¡v¤Î¡u³]©wªí®æ½Æ»s¡v¡A¦b«D¦P¨Bªí®æ½Æ»s¤¤¡A³o¨â­Ó¨BÆJ¬O¿W¥ß¤À¶}¦Ó¯Ê¤@¤£¥iªº¡C

­º¥ý¡A¥ý³]©w±Æµ{¡A¨ä«ü¥O¦p¤U¡G

CREATE SCHEDULE FOR REPLICATION TO remote-db-name

[{ORACLE | INFORMIX | SYBASE | MICROSOFT}]

BEGIN AT yy/mm/dd hh:mm:ss

{EVERY n DAYS | EVERY hh:mm:ss | EVERY n DAYS AND hh:mm:ss}

[RETRY n TIMES [AFTER n SECONDS]]

[STOP ON ERROR]

[WITH NO CHECK]

IDENTIFIED BY user-name [password]

¥H¹ê¨Ò¨Ó§@»¡©ú¡G

create schedule for replication to DB@B begin at 01/01/01

00:00:00 every 00:00:30 identified by alen alen;

(¬°»¡©ú¬G¡A§Ú­Ì±Nschedule³]¦¨¥u¦³30¬í)

­º¥ý¡A¦b«Ø¥ßschedule®É¡A¬O¤£«ü©wtableªº¡A¹ï³o­Ó¶¥¬q¦Ó¨¥¡A­«­nªº¬O½T¥ß¨Ï¥ÎªÌ¹ï»·¤è¸ê®Æ®w¬O§_¦³Åv­­¡C¦A¦^¨ìÃö«Y¹ÏÂsÄý¤@¹M¡ADistributor¬O§âLog¤Æ¦¨¤@­Ó­ÓªºODBC«ü¥O¡A©Ò¥H³Q½Æ»sªºªí®æ¬O¥i¥H¸ó²§½è¸ê®Æ®wªº(¥u­n¸Ó¸ê®Æ®w¤ä´©ODBC¡A¥B¦bDSN¥¿½T³]©w)¡C

¦b«ü¥O¤¤¡A¥²¶·«ü©ú­n¥Î¤°»ò¨­¥÷¥hLogin»·ºÝ¸ê®Æ®w¡A¨Ó¶i¦æ¸ê®Æªí®æ½Æ»s¡A¦ý¨ä¹êÁÙ¦³¥t¥~¤@ºØ»{ÃҤ覡¡F¥»³¹«e¥b¬q´¿´£¤ÎDB_LINK¡A¥¦¥i¥H¥Î¯S©w¨Ï¥ÎªÌªº¨­¥÷¥hµn¤J»·ºÝ¸ê®Æ®w¡A­Y³]©w¦nDB_LINKªºUser:Password¡A³oÃ䪺¦A»{ÃÒ´N¬O¦h¦¹¤@Á|¡F¨Æ¹ê¤W¡ADBMaker¦b¹J¨ìDB_LINK®É¡A·|¥ý¥ÎDB_LINKªº»{ÃÒ¡A¦Ó¤£ºÞcreate schedule«ü¥Oªº»{ÃÒ¡C

¤@¥¹«ü¥O¦¨¥\«Ø¥ßschedule«á¡A¥i¨ìDBDIRªº¥Ø¿ý¥h§ä§ä¬Ý¦³µLATRP.LOG³o­ÓÀɮסA³o¬O¤@­Ó¤å¦rÀÉ¡A°O¸ü¤FDistributorªº¬¡°Ê¡Cª`·N¡AATRP.LOG¬O¦ì©óDBDIR©³¤U¡A¦Ó¤£¬ORP_LGDIR¡AATRP.LOG°O¿ýªº¬ODistributorªº¡u¬¡°Ê¡v¡A¦Ó¤£¬ODistributor·h°Êªº¡u¤º®e¡v¡A§A¥i¥H¶}±Ò³o­ÓÀɮסA¬d¬Ý¥¦°O¿ýªº¸ê®Æ¡G

2001/12/03 10:37:00 : start up

2001/12/03 10:37:30 : start up

2001/12/03 10:38:00 : start up

2001/12/03 10:38:30 : start up

±µ¤U¨Ó¡A§Ú­Ì´N­n³]©wDistributor­n·h²¾ªº¤º®e¡A¤]´N¬Oªí®æ½Æ»s¤¤ªº¡uªí®æ¡v¡A¨Ó·½¸ê®Æ®w»P¥Øªº¸ê®Æ®w¨âÃä­n½Æ»sªºªí®æ¡A­º¥ý¡Aschema³Ì¦n­n¬Û¦ü¡A¥HÁ×§Kªí®æ·h°Ê«á¡Aµo¥Í¸ê®ÆÂà´«¤£¹L¥hªº°ÝÃD¡C¨ä¦¸¡A¨âÃ䪺ªí®æ¤@©w­n¦³Primary Key¡A¸ê®Æ½Æ»s®É¡A¬O¥HPK¬°·h°Ê®Éªº¨Ì¾Ú¡C

6.        ³]©wªí®æ½Æ»s

²{¦b¶i¦æ³]©wªí®æ½Æ»s¡A©R¥O®æ¦¡¦p¤U¡G

CREATE [ASYNC] REPLICATION replication-name

WITH PRIMARY AS base-table-name

 [(column-identifier [, column-identifier] ...)]

 [WHERE search-condition]

REPLICATE TO

{ remote-table-name

 [(column-identifier [, column-identifier] ...)] 

 [CLEAR DATA | FLUSH DATA | CLEAR AND FLUSH DATA]

 [NO CASCADE]

 [, remote-table-name

 [(column-identifier [,column-identifier,] ...)] 

 [CLEAR DATA | FLUSH DATA | CLEAR AND FLUSH DATA]

 [NO CASCADE]]

¨ä¹ê³o­Ó©R¥O»P«e­±¦P¨Bªí®æ½Æ»s¥u®t¤F¤@­ÓÃöÁä¦r¡uASYNC¡v¡A¨ä¥L³£¬Û¦P¡A¬°¤F­nÅý¤@¶}©l¨âÃä¸ê®Æ¬Û¦P¡A§Ú­Ì¨Ï¥Î¤F¤U­±ªº«ü¥O¡G

create async replication rp1 where primary as t1 replicate to DB@B:t1 clear and flush data;

¨ä¤¤ªºclear and flush¡A«üªº¬O»¡±N¥Øªº¸ê®Æ¥ý²M°£(clear)«á¦A¼g¤J(flush)¡A¦p¦¹¤@¨Ó¡A¨âÃ䪺¸ê®Æ«K§k¦X¤F¡F¨Ï¥ÎªÌ¥i¥H§@¹L³o­Ó°Ê§@¥H«á¡A°¨¤WÀˬd¤@¤U¨âÃä¸ê®Æ¡A¬d¬Ý¬O§_¬Û¦P¡C

7.        Àˬd¦U¤¸¥ó¬O§_¥¿½T²£¥Í

±µµÛ¡A§Ú­Ì±N±ý½Æ»sªºªí®æ¥[¤J´Xµ§¸ê®Æ¡A¦¹®É¥i¥H¥h¬d¬ÝRP_LGDIR¥Ø¿ý¤U¡A¬O§_²£¥Í¤F¦p1.TRP¤§ÃþªºÀɮסA³o­ÓÀÉ®×°O¿ý±ý½Æ»sªí®æ©Ò§@ªº©Ò¦³§ó°Ê¡A©Ò¥H¤@¥¹¹ït1¦³°Ê§@¡A1.TRP´N·|²£¥Í¥X¨Ó¡A±µµÛ¡A«K¬Oµ¥«Ý®Éµ{³]©wªº®É¶¡¹L¥h¡ADistributor¶}©l·h°Ê¸ê®Æ¡C

¦¹®É­Y¬O¬d¬ÝATRP.LOGªº¸Ü¡A·|¦³¦p¤U°O¿ý¡G

2001/12/03 17:52:00 : replicate transactions before 2001/12/03 17:51:51 (log:1.364) to ATRTEST@B

2001/12/03 17:52:30 : start up

¦ý¬OATRP¥u¬O°O¿ýDistributor°_¨Ó¡B·h°Êªº¹Lµ{¡A­Y¬O¥¢±Ñªº¸Ü¡A·|°O¿ý¦bATRERROR.LOG¡AATRP.LOG¥»¨­¬O¤£°O¿ý¿ù»~ªº!

²§½è¸ê®Æ®wªº·h°Ê»PDBMakerªº·h°Ê¡A³]©w¤W´X¥G§¹¥þ¤@¼Ë¡A¥u¬O¦¹®É³]©wªºDB@B­n¥ÎODBC DSN¨Ó¨ú¥N¡A¦p¦¹§Y¥i¡C

(3)   §Ö³t«D¦P¨Bªí®æ½Æ»s(Express ATR)

°£¦¹¤§¥~¡ADBMaker¦b3.7¤§«á¡A¬°¤F¥[§ÖReplication³t«×¡A¤S¥[¤W¥t¤@¶µ¥\¯à¡AºÙ¤§¬°¡u§Ö³t¸ê®Æªí®æ½Æ»s¡v(Express ATR)¡A³o¶µ¥\¯à¦³¨â­Ó¯S©Ê¡A­º¥ý¬O¥¦¤£¹³­ì¨ÓªºATR¥i³z³q²§½è©Ê¸ê®Æ®w¡A¥¦¨Ï¥Î¤FDBMaker­ì¥Íªººô¸ô¤ÎODBC©I¥s¡A¨Ã±N«ü¥O¡u§å¦¸¡v(batch)¥´¥]«á¦A¤@¦¸°e¥X¡F¥¦ªº²Ä¤G­Ó¯S©Ê¡A«K¬O¬G³t«×¤W¤ñ­ì¨ÓªºATR§Ö¤W³\¦h¡C

1.        Express ATRªº¬[ºc

Express ATRªºÆ[©À¡A»P¤§«eªºATR´X¥G§¹¥þ¬Û¦P¡A°ß¤@¤£¦Pªº¬O¡A­n½Æ»sªº¸ê®Æ®w¡A¥²¶·¥ý¦³¤@­ÓDaemon§@¡u¶ÉÅ¥¡vªº°Ê§@¡A½Ð¬Ý¤U­±ªºÃö«Y¹Ï¡G


¹Ï¤¤¡ADB_A³o¬qªº¬[ºc¡A´X¥G§¹¥þ¨SÅÜ¡A¦ý¬ODB_B«o¦h¤F¤@­Ó¡uSubscriber¡vªºDaemon¡A³o­Ódaemonªº¥ô°È«K¬O±N¶Ç¹L¨Óªº©R¥O¡A¤@¤@¸Ñ¶}¡A¨Ã¦bDB_B¤¤°õ¦æ¡C

2.        Express ATRªº³]©w

¦b³]©w¤W¡A­º¥ý¦bDB_A¤¤¡A¥¦¥²¶·ª¾¹DDB_BªºSubscriber©Ò¡u¶ÉÅ¥¡vªº°ð¦ì¡C¤@¯ë»¡¨Ó¡A·í§Ú­Ì¦b³]©wDB_PtNum®É¡A«üªº¬ODB_BªºServer¦b¶ÉÅ¥ªº°ð¦ì¡A¦Ó¥ô¦ó¤@­Ó«È¤áºÝ¡A³£¥i³s¦ÜServer¦¹°ð¦ì¨Ó¾Þ§@¸ê®Æ®w¡C«e­±©Ò»¡ªºATR¡A°ò¥»¤W¤]¬O¦b¨ì¹F®Éµ{®É¡A¥ÑDB_A²£¥Í¤@­ÓConnection³s¦ÜDB_BªºServer°ð¦ì¡A¹ïDB_B¦Ó¨¥¡ADB_Aªº³o­Óconnection¡A¨ä¹ê»P¤@¯ëªºclient connection¡A¨Ã¨S¦³¤°»ò¤Ó¤jªº¤£¦P¡C

¦bExpress ATR¤¤¡A´N¤£¬O¦p¦¹¡AServer ProcessÁÙ¬OÄ~Äò³B²z¨ä¥LClientºÝªº½Ð¨D¡A¦ýSubscriber«h¬O¶ÉÅ¥¥t¤@°ð¦ì¤¤¡u«D¦P¨Bªí®æ¡v½Æ»sªº½Ð¨D¡C³]©w³o­Ó¯S©w°ð¦ìªºÃöÁä¦r¬°DB_ETRPT¡A¦bDB_A=>DB_Bªºª¬ªp®É¡A¥²¶·³]©w¦p¤U¡G

DB_A:

[DB_A]

DB_DBDIR=..

DD_DDBMD=1

DB_ATRMD=1

¡K.

[DB_B]

DB_SvAdr=192.168.1.20

DB_PtNum=10000

DB_ETRPT=20000

DB_B

[DB_A]

¡K.

[DB_B]

DB_DBDIR=..

DD_DDBMD=1

DB_ETRPT=20000

½Ðª`·N¡A¦bDB_Aªºdmconfig.iniªº [DB_B]¶µ¤UªºDB_ETRPT¡A«üªº¬O»·ºÝSubscriber±Ò°Êªº°ð¦ì¡F¦ý¦bDB_BºÝªºdmconfig.ini¤U¡A¼g¦b[DB_B]¶µ¤UªºDB_ETRPT¡ADBMaker·|¦bÀˬdµo²{DB_B¬O¦b¤vºÝ®É¡A±Ò°ÊSubscriber Daemon¡A¨Ã¶}©l¶ÉÅ¥DB_ETRPTªº°ð¦ì¡F¬G¥»¾÷ºÝ»P»·¤èºÝªºDB_ETRPT¡A©Ò²£¥Íªº¼vÅT¡A®t²§»á¤j¡C(ŪªÌ¥i¸Õ¸Õ¡A¥u­n¬O¦b¦Û¤v¾÷±ñ¤Wªº¸ê®Æ®w¡A¥[¤WDB_ETRPT«á¡A¦A¥Îselect * from SYSUSER¨ÓÆ[¹î¡A´N·|µo²{¦h¤F¤@­ÓListenerªºDaemon¡C

¦ýDB_A¥»¨­¥u¦³³]©wATRMD=1(ªí¥Ü±Ò°ÊDistributor)¡A¥¦¥i¥H¥Î¤@¯ëATR¥h³sDB_B¡A¤]¥i¥H¥ÎExpress ATR¡F¨º»ò­n¦p¦ó«ü©w¨Ï¥Î¨º¤@ÃþªºATR©O?ÃöÁäÂI¦b«Ø¥ßSchedule®É¡A¥²¶·«ü©ú¡G

create schedule for replication to DB@B begin at 01/01/01

00:00:00 every 00:00:30 identified by alen alen; ¨Ï¥Î¤@¯ëATR

create schedule for express replication to DB@B begin at 01/01/01

00:00:00 every 00:00:30 identified by alen alen; ¨Ï¥ÎExpress ATR

¦Ü¦¹¤§«á¡A´N»P¤§«eªºATR¬yµ{¬Û¥é¡A½Ð°Ñ¦Ò¤W­±¬ÛÃö¨BÆJ¡C

7.      «á»y

¹ê¨Ò¡G¨Ï¥ÎªÌ§Æ±æ¸ê®Æ®wLoading¤£­n¤Ó¤j¡A¬G¨Ï¥Î¨â­Ó¸ê®Æ®w¡A¤@­Ó¬O¤º³¡¤H­û§Q¥ÎÀ³¥Îµ{¦¡¨Ó¼W¥[¡B­×§ï¸ê®Æ¡A¥t¤@­Ó¸ê®Æ®w´£¨Ñ¥~³¡¤H­û¬d¾\¡A¤º³¡¨Ï¥ÎªºDB¦b¨C¤é±ß¶¡·|±N©Ò¦³ªí®æ(°£¤F¤@­ÓLogÄݩʪºªí®æ)½Æ»s¹L¥h¥~³¡DB¡A¦Ó¥~³¡DB¬O¨ÑWeb¬d¸ß¡A¦P®ÉASP·|±Nµn¤J°O¿ý¼g¦b¤@Log Table¡A¤]¬O·|¦b¨C¤é±ß¶¡±N¦¹ªí®æ½Æ»s¦^¤º³¡DB¡C

DDB»PATR¬OÄÝ©óEnterprise¯Åªº¥\¯à¡A©Ò¥Hªì¾ÇªÌ©¹©¹µø¬°¬È³~¡A¦ý­Y¬O¯à¬¡¥Î¦¹¶µ¥\¯à¡A¤£³æ¯à¬°¨Ï¥ÎªÌªº¨t²Î¬[ºc´£¨Ñ§ó¤jªº¼u©Ê¡A¤]¥i´£¨Ñ¨t²Î§ó¤jªº¥\¯à¡AºÞ²zªÌ¥i¤£¦A³Q¶Ç²Î¶°¤¤¦¡ªºClient-Server¬[ºcµ¹¸j¦º¡A¬Æ¦Ü¥i¥Î¦¹³]­p§óºë²ÓªºFail-Over¡B»·¦a³Æ´©µ¥¥\¯à¡A¨Ò¦p¤W­z¹ê¨Ò¡A¥u­n­ì«h´x´¤¦í¡ADDB¤ÎTable Replicationªº¹B¥Î¦s¥G¤@¤ß¡A¬O¥i¤Ñ°¨¦æªÅµo´§¦a¡C

Copyright 2000 SYSCOM Computer Engineering Co. All rights reserved.