¤À´²¦¡¸ê®Æ®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¡CY¬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

¨º»ò¡AY±N¸ê®Æ®w©ñ¸m¨ì¤@Ó¶°¤¤¦aÂI(¨Ò¦p¡G¥x¥_)¡A©TµM¬OºÞ²z¤W¸û¬°¤è«K¡A¦ý¬O¥x¤¤¡B°ª¶¯ªº¨Ï¥ÎªÌ¡A«on§Ô¨ü¸ûº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¨Æ¸ê®Æ¡AY¦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¤Wz¤½¥q¸ê®Æ®w¡A¬O¤@ÓÅ޿誺¾ãÅé¡A§ÚÌ¥i±N¥¦¤Æ¾ã¬°¹s¡A¥Î¼ÆÓ¹êÅé¸ê®Æ®w´²§G¦b¥x¤¤¡B°ª¶¯¡A¦p¦¹¤@¨Ó¡A¤Wz°ÝÃ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°ª¶¯¡AY¼t°Ó¦h¦b¥x¤¤¡A¨º»ò¼t°Ó¡B¶i³fµ¥¬ÛÃöªí®æ´N©ñ¥x¤¤¡A¥D¥H¥\¯à§O¬°¾É¦V¡C
(3) ºî¦X
²{¹ê¦Ò¶q¤W¡A¤Wzµ²ºc¥¼¥²²Å¦X¹ê»Ú»Ý¨D¡A©Ò¥H¹ê»Úªº¨Ò¤l¤¤¡A©¹©¹¬Oºî¦X¤Wz¨âºØ¤è¦¡¡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¤@Ó¡uq³f-¥X³f¡vªº¥\¯à¨Ó¬Ý¡Aº¥ýUser¥²¶·¥ý±q¡u«È¤á-û¤u-²£«~¡v²Õ¦¨¤@±iq³æ¡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¡uq³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Á`¤½¥qn¶i¦æ¡u·|p¡v¬ÛÃöªº¥\¯à¡A¨Ï¥ÎªÌ±¹ïªºÀ³¸Ó¬OÁ`Å骺q³æ¸ê®Æ¡A¤À¦¨¥x¥_¡B¥x¤¤¡B°ª¶¯¨Ã¨S¦³¤Ó¤jªº·N¸q)¡C
ÜÀx¸ê®ÆÀ³¬O³Ì¦a°ì©Êªº¡A¥un·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ÁÙ¬On¨Ì¤½¥q»Ý¨D¬°¥D¡A¦³¨Ç¤½¥q´N¤£»{¬°«È¤á¸ê®Æ¶·n¦³¯S§Oªº¦a°ì¤Æ¡A¦Ó¬O¥þ¤½¥q³£¨Ï¥Î¦P¤@¥÷«È¤á¸ê®Æ¡C
§ÚÌ¥²¶·¥H¡u¥\¯à¡v(¨Ò¦p¡G¤Wzªºq³æ°Ê§@)¨ÓµûÂ_¡u¤À³Î¡vªº²z¥Ñ©Ê¡A¨Ò¦p¡Gq³æ¸ê®Æ¡A¥Ø«e¼È©w¬°¡u¤À³Î¡v¡A¥x¤¤²Õ¦X¦¨ªºq³æ©ñ¦b¥x¤¤¦Û¤v³oùØ¡A¦ý¬OY¬O²{¦bn§@¥þ¤½¥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¡AY¬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¤¤¡An¨Ï¥Î¤À´²¦¡¸ê®Æ®w«D±`ªºÂ²³æ¡A¥unÁʶRªº±ÂÅv½d³ò¤º³\¥i¡A¥un¦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¥Dnªº¥\¥Î¬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_An¶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¡AY¬O·Qnª¾¹DDB_Bªº¸ê®Æ¡A¥un¤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´Nnµy¥[¯d·N¡C
¨Ò¦p¡G¦bDB_A¤¤ªº¡usharon¡v¡A·ílogin¶iDB_A®É¡A·Qn¦s¨úDB_Bªº¸ê®Æ®É¡ADBMaker¬O¥Hsharon¦blogin
DB_A®É©Ò¥ÎªºUserName¤ÎPassword¨Óµn¤JDB_B¡A©Ò¥HY¬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¥un«ü©ú¸ê®Æ©Ò¦b¦ì¸m(¦p¹Ï¤¤¥x¥_)§Y¥i¡A¨Ò¦p«e±©Ò»¡ªºq³æ°Ê§@¡AY¬On±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¨º»ò¤Wz²Ä¤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¡AYUser_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¤Hn¦s¨ú»·ºÝDB_Bªº¸ê®Æ®É¡A¥un¨Ï¥Î¡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¡AY¬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®É¡AY¬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©Ò¥HY¬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¡CY¬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¤Wz¨Ò¤l¤¤¡ADB_Aªº¿é¤J±N¤£·|³QDB_B¤Îºô¸ô©Ò¼vÅT¡C¹ê»Ú¨Ò¤l¤¤¡AY¬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·QnÅýDB_A¡BDB_B¯à¤¬¬Û½Æ»s¡A³oºØn¨D¬Ý¨Ó¦X²z¡A²Ó±´¤§¤U¡A«o¤S¦³¨ä§xÃø³B¡C¨Ò¦p¡GYn¨DDB_AªºTable1ªº¡u·s¼W¡v¸ê®Æ¡A¥²¶·n½Æ»s¨ìDB_BªºTable1¥h¡A¦P®É¤Sn¨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«á¦Az)¡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¤Wzªºª¬ª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¤è¦¡½Ð¬Ý«ez¡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!!¨âÃäªí®æ¤@©wn³]©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¥un¯à´x´¤¦ínn³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ÀÉ¡AYµ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
·í¥[¤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¬Ot³d§@Global
Transactionªº¡A¥un±NDDB¥´¶}¡A¹w³]«K·|±N¦¹Daemon±Ò°Ê¡C

2. ±Ò°ÊDistributor
±µ¤U¨Ó¡A³]©wÅýDistributor¯à°÷¥¿±`±Ò°Ê¡A½Ð¦bdmconfig.ini¥[¤J
ªí¥Ü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¬Ot³d±NTRPLOGªº¸ê®Æ¡AÅܦ¨¤@ÓÓªºODBC«ü¥O¡A¥hupdate»·ºÝ¸ê®Æ®w¡A©Ò¥H§ÚÌ¥i¥H¥ý¨ìdmconfig.ini¡A¥h³]©wn©ñ¸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¡AY¬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ªº(¥un¸Ó¸ê®Æ®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¡AY³]©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§ÚÌ´Nn³]©wDistributorn·h²¾ªº¤º®e¡A¤]´N¬Oªí®æ½Æ»s¤¤ªº¡uªí®æ¡v¡A¨Ó·½¸ê®Æ®w»P¥Øªº¸ê®Æ®w¨âÃän½Æ»sªºªí®æ¡Aº¥ý¡Aschema³Ì¦nn¬Û¦ü¡A¥HÁ×§Kªí®æ·h°Ê«á¡Aµo¥Í¸ê®ÆÂà´«¤£¹L¥hªº°ÝÃD¡C¨ä¦¸¡A¨âÃ䪺ªí®æ¤@©wn¦³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¬°¤FnÅý¤@¶}©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µ{¡AY¬O¥¢±Ñªº¸Ü¡A·|°O¿ý¦bATRERROR.LOG¡AATRP.LOG¥»¨¬O¤£°O¿ý¿ù»~ªº!
²§½è¸ê®Æ®wªº·h°Ê»PDBMakerªº·h°Ê¡A³]©w¤W´X¥G§¹¥þ¤@¼Ë¡A¥u¬O¦¹®É³]©wªºDB@Bn¥Î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¡An½Æ»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¥un¬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¤Wz¹ê¨Ò¡A¥unì«h´x´¤¦í¡ADDB¤ÎTable
Replicationªº¹B¥Î¦s¥G¤@¤ß¡A¬O¥i¤Ñ°¨¦æªÅµo´§¦a¡C
|