ç¹°ãè¿ããŸãããæ¯åæ°ããæ¹æ³ã§-ãã®èžè¡ã§ã¯ãããŸãããïŒ
ã¹ã¿ãã¹ã©ãã»ãžã£ãŒãžãŒã»ã¬ã¯ããUncombedThoughtsããšããæ¬ãã
èŸæžã§ã¯ãã¬ããªã±ãŒã·ã§ã³ã2ã€ïŒãŸãã¯ãã以äžïŒã®ããŒã¿ã»ãããäžè²«ããç¶æ ã«ç¶æããããã»ã¹ãšããŠå®çŸ©ããŠããŸãããããŒã¿ã»ããã®äžè²«æ§ã®ããç¶æ ããšã¯å¥ã®å€§ããªåé¡ãªã®ã§ãããç°¡åãªæ¹æ³ã§å®çŸ©ãåå®åŒåããŸãããããã¹ã¿ãŒãšåŒã°ããå¥ã®ããŒã¿ã»ããã®å€æŽã«å¿ããŠãã¬ããªã«ãšåŒã°ãã1ã€ã®ããŒã¿ã»ããã倿Žããããã»ã¹ã§ããã»ããã¯å¿ ãããåãã§ã¯ãããŸããã
ããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ã®ãµããŒãã¯ã管çè ã®æãéèŠãªã¿ã¹ã¯ã®1ã€ã§ããéèŠãªã»ãšãã©ãã¹ãŠã®ããŒã¿ããŒã¹ã«ã¯ãã¬ããªã«ããããŸãã
ã¬ããªã±ãŒã·ã§ã³ã¿ã¹ã¯ã«ã¯ãå°ãªããšã
- ã¡ã€ã³ããŒã¿ããŒã¹ã倱ãããå Žåã®ããã¯ã¢ããããŒã¿ããŒã¹ã®ãµããŒãã
- ãªã¯ãšã¹ãã®äžéšãã¬ããªã«ã«è»¢éããããšã«ããããŒã¹ã®è² è·ã軜æžããŸãã
- ã¢ãŒã«ã€ããŸãã¯åæã·ã¹ãã ãžã®ããŒã¿ã®è»¢éã
ãã®èšäºã§ã¯ãã¬ããªã±ãŒã·ã§ã³ã®ã¿ã€ããšãåã¿ã€ãã®ã¬ããªã±ãŒã·ã§ã³ã解決ããã¿ã¹ã¯ã«ã€ããŠèª¬æããŸãã
ã¬ããªã±ãŒã·ã§ã³ã«ã¯3ã€ã®ã¢ãããŒãããããŸãã
- ã¹ãã¬ãŒãžã·ã¹ãã ã¬ãã«ã§ã¬ããªã±ãŒã·ã§ã³ããããã¯ããŸãã
- DBMSã¬ãã«ã§ã®ç©ççãªè€è£œã
- DBMSã¬ãã«ã§ã®è«çã¬ããªã±ãŒã·ã§ã³ã
è€è£œããããã¯ãã
ãããã¯ã¬ããªã±ãŒã·ã§ã³ã§ã¯ãåæžãèŸŒã¿æäœã¯ãã©ã€ããªãã£ã¹ã¯ã ãã§ãªãããââãã¯ã¢ããã§ãå®è¡ãããŸãããããã£ãŠãããã¢ã¬ã€ã®ããªã¥ãŒã ã¯å¥ã®ã¢ã¬ã€ã®ãã©ãŒããªã¥ãŒã ã«å¯Ÿå¿ããã¡ã€ã³ããªã¥ãŒã ããã€ã粟床ã§ç¹°ãè¿ããŸãã
ãã®ãããªã¬ããªã±ãŒã·ã§ã³ã®å©ç¹ã«ã¯ãã»ããã¢ããã®å®¹æããšä¿¡é Œæ§ãå«ãŸããŸããããŒã¿ã¯ããã£ã¹ã¯ã¢ã¬ã€ããŸãã¯ãã¹ããšãã£ã¹ã¯ã®éã®äœãïŒããã€ã¹ãŸãã¯ãœãããŠã§ã¢ïŒã®ããããã«ãã£ãŠãªã¢ãŒããã£ã¹ã¯ã«æžã蟌ãããšãã§ããŸãã
ãã£ã¹ã¯ã¢ã¬ã€ã«ã¯ãã¬ããªã±ãŒã·ã§ã³ãæå¹ã«ãããªãã·ã§ã³ã远å ã§ããŸãããªãã·ã§ã³åã¯ãã¢ã¬ã€ã®è£œé å ã«ãã£ãŠç°ãªããŸãã
| ã¡ãŒã«ãŒ | åæš
|
|---|---|
| EMC | SRDFïŒSymmetrixãªã¢ãŒãããŒã¿ãã¡ã·ãªãã£ïŒ |
| IBM | ã¡ãããã©ãŒ-åæã¬ããªã±ãŒã·ã§ã³
ã°ããŒãã«ãã©ãŒ-éåæã¬ããªã±ãŒã·ã§ã³ |
| æ¥ç« | TrueCopy |
| ãã¥ãŒã¬ããããã«ãŒã | ç¶ç¶çãªã¢ã¯ã»ã¹ |
| Huawei | HyperReplication |
ãã£ã¹ã¯ã¢ã¬ã€ãããŒã¿ãè€è£œã§ããªãå Žåã¯ããã¹ããšã¢ã¬ã€ã®éã«ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããŠã2ã€ã®ã¢ã¬ã€ã«åæã«æžã蟌ãããšãã§ããŸãããšãŒãžã§ã³ãã¯ãã¹ã¿ã³ãã¢ãã³ããã€ã¹ïŒEMC VPLEXïŒãŸãã¯ãœãããŠã§ã¢ã³ã³ããŒãã³ãïŒHPE PeerPersistenceãWindows Server Storage ReplicaãDRBDïŒã®ããããã§ããåãã¢ã¬ã€ããŸãã¯å°ãªããšãåãã¡ãŒã«ãŒã®ã¢ã¬ã€ã§ã®ã¿æ©èœãããã£ã¹ã¯ã¢ã¬ã€ãšã¯ç°ãªãããšãŒãžã§ã³ãã¯å®å šã«ç°ãªããã£ã¹ã¯ããã€ã¹ã§æ©èœããŸãã
ãããã¯ã¬ããªã±ãŒã·ã§ã³ã®äž»ãªç®çã¯ããã©ãŒã«ããã¬ã©ã³ã¹ãæäŸããããšã§ããããŒã¿ããŒã¹ã倱ãããå Žåã¯ããã©ãŒãªã³ã°ãããããªã¥ãŒã ã䜿çšããŠããŒã¿ããŒã¹ãåèµ·åã§ããŸãã
ãããã¯ã¬ããªã±ãŒã·ã§ã³ã¯ãã®æ±çšæ§ã«åªããŠããŸãããæ±çšæ§ã«ã¯ä»£åã䌎ããŸãã
ãŸãããµãŒããŒã¯ãã©ãŒãªã³ã°ãããããªã¥ãŒã ãåŠçã§ããŸãããããã¯ããã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããµãŒããŒãžã®æžã蟌ã¿ãå¶åŸ¡ã§ããªãããã§ãããªãã¶ãŒããŒã®èгç¹ããã¯ããã©ãŒãªã³ã°ãããããªã¥ãŒã äžã®ããŒã¿ã¯ããèªäœã§è¡šç€ºãããŸããé害ïŒãã©ã€ããªãµãŒããŒãŸãã¯ãã©ã€ããªãµãŒããŒãé 眮ãããŠããããŒã¿ã»ã³ã¿ãŒå šäœã®é害ïŒãçºçããå Žåã¯ãã¬ããªã±ãŒã·ã§ã³ã忢ãããã©ã€ããªããªã¥ãŒã ãã¢ã³ããŠã³ãããŠããã©ãŒãªã³ã°ãããããªã¥ãŒã ãããŠã³ãããå¿ èŠããããŸããã§ããã ãæ©ããå察æ¹åã«ã¬ããªã±ãŒã·ã§ã³ãåéããå¿ èŠããããŸãã
ãšãŒãžã§ã³ãã䜿çšããå Žåããããã®ã¢ã¯ã·ã§ã³ã¯ãã¹ãŠãšãŒãžã§ã³ãã«ãã£ãŠå®è¡ãããŸããããã«ãããæ§æãç°¡çŽ åãããŸãããåãæ¿ãæéã¯ççž®ãããŸããã
次ã«ãã¹ã¿ã³ãã€ãµãŒããŒäžã®DBMSèªäœã¯ããã£ã¹ã¯ãããŠã³ããããåŸã«ã®ã¿èµ·åã§ããŸããäžéšã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããšãã°Solarisã§ã¯ããã£ãã·ã¥ã®ã¡ã¢ãªã¯å²ãåœãŠäžã«ããŒã¯ã¢ãããããããŒã¯æéã¯å²ãåœãŠãããã¡ã¢ãªã®éã«æ¯äŸããŸããã€ãŸããã€ã³ã¹ã¿ã³ã¹ã®éå§ã¯ç¬æã«ã¯è¡ãããŸãããããã«ãåèµ·ååŸããã£ãã·ã¥ã¯ç©ºã«ãªããŸãã
第3ã«ãããã¯ã¢ãããµãŒããŒã§èµ·åããåŸãDBMSã¯ãã£ã¹ã¯äžã®ããŒã¿ã«äžè²«æ§ããªãããšãæ€åºããREDOãã°ã䜿çšããŠå埩ããã®ã«ããªãã®æéãè²»ããå¿ èŠããããŸããæåã«ãçµæããã°ã«ä¿åããããããŒã¿ãã¡ã€ã«ã«ä¿åããæéããªãã£ããã©ã³ã¶ã¯ã·ã§ã³ãç¹°ãè¿ããŸããæ¬¡ã«ãé害çºçæã«å®äºããæéããªãã£ããã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ããŸãã
ãããã¯ã¬ããªã±ãŒã·ã§ã³ã¯è² è·åæ£ã«ã¯äœ¿çšã§ããŸãããåæ§ã®ã¹ããŒã ã䜿çšããŠããã©ã€ããªãšåãã¢ã¬ã€äžã®ãã©ãŒãªã³ã°ãããããªã¥ãŒã ã§ããŒã¿ã¹ãã¢ãã¢ããã°ã¬ãŒãããŸãã EMCãšHPã¯ãã®ã¹ããŒã ãBCVãšåŒã³ãEMCã®ã¿ãBusiness Continuance Volumeã衚ããHPã¯Business CopyVolumeã衚ããŸãã IBMã«ã¯ããã®å Žåã®ç¹å¥ãªåæšã¯ãããŸããããã®ã¹ããŒã ã¯ããã©ãŒããªã¥ãŒã ããšåŒã°ããŸãã
ã¢ã¬ã€ã«2ã€ã®ããªã¥ãŒã ãäœæãããæžãèŸŒã¿æäœã¯äž¡æ¹ã§åæçã«å®è¡ãããŸãïŒAïŒãããæç¹ã§ããã©ãŒãå£ããŸãïŒBïŒãã€ãŸããããªã¥ãŒã ãç¬ç«ããŸãããã©ãŒãªã³ã°ãããããªã¥ãŒã ã¯ãã¹ãã¬ãŒãžã®ã¢ããã°ã¬ãŒãå°çšã®ãµãŒããŒã«ããŠã³ãããããã®ãµãŒããŒã§ããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ãçæãããŸããã€ã³ã¹ã¿ã³ã¹ã¯ããããã¯ã¬ããªã±ãŒã·ã§ã³ã®åŸ©å ã®å ŽåãšåããããæéãããããŸããããªãããŒã¯æã«ãã©ãŒãè§£é€ããããšã§ããã®æéãå€§å¹ ã«ççž®ã§ããŸããéèŠãªã®ã¯ããã®çµæãšããŠãã©ãŒãå£ãããšã¯ãDBMSã®ç°åžžçµäºãšåçã§ãããç°åžžçµäºã®å Žåã®å埩æéã¯ãã¯ã©ãã·ã¥æã®ã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ã®æ°ã«å€§ããäŸåãããšããããšã§ããã¢ã³ããŒãçšã®ããŒã¿ããŒã¹ã¯ãèªã¿åããšæžã蟌ã¿ã®äž¡æ¹ã§äœ¿çšã§ããŸãããã¹ãŠã®ãããã¯èå¥åãã¡ã€ã³ããªã¥ãŒã ãšãã©ãŒãªã³ã°ãããããªã¥ãŒã ã®äž¡æ¹ã§ãäŒæ©åŸã«å€æŽããããã©ãŒã¯ããããã¯å€æŽè¿œè·¡ã®ç¹å¥ãªé å-BCTã«ä¿åãããŸãã
ã¢ããããŒãã®çµäºåŸããã©ãŒãªã³ã°ãããããªã¥ãŒã ãã¢ã³ããŠã³ãããïŒCïŒããã©ãŒã埩å ããããã°ãããããšããã©ãŒãªã³ã°ãããããªã¥ãŒã ãåã³ã¡ã€ã³ããªã¥ãŒã ã«è¿œãã€ãããã®ã³ããŒã«ãªããŸãã
ç©ççãªè€è£œ
ãã°ïŒããçŽããã°ãŸãã¯å èªã¿ãã°ïŒã«ã¯ãããŒã¿ããŒã¹ãã¡ã€ã«ã«å ãããããã¹ãŠã®å€æŽãå«ãŸããŸããç©çã¬ããªã±ãŒã·ã§ã³ã®èåŸã«ããèãæ¹ã¯ããã°ããã®å€æŽãå¥ã®ããŒã¿ããŒã¹ïŒã¬ããªã«ïŒã«åã³ãããããããããã¬ããªã«å ã®ããŒã¿ãã¡ã€ã³ããŒã¿ããŒã¹å ã®ããŒã¿ããã€ãããšã«ã¬ããªã±ãŒããããšãããã®ã§ãã
ããŒã¿ããŒã¹ãã°ã䜿çšããŠã¬ããªã«ãæŽæ°ããæ©èœã¯ã1996幎ã«ãªãªãŒã¹ãããOracle 7.3ã®ãªãªãŒã¹ã§ç»å Žãããã§ã«Oracle 8iã®ãªãªãŒã¹ã§ã¯ãã¡ã€ã³ããŒã¿ããŒã¹ããã¬ããªã«ãžã®ãã°ã®é ä¿¡ãèªååãããDataGuardãšåä»ããããŸããããã®ãã¯ãããžãŒã¯éåžžã«éèŠãé«ãããšã倿ããããã仿¥ãç©çã¬ããªã±ãŒã·ã§ã³ã®ã¡ã«ããºã ã¯ã»ãšãã©ãã¹ãŠã®ææ°ã®DBMSã«ååšããŠããŸãã
| DBMS | ã¬ããªã±ãŒã·ã§ã³ãªãã·ã§ã³
|
|---|---|
| ãªã©ã¯ã« | ã¢ã¯ãã£ããªDataGuard |
| IBM DB2 | HADR |
| Microsoft SQL Server | ãã°é åž/åžžæãªã³ |
| PostgreSQL | ãã°é åž/ã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ |
| MySQL | ã¢ãªããã®ç©ççãªInnoDBã¬ããªã±ãŒã·ã§ã³ |
çµéšã«ããã°ããµãŒããŒã䜿çšããŠã¬ããªã«ãææ°ã®ç¶æ ã«ä¿ã€ã ãã®å Žåãã¡ã€ã³ããŒã¹ãå®è¡ãããŠãããµãŒããŒã®åŠçèœåã®çŽ10ïŒ ã§ååã§ãã
DBMSãã°ã¯ããã®ãã©ãããã©ãŒã ã®å€éšã§äœ¿çšããããšãç®çãšããŠããŸããããã®åœ¢åŒã¯ææžåãããŠããããäºåãªãã«å€æŽãããå ŽåããããŸãããããã£ãŠãç©ççãªè€è£œãåãDBMSã®åãããŒãžã§ã³ã®ã€ã³ã¹ã¿ã³ã¹éã§ã®ã¿å¯èœã§ãããšããéåžžã«èªç¶ãªèŠä»¶ããããã£ãŠããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããã»ããµã¢ãŒããã¯ãã£ã«å¶éãããããã°ã®åœ¢åŒã«ã圱é¿ãäžããå¯èœæ§ããããŸãã
åœç¶ãç©çã¬ããªã±ãŒã·ã§ã³ã¯ã¹ãã¬ãŒãžã¢ãã«ã«å¶éã課ããŸãããããã«ãã¬ããªã«ããŒã¿ããŒã¹å ã®ãã¡ã€ã«ã¯ããœãŒã¹ããŒã¿ããŒã¹å ãšã¯ãŸã£ããç°ãªãæ¹æ³ã§é 眮ã§ããŸãããããã®ãã¡ã€ã«ãé 眮ãããŠããããªã¥ãŒã éã®å¯Ÿå¿ãèšè¿°ããå¿ èŠãããã ãã§ãã
Oracle DataGuardã䜿çšãããšãã¬ããªã«ããŒã¿ããŒã¹ããäžéšã®ãã¡ã€ã«ãåé€ã§ããŸãããã®å Žåããããã®ãã¡ã€ã«ã«é¢é£ãããã°ã®å€æŽã¯ç¡èŠãããŸãã
ç©çããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ã«ã¯ãã¹ãã¬ãŒãžã¬ããªã±ãŒã·ã§ã³ã«æ¯ã¹ãŠå€ãã®å©ç¹ããããŸãã
- ãã°ã®ã¿ã転éãããããŒã¿ãã¡ã€ã«ã¯è»¢éãããªãããã転éãããããŒã¿ã®éã¯å°ãªããªããŸããå®éšã§ã¯ããã©ãã£ãã¯ã5ã7åæžå°ããããšã瀺ãããŠããŸãã
- : - , ; , ;
- , . , .
ã¬ããªã«ããããŒã¿ãèªã¿åãæ©èœã¯ãDataGuardãã¯ãããžã®ååã«ãã¢ã¯ãã£ãããšããæåã远å ãããŠããããšãããããããã«ãOracle11gã®ãªãªãŒã¹ãšãšãã«2007幎ã«å°å ¥ãããŸãããä»ã®DBMSã«ãã¬ããªã«ããèªã¿åãæ©èœããããŸãããããã¯ååã«ã¯åæ ãããŠããŸããã
倿Žã¯ãã€ãããšã«è¡ãããã¬ããªã«ã¯èŠæ±ã®åæå®è¡ãæäŸã§ããªããããã¬ããªã«ã«ããŒã¿ãæžã蟌ãããšã¯äžå¯èœã§ããæè¿ã®ãªãªãŒã¹ã®OracleActive DataGuardã§ã¯ã¬ããªã«ãžã®æžã蟌ã¿ãå¯èœã§ãããããã¯ãç ç³ãã«ãããŸãããå®éã倿Žã¯ã¡ã€ã³ããŒã¹ã§å®è¡ãããã¯ã©ã€ã¢ã³ãã¯ããããã¬ããªã«ã«ããŒã«ãããã®ãåŸ ã£ãŠããŸãã
ã¡ã€ã³ããŒã¿ããŒã¹å ã®ãã¡ã€ã«ãç ŽæããŠããå Žåã¯ã察å¿ãããã¡ã€ã«ãã¬ããªã«ããã³ããŒããã ãã§ãïŒããŒã¿ããŒã¹ã§ãããè¡ãåã«ã管çè ããã¥ã¢ã«ãæ³šææ·±ãèªãã§ãã ããïŒïŒãã¬ããªã«äžã®ãã¡ã€ã«ã¯ãã¡ã€ã³ããŒã¿ããŒã¹å ã®ãã¡ã€ã«ãšåäžã§ã¯ãªãå ŽåããããŸããå®éããã¡ã€ã«ãå±éããããšãé床ãäžããããã«æ°ãããããã¯ã«ã¯äœãå ¥åãããããã®å 容ã¯å¶çºçã§ããããŒã¹ã¯ãããã¯å ã®ãã¹ãŠã®ã¹ããŒã¹ã䜿çšããããã§ã¯ãããŸãããïŒããšãã°ããããã¯å ã«ç©ºãã¹ããŒã¹ãããå ŽåïŒã䜿çšãããã¹ããŒã¹ã®å å®¹ã¯æå€§ãã€ãã«äžèŽããŸãã
ç©ççãªè€è£œã¯ãåæãŸãã¯éåæã®ããããã«ãªããŸããéåæã¬ããªã±ãŒã·ã§ã³ã§ã¯ãã¡ã€ã³ããŒã¹ã§å®äºãããããŸã ã¹ã¿ã³ãã€ããŒã¹ã«å°éããŠããªãç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ã»ãããåžžã«ååšããã¡ã€ã³ããŒã¹ã«é害ãçºçããå Žåã«ã¹ã¿ã³ãã€ããŒã¹ã«ç§»è¡ããå Žåããããã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯å€±ãããŸããåæã¬ããªã±ãŒã·ã§ã³ã§ã¯ãã³ãããæäœã®å®äºã¯ããã®ãã©ã³ã¶ã¯ã·ã§ã³ã«é¢é£ãããã¹ãŠã®ãã°ã¬ã³ãŒããã¬ããªã«ã«ã³ããããããããšãæå³ããŸãããã°ã¬ããªã«ãååŸããŠãã倿ŽãããŒã¿ã«é©çšãããããã§ã¯ãªãããšãçè§£ããããšãéèŠã§ããã¡ã€ã³ããŒã¿ããŒã¹ã倱ãããå Žåããã©ã³ã¶ã¯ã·ã§ã³ã¯å€±ãããŸããããã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã³ããŒã¿ããŒã¹ã«ããŒã¿ãæžã蟌ã¿ãã¬ããªã«ããèªã¿åãå Žåããã®ããŒã¿ã®å€ãããŒãžã§ã³ãååŸããå¯èœæ§ããããŸãã
PostgreSQLã§ã¯ã倿Žãã¬ããªã«ããŒã¿ã«é©çšãããåŸã«ã®ã¿ã³ããããå®äºããããã«ã¬ããªã±ãŒã·ã§ã³ãæ§æã§ããŸããïŒãªãã·ã§ã³
synchronous_commit = remote_applyïŒãOracleã§ã¯ãã¬ããªã«å
šäœãŸãã¯åã
ã®ã»ãã·ã§ã³ãæ§æããŠãã¬ããªã«ãã¡ã€ã³ããŒã¿ããŒã¹ã«é
ãããšããªãå Žåã«ã®ã¿ã¯ãšãªãå®è¡ãããããã«ããããšãã§ããŸãïŒSTANDBY_MAX_DATA_DELAY=0ïŒããã ããã¡ã€ã³ããŒã¿ããŒã¹ãžã®æžã蟌ã¿ãšã¬ããªã«ããã®èªã¿åããç°ãªãã¢ãžã¥ãŒã«ã§å®è¡ãããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããããšããå§ãããŸãã
åæãŸãã¯éåæã®ã©ã¡ãã®ã¢ãŒããéžæããããšãã質åã«å¯Ÿããçããæ¢ããšããOracleã®ããŒã±ãã£ã³ã°æ åœè ãç§ãã¡ã®å©ãã«ãªããŸããDataGuardã¯3ã€ã®ã¢ãŒããæäŸãããããããä»ã®ãã©ã¡ãŒã¿ãŒãç ç²ã«ããŠããã©ã¡ãŒã¿ãŒã®1ã€ïŒããŒã¿ã®å®å šæ§ãããã©ãŒãã³ã¹ãå¯çšæ§ïŒãæå€§åããŸãã
- æå€§ã®ããã©ãŒãã³ã¹ïŒã¬ããªã±ãŒã·ã§ã³ã¯åžžã«éåæã§ãã
- Maximum protection: ; , commit ;
- Maximum availability: ; , , , .
ãããã¯ã¬ããªã±ãŒã·ã§ã³ã«å¯ŸããããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ã®åŠå®ã§ããªãå©ç¹ã«ãããããããå€ãã®äŒæ¥ãç¹ã«ä¿¡é Œæ§ã®å€ãäŒçµ±ãæã€ç®¡çè ã¯ããããã¯ã¬ããªã±ãŒã·ã§ã³ãæŸæ£ããããšã«äŸç¶ãšããŠéåžžã«æ¶æ¥µçã§ããããã«ã¯2ã€ã®çç±ããããŸãã
ãŸãããã£ã¹ã¯ã¢ã¬ã€ã䜿çšããã¬ããªã±ãŒã·ã§ã³ã®å Žåããã©ãã£ãã¯ã¯ããŒã¿äŒéãããã¯ãŒã¯ïŒLANïŒãééãããã¹ãã¬ãŒãžãšãªã¢ãããã¯ãŒã¯ãééããŸããå€ãã®å Žåãã¯ããæã«æ§ç¯ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãSANã¯ããŒã¿ãããã¯ãŒã¯ãããã¯ããã«ä¿¡é Œæ§ãé«ããå¹ççã§ãã
第äºã«ãDBMSã«ããåæã¬ããªã±ãŒã·ã§ã³ã¯æ¯èŒçæè¿ä¿¡é Œã§ãããã®ã«ãªããŸãããOracleã§ã¯ã2007幎ã«ãªãªãŒã¹ããã11gãªãªãŒã¹ã§ãã¬ãŒã¯ã¹ã«ãŒãçºçããä»ã®DBMSã§ã¯ãåæã¬ããªã±ãŒã·ã§ã³ãããã«é ããŠç»å ŽããŸããããã¡ãããæ å ±æè¡åéã®åºæºã«ãã10幎ã¯ããã»ã©çãã¯ãããŸããããããŒã¿ã®å®å šæ§ã«é¢ããŠã¯ãäžéšã®ç®¡çè ã¯äŸç¶ãšããŠãäœãèµ·ãã£ãŠããã®ååã«å°ãããŠããŸã...
è«çã¬ããªã±ãŒã·ã§ã³
ããŒã¿ããŒã¹å ã®ãã¹ãŠã®å€æŽã¯ãAPIã®åŒã³åºãã®çµæãšããŠçºçããŸããããšãã°ãSQLã¯ãšãªã®å®è¡ã®çµæãšããŠçºçããŸãã2ã€ã®ç°ãªãããŒã¹ã§åãã¯ãšãªã·ãŒã±ã³ã¹ãå®è¡ãããšããã¢ã€ãã¢ã¯éåžžã«é åçã§ããã¬ããªã±ãŒã·ã§ã³ã«ã€ããŠåŸãã¹ã2ã€ã®ã«ãŒã«ããããŸãã
- , , . D, A B.
- , , . B , , C.
ã³ãã³ãã®ã¬ããªã±ãŒã·ã§ã³ïŒã¹ããŒãã¡ã³ãããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ïŒã¯ãããšãã°MySQLã§å®è£ ãããŸããæ®å¿µãªããããã®åçŽãªã¹ããŒã ã§ã¯ã2ã€ã®çç±ã§åäžã®ããŒã¿ã»ãããäœæãããŸããã
ãŸãããã¹ãŠã®APIãæ±ºå®è«çã§ãããšã¯éããŸãããããšãã°ãSQLã¯ãšãªã«çŸåšã®æå»ãè¿ãnowïŒïŒãŸãã¯sysdateïŒïŒé¢æ°ãå«ãŸããŠããå Žåãã¯ãšãªã¯åæã«å®è¡ãããªããããç°ãªããµãŒããŒã§ç°ãªãçµæãè¿ãããŸããããã«ãããªã¬ãŒãšä¿åããã颿°ã®ããŸããŸãªç¶æ ãäžŠã¹æ¿ãé åºã«åœ±é¿ãäžããããŸããŸãªãã±ãŒã«ãªã©ãããŸããŸãªããšãéããåŒãèµ·ããå¯èœæ§ããããŸãã
次ã«ã䞊åã³ãã³ãããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ãäžæåæ¢ããŠæ£åžžã«åéããããšã¯ã§ããŸããã
æéT1ã§è€è£œã忢ããå Žåããã©ã³ã¶ã¯ã·ã§ã³Bãäžæ¢ããŠããŒã«ããã¯ããå¿ èŠããããŸããã¬ããªã±ãŒã·ã§ã³ãåéãããšããã©ã³ã¶ã¯ã·ã§ã³Bã®å®è¡ã«ãããã¬ããªã«ããœãŒã¹ããŒã¿ããŒã¹ã®ç¶æ ãšã¯ç°ãªãç¶æ ã«ãªãå¯èœæ§ããããŸãããœãŒã¹ã§ã¯ããã©ã³ã¶ã¯ã·ã§ã³Aãçµäºããåã«ãã©ã³ã¶ã¯ã·ã§ã³Bãéå§ãããŸãããã€ãŸãããã©ã³ã¶ã¯ã·ã§ã³Aã«ãã£ãŠè¡ããã倿Žã¯è¡šç€ºãããŸããã§ããã
ãªã¯ãšã¹ãã®ã¬ããªã±ãŒã·ã§ã³ã忢ããŠãããŒã¿ããŒã¹ã«ã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ããªãæéT2ã§ã®ã¿åèµ·åãããŸãããã¡ãããè² è·ã®é«ãç£æ¥åºç€ã«ã¯ãã®ãããªç¬éã¯ãããŸããã
éåžžãè«çã¬ããªã±ãŒã·ã§ã³ã¯æ±ºå®è«çã¯ãšãªã䜿çšããŸãããªã¯ãšã¹ãã®æ±ºå®æ§ã¯ã次ã®2ã€ã®ããããã£ã«ãã£ãŠæäŸãããŸãã
- ã¯ãšãªã¯åäžã®ã¬ã³ãŒããæŽæ°ïŒãŸãã¯æ¿å ¥ãŸãã¯åé€ïŒãããã®ãã©ã€ããªïŒãŸãã¯äžæã®ïŒããŒã§èå¥ããŸãã
- ãã¹ãŠã®ãªã¯ãšã¹ããã©ã¡ãŒã¿ã¯ããªã¯ãšã¹ãèªäœã«æç€ºçã«èšå®ãããŸãã
ã¹ããŒãã¡ã³ãããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ãšã¯ç°ãªãããã®ã¢ãããŒãã¯è¡ããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ãšåŒã°ããŸãã
次ã®ããŒã¿ãå«ãemployeeããŒãã«ããããšããŸãã
| ID | åå | éšé | 絊æ
|
|---|---|---|---|
| 3817 | ã€ã¯ããã€ã¯ã³ã€ã¯ãããã | 36 | 1800 |
| 2274 | ããããããã«ããããŽã£ãã | 36 | 1600 |
| 4415 | Kuznetsov Semyon Andreevich | 41 | 2100 |
ãã®ããŒãã«ã«å¯ŸããŠæ¬¡ã®æäœãå®è¡ãããŸããã
update employee set salary = salary*1.2 where dept=36;
ããŒã¿ãæ£ããè€è£œããããã«ã次ã®ã¯ãšãªãã¬ããªã«ã§å®è¡ãããŸãã
update employee set salary = 2160 where id=3817;
update employee set salary = 1920 where id=2274;
ã¯ãšãªã¯å ã®ããŒã¹ãšåãçµæãçæããŸãããå®è¡ãããã¯ãšãªãšåçã§ã¯ãããŸããã
ã¬ããªã«ããŒã¹ã¯éããŠãããèªã¿åãã ãã§ãªãæžã蟌ã¿ã«ã䜿çšã§ããŸããããã«ãããã¬ããªã«ã䜿çšããŠã远å ã®ããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ã®äœæãå¿ èŠãšããã¬ããŒãã®äœæãªã©ãã¯ãšãªã®äžéšãå®è¡ã§ããŸãã
è«çã¬ããªã«ã¯ã远å ã®å€æŽãè¡ãããªãå Žåã«ã®ã¿ãå ã®ããŒã¹ãšåçã«ãªãããšãçè§£ããããšãéèŠã§ããããšãã°ãäžèšã®äŸã§ãã¬ããªã«ã§ã·ãããã®éšéã36ã«è¿œå ãããå ŽåãåœŒã¯æé²ãåãåããŸãããã€ã¯ãããéšé36ãã転éãããå Žåã圌ã¯äœããã£ãŠãæé²ãåãåããŸãã
è«çã¬ããªã±ãŒã·ã§ã³ã¯ãä»ã®ã¿ã€ãã®ã¬ããªã±ãŒã·ã§ã³ã«ã¯ãªãå€ãã®æ©èœãæäŸããŸãã
- ã¬ããªã±ãŒããããããŒã¿ã®ã»ãããããŒãã«ã¬ãã«ã§èšå®ããŸãïŒç©çã¬ããªã±ãŒã·ã§ã³ã®å Žå-ãã¡ã€ã«ããã³ããŒãã«ã¹ããŒã¹ã¬ãã«ã§ããããã¯ã¬ããªã±ãŒã·ã§ã³ã®å Žå-ããªã¥ãŒã ã¬ãã«ã§ïŒã
- è€éãªã¬ããªã±ãŒã·ã§ã³ããããžã®æ§ç¯-ããšãã°ãè€æ°ã®ããŒã¿ããŒã¹ã1ã€ãŸãã¯åæ¹åã®ã¬ããªã±ãŒã·ã§ã³ã«çµ±åããŸãã
- éä¿¡ããŒã¿éã®æžå°ã
- ç°ãªãããŒãžã§ã³ã®DBMSéããŸãã¯ç°ãªãã¡ãŒã«ãŒã®DBMSéã§ã®è€è£œã
- åæ§ç¯ã匷åãå±¥æŽä¿åãªã©ãè€è£œäžã®ããŒã¿åŠçã
è«çã¬ããªã±ãŒã·ã§ã³ãç©çã¬ããªã±ãŒã·ã§ã³ã«åã£ãŠä»£ããããšãã§ããªããšããæ¬ ç¹ããããŸãã
- è€è£œããããã¹ãŠã®ããŒã¿ã«ã¯ãã©ã€ããªããŒãå¿ èŠã§ãã
- è«çã¬ããªã±ãŒã·ã§ã³ã¯ãã¹ãŠã®ããŒã¿ã¿ã€ãããµããŒãããŠããããã§ã¯ãããŸãããããšãã°ãBLOBã«åé¡ãããå¯èœæ§ããããŸãã
- : , ;
- ;
- , , â , .
æåŸã®2ã€ã®æ¬ ç¹ã¯ãéå®³èæ§ããŒã«ãšããŠã®è«çã¬ããªã«ã®äœ¿çšãå€§å¹ ã«å¶éããŸããã¡ã€ã³ããŒã¿ããŒã¹ã®1ã€ã®ã¯ãšãªãäžåºŠã«å€ãã®è¡ã倿Žãããšãã¬ããªã«ãå€§å¹ ã«é ããå¯èœæ§ããããŸãããŸãã圹å²ã倿Žããã«ã¯ãéçºè ãšç®¡çè ã®äž¡æ¹ã®å€å€§ãªåªåãå¿ èŠã§ãã
è«çã¬ããªã±ãŒã·ã§ã³ãå®è£ ããã«ã¯ããã€ãã®æ¹æ³ãããããããã®åã¡ãœããã¯æ©èœã®äžéšãå®è£ ããä»ã®éšåã¯å®è£ ããŸããã
- ããªã¬ãŒã«ããè€è£œã
- DBMSãã°ã®äœ¿çšã
- CDCïŒå€æŽããŒã¿ãã£ããã£ïŒãœãããŠã§ã¢ã®äœ¿çšã
- é©çšãããã¬ããªã±ãŒã·ã§ã³ã
ã¬ããªã±ãŒã·ã§ã³ãããªã¬ãŒãã
ããªã¬ãŒã¯ãããŒã¿ã倿Žããã¢ã¯ã·ã§ã³ãçºçãããšèªåçã«å®è¡ãããã¹ãã¢ãããã·ãŒãžã£ã§ããåã¬ã³ãŒãã倿Žããããšãã«åŒã³åºãããããªã¬ãŒã¯ããã®ã¬ã³ãŒãã®ããŒãããã³å€ããã£ãŒã«ãå€ãšæ°ãããã£ãŒã«ãå€ã«ã¢ã¯ã»ã¹ã§ããŸããå¿ èŠã«å¿ããŠãããªã¬ãŒã¯æ°ããè¡ã®å€ãç¹å¥ãªããŒãã«ã«ä¿åããããããã¬ããªã«åŽã®ç¹å¥ãªããã»ã¹ãããããèªã¿åããŸããããªã¬ãŒå ã®ã³ãŒãã®éãå€ãããããã®ãããªããªã¬ãŒãçæããç¹å¥ãªãœãããŠã§ã¢ããããŸããããšãã°ããããŒãžã¬ããªã±ãŒã·ã§ã³ãïŒMicrosoft SQL Serverã®ã³ã³ããŒãã³ãïŒãŸãã¯Slony-IïŒPostgreSQLã¬ããªã±ãŒã·ã§ã³çšã®å¥åã®è£œåïŒãªã©ã§ãã
ããªã¬ãŒã¬ããªã±ãŒã·ã§ã³ã®é·æïŒ
- ã¡ã€ã³ããŒã¹ãšã¬ããªã«ã®ããŒãžã§ã³ããã®ç¬ç«æ§ã
- åºç¯ãªããŒã¿å€ææ©èœã
çæïŒ
- ã¡ã€ã³ããŒã¹ã«è² è·ããããŸãã
- é«ãã¬ããªã±ãŒã·ã§ã³ã¬ã€ãã³ã·ã
DBMSãã°ã®äœ¿çš
DBMSèªäœããè«çã¬ããªã±ãŒã·ã§ã³æ©èœãæäŸã§ããŸãããã°ã¯ãç©ççãªè€è£œã®å Žåãšåæ§ã«ãããŒã¿ã®ãœãŒã¹ã§ãããã€ã倿Žã«é¢ããæ å ±ã¯ã倿Žããããã£ãŒã«ãïŒOracleã
wal_level = logicalPostgreSQLã®è£è¶³ãã®ã³ã°ïŒã«é¢ããæ
å ±ãããã³å€æŽãããŠããªãå Žåã§ãäžæã®ããŒã®å€ã«ã远å ãããŸãããã®çµæãããŒã¿ããŒã¹ãã°ã®éã¯å¢å ããŠããŸã-ããŸããŸãªèŠç©ããã«ãããšã10ïŒ
ãã15ïŒ
ã«ãªã£ãŠããŸãã
ã¬ããªã±ãŒã·ã§ã³æ©èœã¯ãç¹å®ã®DBMSã§ã®å®è£ ã«ãã£ãŠç°ãªããŸããOracleã§è«çã¹ã¿ã³ãã€ãæ§ç¯ã§ããå Žåã¯ãPostgreSQLãŸãã¯Microsoft SQL Serverã§ãçµã¿èŸŒã¿ã®ãã©ãããã©ãŒã ããŒã«ã䜿çšããŠãçžäºãµãã¹ã¯ãªãã·ã§ã³ãšãããªã±ãŒã·ã§ã³ã®è€éãªã·ã¹ãã ãå±éã§ããŸããããã«ãDBMSã¯ãã¬ããªã±ãŒã·ã§ã³ã®çµã¿èŸŒã¿ã®ç£èŠãšå¶åŸ¡ãæäŸããŸãã
ãã®ã¢ãããŒãã®æ¬ ç¹ã«ã¯ããã°ã®éã®å¢å ãšããŒãéã®ãã©ãã£ãã¯ã®å¢å ã®å¯èœæ§ãå«ãŸããŸãã
CDCã®äœ¿çš
è«çã¬ããªã±ãŒã·ã§ã³ãæŽçããããã«èšèšããããœãããŠã§ã¢ã®ã¯ã©ã¹å šäœããããŸãããã®ãœãããŠã§ã¢ã¯CDCãšåŒã°ããããŒã¿ãã£ããã£ã倿ŽããŸãããã®ã¯ã©ã¹ã§æãæåãªãã©ãããã©ãŒã ã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
- Oracle GoldenGateïŒ2009幎ã«GoldenGateã«è²·åïŒã
- IBM InfoSphere Data ReplicationïŒä»¥åã®InfoSphere CDCãããã«ä»¥åã¯ã2007幎ã«DataMirrorã«ãã£ãŠè²·åãããDataMirror Transformation ServerïŒã
- VisionSolutions DoubleTake / MIMIXïŒä»¥åã®Vision Replicate1ïŒ;
- Qlik Data Integration PlatformïŒä»¥åã®AttunityïŒ;
- Informatica PowerExchange CDC;
- ãããžãŠã ;
- StreamSetsããŒã¿ã³ã¬ã¯ã¿..ã
ãã©ãããã©ãŒã ã®ã¿ã¹ã¯ã¯ãããŒã¿ããŒã¹ãã°ãèªã¿åããæ å ±ã倿ããæ å ±ãã¬ããªã«ã«è»¢éããŠé©çšããããšã§ããDBMSèªäœã䜿çšããã¬ããªã±ãŒã·ã§ã³ã®å Žåãšåæ§ã«ããã°ã«ã¯å€æŽããããã£ãŒã«ãã«é¢ããæ å ±ãå«ãŸããŠããå¿ èŠããããŸãã远å ã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšãããšãè€è£œãããããŒã¿ã®è€éãªå€æããã®å Žã§å®è¡ããããªãè€éãªè€è£œããããžãæ§ç¯ã§ããŸãã
匷ã¿ïŒ
- ã¬ããŒãã·ã¹ãã ãžã®ããŒã¿ã®ããŒããå«ããç°ãªãDBMSéã§è€è£œããæ©èœã
- ããŒã¿åŠçãšå€æã®æãåºãå¯èœæ§ã
- ããŒãéã®æå°éã®ãã©ãã£ãã¯-ãã©ãããã©ãŒã ã¯äžèŠãªããŒã¿ã鮿ãããã©ãã£ãã¯ãå§çž®ã§ããŸãã
- ã¬ããªã±ãŒã·ã§ã³ã®ã¹ããŒã¿ã¹ãç£èŠããããã®çµã¿èŸŒã¿æ©èœã
å€ãã®æ¬ ç¹ã¯ãããŸããïŒ
- DBMSã«ããè«çã¬ããªã±ãŒã·ã§ã³ãšåæ§ã«ããã°ã®éãå¢å ããŸãã
- æ°ãããœãããŠã§ã¢ã®æ§æãé«äŸ¡ãªã©ã€ã»ã³ã¹ã§ã¯å°é£ã§ãã
ããã¯ãäŒæ¥ã®ããŒã¿ãŠã§ã¢ããŠã¹ãã»ãŒãªã¢ã«ã¿ã€ã ã§æŽæ°ããããã«åŸæ¥ãã䜿çšãããŠããCDCãã©ãããã©ãŒã ã§ãã
å¿çšè€è£œ
æåŸã«ãè€è£œã®å¥ã®æ¹æ³ã¯ãã¯ã©ã€ã¢ã³ãåŽã§çŽæ¥å€æŽãã¯ãã«ã圢æããããšã§ããã¯ã©ã€ã¢ã³ãã¯ãåäžã®ã¬ã³ãŒãã«åœ±é¿ãäžããæ±ºå®è«çã¯ãšãªãçºè¡ããå¿ èŠããããŸããããã¯ãBorland Database EngineïŒBDEïŒãHibernateORMãªã©ã®ç¹å¥ãªããŒã¿ããŒã¹ã©ã€ãã©ãªã䜿çšããŠå®çŸã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³ãå®äºãããšãHibernate ORMãã©ã°ã€ã³ã¯å€æŽãã¯ãã«ããã¥ãŒã«æžã蟌ã¿ãããŒã¿ããŒã¹ã§ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããŸããç¹å¥ãªã¬ããªã±ãŒã¿ããã»ã¹ããã¥ãŒãããã¯ãã«ãæžç®ããã¬ããªã«ããŒã¹ã§ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããŸãã
ãã®ã¡ã«ããºã ã¯ãã¬ããŒãã·ã¹ãã ã®æŽæ°ã«é©ããŠããŸãããã©ãŒã«ããã¬ã©ã³ã¹ãæäŸããããã«ã䜿çšã§ããŸããããã®å Žåãã¢ããªã±ãŒã·ã§ã³ã¯ã¬ããªã±ãŒã·ã§ã³ç¶æ ã®å¶åŸ¡ãå®è£ ããå¿ èŠããããŸãã
äŒçµ±çã«-ãã®ã¢ãããŒãã®é·æãšçæïŒ
- ã¬ããŒãã·ã¹ãã ãžã®ããŒã¿ã®ããŒããå«ããç°ãªãDBMSéã§è€è£œããæ©èœã
- ããŒã¿ãåŠçããã³å€æããæ©èœãç¶æ ã®ç£èŠãªã©ã
- ããŒãéã®æå°éã®ãã©ãã£ãã¯-ãã©ãããã©ãŒã ã¯äžèŠãªããŒã¿ã鮿ãããã©ãã£ãã¯ãå§çž®ã§ããŸãã
- ããŒã¿ããŒã¹ããã®å®å šãªç¬ç«-ãã©ãŒããããšå éšã¡ã«ããºã ã®äž¡æ¹ããã
ãã®æ¹æ³ã®å©ç¹ã¯åŠå®ã§ããŸãããã2ã€ã®éåžžã«æ·±å»ãªæ¬ ç¹ããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã®å¶éã
- 倧éã®ãã€ãã£ãã¬ããªã±ãŒã·ã§ã³ã³ãŒãã
ã§ã¯ãã©ã¡ããè¯ãã§ããïŒ
ä»ã®å€ãã®äººã®ããã«ããã®è³ªåã«å¯Ÿããæç¢ºãªçãã¯ãããŸããããã ãã以äžã®è¡šããç¹å®ã®ã¿ã¹ã¯ããšã«æ£ããéžæãè¡ãã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
| ã¹ãã¬ãŒãžãããã¯ã®è€è£œ | ãšãŒãžã§ã³ãã«ããè€è£œããããã¯ãã | ç©ççãªè€è£œ | è«çDBMSã¬ããªã±ãŒã·ã§ã³ | CDC |
|
||
|---|---|---|---|---|---|---|---|
| X | X | X/7..X/5 | X/7..X/5 | â€X/10 | â€X/10 | â€X/10 | |
| 5 ⊠| 5 ⊠| 1..10 | 1..10 | 1..2 | 1..2 | 1..2 | |
| + | + | +++ | + | â | â | â | |
| â | â | RO | R/W | R/W | R/W | R/W | |
| - | -
broadcast |
-
broadcast |
-
broadcast * p2p* |
-
broadcast * p2p* |
-
broadcast * p2p* |
-
broadcast * p2p* |
|
| â | â | â | â â | â â â | â â | â | |
| + + + | + + | + + | + + | â | + | â â â | |
| â â | â â | â | â | â | â â â | â | |
| â | + | + + | + + | + + | + + + | + + + |
- , ; .
- , .
- , .
- .
- , , .
- CDC , / .
- .