Ãâó :
http://imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=33696MySQL HA ±¸¼º
HeartBeat¸¦ ÀÌ¿ëÇÑ HA ±¸¼º¿¡´Â ´ÙÀ½°ú °°Àº ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù.
¡Ü HeartBeat - µÎ ¼¹ö »çÀÌ¿¡ Fail-Over¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â ¸ðµâ
¡Ü Mon - MySQL InstanceÀÇ ¼ºñ½º °¡´É ¿©ºÎ¸¦ üũÇϴ üũ ¸ðµâ
¡Ü MySQL Dual Replication - ¿øÈ°ÇÑ Fail-Over ¹× Fail-BackÀ» À§ÇÑ Replication ±¸¼º
HeartBeat
HeartBeat´Â Linux-HA ÇÁ·ÎÁ§Æ® ±×·ì¿¡¼ ¸¸µç ¸ðµâ·Î¼ ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼ °í°¡¿ë¼ºÀ» Á¦°øÇÑ´Ù. HeartBeat´Â À§¿¡¼ °£´ÜÈ÷ ¼³¸íÇÑ ´ë·Î µÎ ¼¹ö »çÀÌ¿¡ Fail-Over¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â ¸ðµâ·Î¼ ¼¹ö »çÀÌÀÇ Fail-Over ±â´ÉÀ» Á¦°øÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù.
HeartBeatÀÇ ±¸¼º
HeartBeat¸¦ ¼³Ä¡ÇÏ¸é µÎ ¼¹ö »çÀÌ¿¡ Áï, Primary·Î ¼³Á¤µÈ ¼¹ö¿Í Standby·Î ¼³Á¤µÈ ¼¹ö »çÀÌ¿¡ ÁÖ±âÀûÀ¸·Î ¸Þ½ÃÁö¸¦ ±³È¯ÇØ ¼¹öÀÇ »óŸ¦ È®ÀÎÇÑ´Ù. À̶§ ÁÖ°í¹Þ´Â ¸Þ½ÃÁö¸¦ ¡®heartbeat¡¯ Áï Çѱ۷Π¡®½ÉÀå¹Úµ¿¡¯À̶ó°í ÇÑ´Ù.
HeartBeat´Â Active·Î »ç¿ë ÁßÀÎ Primary ¼¹ö¿Í Passive »óÅÂÀÎ Standby ¼¹ö »çÀÌ¿¡ IP °ü¸® ±â´ÉÀÇ ÀÏȯÀ¸·Î, VIP¸¦ »ç¿ëÇØ Active »óÅÂÀÎ Primary ¼¹ö¿¡ Àå¾Ö°¡ ÀϾ´õ¶óµµ Passive »óÅÂÀÎ Standby ¼¹ö¸¦ ÀÌ¿ëÇØ ¼ºñ½º°¡ ÁøÇàµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â VIP¸¦ »ç¿ëÇØ ¼¹ö¿¡ Á¢±ÙÇÑ´Ù. À̶§ VIP·Î Á¢±ÙÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº HeartBeat ±¸¼º¿¡¼ Active·Î ¼³Á¤µÈ Primary ¼¹ö¿¡ ÀÚµ¿À¸·Î Á¢±ÙÇÏ°Ô µÈ´Ù. ¸¸¾à ¼¹ö°¡ rebootµÇ°Å³ª ¹®Á¦°¡ ¹ß»ýÇØ »ç¿ëÇÏÁö ¸øÇÏ´Â »óÅ°¡ µÇ´Â °æ¿ì HeartBeatÀÌ °¨ÁöÇØ ÇöÀç ¹®Á¦°¡ ¹ß»ýÇÑ Primary ¼¹ö°¡ ¾Æ´Ñ Standby ¼¹ö¸¦ Active·Î ÀüȯÇØ ¼ºñ½º°¡ °è¼Ó À̾îÁö°Ô ÇÑ´Ù.
HeartBeatÀÇ Æ¯¼º ¹× Á¦¾à »çÇ×
HeartBeat´Â ´ÙÀ½°ú °°Àº Ư¼º ¹× Á¦¾à »çÇ×À» °¡Áø´Ù.
- ¸®´ª½º ¼¹ö»óÀÇ Fail-Over ±â´ÉÀ» Á¦°øÇÏ°í ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. HeartBeat ¸ðµâÀº ¸®´ª½º-HA ÇÁ·ÎÁ§Æ® ±×·ì¿¡¼ ¸¸µç ¸ðµâÀ̱⠶§¹®¿¡ ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼¸¸ µ¿ÀÛÇÏ´Â ¸ðµâÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ ´Ù¸¥ ¿î¿µÃ¼Á¦¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛ¿¡¼´Â »ç¿ëÀÌ ºÒ°¡´ÉÇÏ´Ù.
- °£´ÜÇÑ ¼³Ä¡·Î »ç¿ëÀÌ ¿ëÀÌÇÏ´Ù.
- ½Ã½ºÅÛ ·¹º§(System Level)ÀÌ ¾Æ´Ñ ¾ÖÇø®ÄÉÀÌ¼Ç ·¹º§(Application Level)¿¡¼ÀÇ Fail-Over´Â ÇÒ ¼ö ¾ø´Ù. HeartBeat´Â VIP¸¦ ÀÌ¿ëÇØ µÎ °³ÀÇ ¼¹ö »çÀÌÀÇ Æ¯Á¤ ¼¹ö¸¸ Á¢±Ù °¡´ÉÇÏ°Ô ÇÏ´Â ¸ðµâÀ̱⠶§¹®¿¡ ½Ã½ºÅÛ ·¹º§¸¸ °¡´ÉÇÒ »Ó HeartBeat ÀÚüÀûÀ¸·Î´Â ¾ÖÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ Fail-Over°¡ ºÒ°¡´ÉÇÏ´Ù. Áï, ¾ÖÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ Fail-Over¸¦ À§Çؼ´Â Ãß°¡ÀûÀÎ ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù.
- HeartBeat ±¸¼ºÀ» À§ÇÑ Ãß°¡ÀûÀÎ Àåºñ°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù. HeartBeatÀº Active¿Í Passive¸¦ »ç¿ëÇÏ´Â µÎ ¼¹ö »çÀÌÀÇ ¼³Á¤À¸·Î »ç¿ëÇÏ´Â ¸ðµâÀ̱⠶§¹®¿¡ Ãß°¡ÀûÀÎ Àåºñ°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù.
Mon
MonÀº À̺¥Æ®¸¦ ÀÌ¿ëÇØ ¼ºñ½º¿¡ ´ëÇÑ »ç¿ëÀ» ¸ð´ÏÅ͸µÇÏ´Â ¸ðµâÀÌ´Ù. MonÀº ½Ã½ºÅÛÀ» ping ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ ¸ð´ÏÅ͸µÇÏ´Â °Í°ú °°Àº °£´ÜÇÑ °æ¿ì¿¡¼ºÎÅÍ DB ¼¹ö¿¡ ´ëÇÑ ¸ð´ÏÅ͸µ±îÁö °¡´ÉÇÑ ¸ð´ÏÅ͸µ ¸ðµâ·Î¼ HeartBeat°ú °°ÀÌ ¾²¿©¼ ¸®´ª½º »ó¿¡¼ Fail-Over¸¦ ±¸ÇöÇÒ ¼ö ÀÖ´Â ¸ðµâÀÌ´Ù.
MonÀÇ ±¸¼º ¹× µ¿ÀÛ ÇÁ·Î¼¼½º
MySQL ÇÁ·Î¼¼½ºÀÇ °¨Áö¸¦ À§ÇØ MonÀ» »ç¿ëÇÏ´Â °æ¿ì <±×¸² 3>°ú °°Àº ÇÁ·Î¼¼½º·Î ¸ð´ÏÅ͸µÀÌ ÁøÇàµÈ´Ù.
¸ÕÀú Mon ½ÇÇà ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØ MON ÇÁ·Î¼¼½º¸¦ ¶ç¿î´Ù. MONÀº ¼³Á¤ ÆÄÀÏ(mon.cf)¿¡ ÀúÀåµÈ °ªÀ» ÀÌ¿ëÇØ ÁÖ±âÀûÀ¸·Î mysql.monitor¸¦ ½ÇÇàÇÑ´Ù(mysql.monitor´Â MySQL°ú MSQLÀ» ¸ð´ÏÅ͸µÇϱâ À§ÇØ Á¦°øµÇ´Â ½ºÅ©¸³Æ®ÀÎ msql-mysql.monitorÀÇ À̸§À» ¼öÁ¤ÇÑ °ÍÀÌ´Ù). mysql.monitor´Â ÁÖ±âÀûÀ¸·Î È£ÃâµÉ ¶§¸¶´Ù MySQL ÇÁ·Î¼¼½º¸¦ üũÇÏ°í, mysql.monitor°¡ üũ½Ã MySQL ÇÁ·Î¼¼½ºÀÇ ¹®Á¦Á¡À» È®ÀÎÇÏ°Ô µÇ¸é bring-ha-down.alert¸¦ È£ÃâÇÏ°Ô µÈ´Ù. bring-ha-down.alert´Â MySQL ÇÁ·Î¼¼½º ¹®Á¦ ½Ã µ¿ÀÛÇÏ´Â ½ºÅ©¸³Æ® ÆÄÀϷμ ÀÌ ÆÄÀÏ¿¡¼ Fail-Over¸¦ À§ÇØ HeartBeat ¸ðµâÀ» È£ÃâÇÏ°Ô µÈ´Ù. Áï, bring-ha-down.alertÀº HeartBeat¸¦ È£ÃâÇÏ´Â ½ºÅ©¸³Æ®·Î¼ ÀÌ ½ºÅ©¸³Æ®¸¦ ÅëÇØ HeartBeat¿Í ¿¬°áµÇ¾î µ¿ÀÛÇÑ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â Mon ¸ðµâ¿¡ ¼ÓÇÑ °Ô ¾Æ´Ï¶ó »ç¿ëÀÚ°¡ Á÷Á¢ »ý¼ºÇØ¾ß ÇÑ´Ù.
MonÀÇ Æ¯¼º ¹× Á¦¾à »çÇ×
MonÀº ´ÙÀ½°ú °°Àº Ư¼º ¹× Á¦¾à »çÇ×À» °¡Áø´Ù.
- ¿©·¯ °¡Áö ¾ÖÇø®ÄÉÀÌ¼Ç ¹× Çϵå¿þ¾îÀÇ Àå¾Ö¸¦ °¨ÁöÇÏ´Â ¸ð´ÏÅ͸µ ÅøÀÌ´Ù. MonÀº ´Ù¹æ¸é¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ð´ÏÅ͸µ ¸ðµâ·Î¼ MySQL ÇÁ·Î¼¼½º»Ó ¾Æ´Ï¶ó MSQL ÇÁ·Î¼¼½º ¸ð´ÏÅ͸µ, ±×¸®°í °¢Á¾ Çϵå¿þ¾î ¸ð´ÏÅ͸µ±îÁö °¡´ÉÇÑ ¸ðµâÀÌ´Ù. ¿©±â¿¡¼ ¿ì¸®´Â MySQL¿¡ ´ëÇÑ ¸ð´ÏÅ͸µ ±â´É ºÎºÐ¸¸ »ç¿ëÇÑ´Ù.
- °£´ÜÇÑ ½ºÅ©¸³Æ® ÀÛ¼ºÀ¸·Î »ç¿ëÇϱⰡ °£ÆíÇÏ´Ù. À§¿¡¼ ¼³¸íÇÑ °Í°ú °°ÀÌ °£´ÜÇÑ ½ºÅ©¸³Æ® ÀÛ¼ºÀ¸·Î ¸ð´ÏÅ͸µ ½Ã ¹®Á¦ ÇØ°áÀ» À§ÇÑ ¿©·¯ ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ°í, ¿øÇÏ´Â ´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ½ÇÁúÀûÀÎ Fail-Over¸¦ ¹ß»ý½ÃÅ°´Â ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù. ¾Õ¼ ¼³¸íÇÑ ´ë·Î MonÀº ¸ð´ÏÅ͸µ ¸ðµâÀ̱⠶§¹®¿¡ Fail-Over¸¦ À§Çؼ´Â Mon»Ó ¾Æ´Ï¶ó Ãß°¡ÀûÀÎ ¸ðµâÀÌ ÇÊ¿äÇÏ°í, ±×·¡¼ ¿©±â¼´Â Fail-Over¸¦ À§ÇÑ ¸ðµâ, Áï HeartBeat°ú °°ÀÌ »ç¿ëÇÑ´Ù.
MySQL Replication
MySQL ReplicationÀº MySQL Server 4.0¿¡¼ºÎÅÍ »ç¿ë °¡´ÉÇÑ HA ¼Ö·ç¼ÇÀ¸·Î °¡Àå ½±°Ô ±¸¼ºÇÒ ¼ö ÀÖ°í, °¡Àå ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Â ¼Ö·ç¼ÇÀÌ´Ù. MySQL ReplicationÀº ´Ù¸¥ Ưº°ÇÑ ¼³Ä¡ °úÁ¤ÀÌ ÇÊ¿ä ¾øÀÌ MySQL ¼¹öÀÇ ¼³Ä¡¸¸À¸·Î »ç¿ëÇÒ ¼ö ÀÖ°í ±¸¼ºÇϱ⠽±±â ¶§¹®¿¡ ´©±¸³ª ½±°Ô ¼³Ä¡ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Á¦¾à»çÇ×ÀÌ Àû°í ±¸¼ºÇÏ´Â ÇÁ·Î¼¼½º°¡ °£´ÜÇϱ⠶§¹®¿¡ ¿©·¯ ±¸¼ºÀ¸·Î »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
ReplicationÀÇ ±¸¼º
MySQLÀº <Ç¥ 1>°ú °°Àº Thread¸¦ ÅëÇØ ReplicationÀ» ¿î¿µÇÑ´Ù.
MySQLÀº <Ç¥ 1>ÀÇ ¼¼ °¡Áö ÇÁ·Î¼¼½º¸¦ ºñµ¿±âÀûÀ¸·Î ½ÇÇàÇØ ReplicationÀÌ ÁøÇàµÇµµ·Ï ÇÑ´Ù. ReplicationÀº ÀÌ ¼¼ °³ÀÇ Thread¸¸À¸·Î µ¿ÀÛÇÏ¸ç ´Ù¸¥ ÀÓÀÇÀÇ ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. MySQL ReplicationÀÇ µ¿ÀÛÀº <±×¸² 4>¿Í °°ÀÌ ¼³¸íÇÒ ¼ö ÀÖ´Ù.
Slave¿¡¼ start slave ¸í·É¾î°¡ ½ÇÇàµÇ¸é Master¿Í Slave¿¡´Â °¢°¢ Binlog Dump Thread¿Í I/O Thread, SQL Thread°¡ »ý¼ºµÈ´Ù. ±×¸®°í Binary log°¡ »ý¼ºµÉ ¶§¸¶´Ù Binlog Dump Thread´Â Binary Log¸¦ Slave·Î º¸³½´Ù. À̶§ SlaveÀÇ I/O Thread´Â ¹ÞÀº Binary Log¸¦ Relay Log·Î ±â·ÏÇÏ°Ô µÇ°í, SQL Thread´Â ÀÌ·¸°Ô »õ·Ó°Ô ±â·ÏµÈ ³»¿ëÀ» ÀÐ¾î¼ Slave¿¡¼ ½ÇÇàÇÏ°Ô µÈ´Ù. HeartBeat¸¦ ÀÌ¿ëÇÑ MySQL ReplicationÀº ÀϹÝÀûÀÎ ReplicationÀÌ ¾Æ´Ñ Dual-Master ±¸¼ºÀ» »ç¿ëÇÑ´Ù.
Dual-Master Replication
µÎ ´ëÀÇ ¼¹ö°¡ µ¿½Ã¿¡ Master/SlaveÀÇ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ±¸¼ºÀ» ÀǹÌÇÑ´Ù.
ÀÌ ±¸¼ºÀº µÎ ´ëÀÇ ¼¹ö°¡ ÀνºÅϽº·Î ReplicateµÇ´Â ±¸¼ºÀ¸·Î µ¿½Ã¿¡ µÎ ´ëÀÇ ¼¹ö°¡ Master/Slave·Î¼ÀÇ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ±¸¼ºÀÌ´Ù.
¡Ü Ư¡
- µÎ ¼¹ö°¡ ¼·Î ReplicationÀ¸·Î ¿¬°áµÈ ±¸Á¶·Î¼ ¾î´À ¼¹ö¿¡¼µçÁö DMLÀ» ¹ß»ý½ÃÄѵµ ´Ù¸¥ ¼¹ö¿¡ ReplicateµÇ¾î Àü´ÞµÈ´Ù. µÎ ¼¹ö°¡ µ¿½Ã¿¡ MasterÀÌÀÚ SlaveÀ̱⠶§¹®¿¡ °¢ ¼¹ö¿¡¼ ¹ß»ýµÈ DMLÀº ´Ù¸¥ ¼¹ö·Î À̵¿ÇÏ°Ô µÇ°í, °á±¹ °°Àº DMLÀÌ µÎ ¼¹ö¿¡¼ ´Ù ¹ß»ýÇÏ°Ô µÈ´Ù.
- µÎ ´ëÀÇ ¼¹ö°¡ °°Àº ½ºÅ°¸¶¿Í µ¥ÀÌÅ͸¦ °¡Áø ±¸Á¶ÀÌ´Ù. ¾Õ¿¡¼ ¼³¸íÇÑ ´ë·Î µÎ ¼¹öÀÇ DMLÀÌ ReplicateµÇ¾î ¾ç ¼¹ö¿¡¼ ´Ù ¹ß»ýÇϱ⠶§¹®¿¡ °°Àº ½ºÅ°¸¶¿Í µ¥ÀÌÅ͸¦ °¡Áø ±¸Á¶°¡ µÈ´Ù.
¡Ü ÀåÁ¡
- HeartBeat/MonÀ» ÀÌ¿ëÇÑ HA ±¸¼ºÀ¸·Î »ç¿ëÇÒ °æ¿ì Fail-Over, Fail-Back¿¡ À¯¿¬ÇÑ ´ëó°¡ °¡´ÉÇÏ´Ù. ÀÌ·ÐÀûÀ¸·Î µÎ ¼¹ö°¡ µ¿½Ã¿¡ Master¿Í Slave·Î ¿¬°áµÈ ±¸Á¶À̱⠶§¹®¿¡ ´Ü ¹æÇâÀ¸·Î ¿¬°áµÈ Replication ±¸Á¶¿¡ ºñÇØ Fail-Over, Fail-Back¿¡ À¯¿¬ÇÏ°Ô ´ëóÇÒ ¼ö ÀÖ´Ù. ¹°·Ð, ¾ÈÀüÇÑ Fail-Over, Fail-BackÀ» À§Çؼ´Â Fail-Over, Fail-Back¿¡ ´ëÇÑ ÇÁ·Î¼¼½º´Â °£´ÜÇÏÁö ¾Ê´Ù. ÇÏÁö¸¸, ´Ü ¹æÇâ ±¸Á¶¿¡ ºñÇØ ±× ÇÁ·Î¼¼½º´Â °£´ÜÇÏ°Ô µÈ´Ù. ¶ÇÇÑ, HeartBeat¿¡ ÀÇÇØ µÎ ¼¹ö Áß ÇϳªÀÇ ¼¹ö¸¸ ½ÇÁúÀûÀ¸·Î ¼ºñ½º¿¡ »ç¿ëµÇ±â ¶§¹®¿¡ µÚ¿¡¼ ¼³¸íÇÒ Dual-Master ±¸Á¶ÀÇ Ä¡¸íÀûÀÎ ´ÜÁ¡¿¡¼ ÀÚÀ¯·Ó´Ù.
- ¾î´À ¼¹ö¿¡ DMLÀÌ ¹ß»ýÇصµ ´Ù¸¥ ¼¹ö·Î Replicate°¡ °¡´ÉÇÏ´Ù. ¾Õ¼ ¼³¸íÇÑ ´ë·Î ¾ç ¹æÇâÀ¸·Î ¿¬°áµÈ ±¸Á¶À̱⠶§¹®¿¡ µÎ ¼¹ö Áß ¾î´À ¼¹ö¿¡ DMLÀÌ ¹ß»ýÇصµ ´Ù¸¥ ¼¹ö¿¡ ReplicateµÇ¾î DMLÀÌ Àü´ÞµÈ´Ù.
¡Ü ´ÜÁ¡
- µÎ ¼¹ö¿¡¼ µ¿½Ã¿¡ °°Àº µ¥ÀÌÅÍ¿¡ DMLÀÌ ¹ß»ýÇÏ´Â °æ¿ì µ¥ÀÌÅÍÀÇ ºÒÀÏÄ¡ ¹ß»ý °¡´É¼ºÀÌ ³ô´Ù. Dual-Master ±¸Á¶ÀÇ Æ¯Â¡À¸·Î µÎ ¼¹ö°¡ °°Àº ½ºÅ°¸¶¿Í µ¥ÀÌÅ͸¦ °¡Áø´Ù°í ¼³¸íÇß´Ù. ÇÏÁö¸¸ Dual-Master ±¸Á¶´Â ±× ±¸¼º¿¡ Ä¡¸íÀûÀÎ ¹®Á¦¸¦ °¡Áö°í ÀÖ´Ù. ¹Ù·Î DML ¹ß»ý¿¡ µû¶ó µ¥ÀÌÅÍ ºÒÀÏÄ¡°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
- DML ºÐ»êÀÌ µÇ´Â °Íó·³ Âø°¢ÇÒ ¼ö ÀÖÀ¸³ª, DML ºÐ»êÀº ½ÇÁúÀûÀ¸·Î ¹ß»ýÇÏÁö ¾Ê´Â´Ù. Replication µ¿ÀÛ ÇÁ·Î¼¼½º¸¦ ÅëÇØ ¾Ë ¼ö ÀÖ´Â °Íó·³ Master¿¡¼ ½ÇÇàµÈ Query¸¦ Slave¿¡¼µµ ¶È°°ÀÌ µ¿ÀÛÇÏ°Ô ÇØ µ¥ÀÌÅ͸¦ ÀÏġȽÃÅ°´Â ¼Ö·ç¼ÇÀ̹ǷÎ, ½ÇÁúÀûÀ¸·Î µÎ ¼¹öÀÇ DMLÀÌ ºÐ»êµÇ´Â °ÍÀº ¾Æ´Ï´Ù.
Configuration
ÀÌÁ¦ ¾Õ¿¡¼ ¼³¸íÇÑ ¸ðµâµéÀ» »ç¿ëÇÑ Àüü ±¸¼º¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. ¿©±â¼´Â ReplicationÀ» ÀÌ¿ëÇØ HA ±¸¼ºÀ» ÇÏ°Ô µÇ´Âµ¥, Replication Áß ¾Õ¿¡¼ ¼³¸íÇÑ Dual-Master Replication ±¸¼ºÀ» »ç¿ëÇÑ´Ù.
Dual Master ±¸Á¶¿¡¼ÀÇ µ¥ÀÌÅÍ ºÒÀÏÄ¡ ÄÉÀ̽º
Dual Master ±¸Á¶¿¡¼ Ä÷³ÀÇ °ª¿¡ µ¿½Ã¿¡ DML Äõ¸®°¡ ½ÇÇàµÈ´Ù°í °¡Á¤ÇØ º¸ÀÚ.
¸ÕÀú °¢°¢ ¼¹ö¿¡¼ update ¹®ÀÌ ½ÇÇàµÇ±â ¶§¹®¿¡ óÀ½¿¡ server1Àº 1, server2´Â 2·Î¼ °ªÀÌ º¯°æµÈ´Ù. CommitÀÌ ÁøÇàµÈ ÈÄ Binary log¿¡ ÀÛ¼ºµÇ°í °¢°¢ ¼¹ö¿¡¼ ½ÇÇàµÈ Query´Â BinlogDump Thread¿¡ ÀÇÇØ server2, server1À¸·Î À̵¿ÇÏ°Ô µÈ´Ù.
±× ÈÄ¿¡ ReplicationÀ¸·Î ³Ñ¾î¿Â SQL ¹®ÀÌ ½ÇÇàµÇ´Â °æ¿ì °ªÀº ´Ù½Ã server1Àº 2·Î server2´Â 1·Î ¹Ù²î°Ô µÈ´Ù. °á±¹ server1ÀÇ °ªÀº 2·Î, server2ÀÇ °ªÀº 1·Î ³²°Ô µÈ´Ù. |
HeartBeat + Mon
HeartBeat¿Í MonÀº ¸ðµÎ ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµâÀÌ´Ù. HeartBeatÀº ¼¹öÀÇ Fail-Over ±â´ÉÀ» Á¦°øÇÏ°í MonÀº MySQL ÇÁ·Î¼¼½º¸¦ ¸ð´ÏÅ͸µÇÏ´Â ±â´ÉÀ» Á¦°øÇϱ⠶§¹®¿¡ µÎ °³ÀÇ ¸ðµâÀ» ÇÔ²² »ç¿ëÇؾ߸¸ ¿ÏÀüÇÑ Fail-Over ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
¡Ü Ư¡
- ´Ù¸¥ Ưº°ÇÑ ±â±â ¾øÀÌ ¸ðµâ ¼³Ä¡¸¸À¸·Î Fail-Over°¡ °¡´ÉÇÏ´Ù.
- ¾ÈÀüÇÑ ±¸¼ºÀ» À§ÇØ Ãß°¡ÀûÀÎ ½ºÅ©¸³Æ® »ý¼ºÀÌ ÇÊ¿äÇÏ´Ù.
- ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼¸¸ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
Dual Master Replication + HeartBeat + Mon
MySQLÀº Dual Master ±¸Á¶·Î µ¥ÀÌÅ͸¦ ½Ç½Ã°£À¸·Î º¹Á¦ÇÑ´Ù. MonÀº ½Ç½Ã°£À¸·Î MySQLÀÇ »óŸ¦ üũÇØ ¸ð´ÏÅ͸µÇÏ°í ¸¸¾à MySQL ¼¹ö¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ¸é ±×°ÍÀ» °¨ÁöÇÏ°í HeartBeat¸¦ È£ÃâÇØ Fail-Over°¡ ÀÌ·ïÁö°Ô ÇÑ´Ù. Fail-Over°¡ ÀϾ٠ÇÒÁö¶óµµ ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â VIP¸¦ ÅëÇØ Á¢±ÙÇϱ⠶§¹®¿¡ ¹®Á¦¾øÀÌ ¼ºñ½º¸¦ Áö¼ÓÇÒ ¼ö ÀÖ´Ù.
ÀÌ ±¸Á¶¿¡¼ µÎ ¼¹öÀÇ MySQLÀº Dual Master ±¸Á¶·Î µÇ¾î ÀÖÁö¸¸, HeartBeat ¼³Á¤À» ÅëÇØ ¾ÖÇø®ÄÉÀ̼ÇÀº VIP¸¦ ÀÌ¿ëÇØ µÎ ¼¹ö Áß ÇϳªÀÇ ¼¹ö¿¡¸¸ Á¢±ÙÇÒ ¼ö ÀÖÀ¸¹Ç·Î ±¸Á¶ÀûÀ¸·Î °¡Áö´Â Dual-MasterÀÇ ¹®Á¦Á¡À» ÇÇÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ ¼³¸íÇÑ HA ±¸¼º¿¡¼ ¹®Á¦ ¹ß»ý½Ã µ¿ÀÛÇÏ´Â ÇÁ·Î¼¼½º¸¦ Á¤¸®Çϸé <±×¸² 9>¿Í °°´Ù.
¿©±â¼ »ìÆ캻 HA ±¸¼ºÀÇ Æ¯Â¡À» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
¡Ü Ư¡
- Fail-Over¸¦ Çϱâ À§ÇÑ º°µµÀÇ Àåºñ°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù.
- ReplicationÀÌ °¡´ÉÇÑ ¾î¶² ½ºÅ丮Áö ¿£ÁøÀ» »ç¿ëÇÏµç ±¸¼ºÇÒ ¼ö ÀÖ´Ù.
- MySQL Community ¹öÀü ¼³Ä¡¸¸À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ±¸¼ºÇÒ ¼ö ÀÖ´Â µÎ ´ë Áß ÇÑ ´ë´Â VIP¸¦ »ç¿ëÇØ ¼ºñ½º¿ëÀ¸·Î »ç¿ëÇÒ ¼ö ¾ø´Ù.
- Passive »óÅÂÀÇ Standby ¼¹ö¸¦ ¹°¸®ÀûÀÎ IP·Î Á¢±ÙÇØ »ç¿ëÇÒ ¼ö´Â ÀÖÁö¸¸, ¾Õ¼ ¼³¸íÇß´ø Dual-MasterÀÇ µ¥ÀÌÅÍ ºÒÀÏÄ¡ °¡´É¼ºÀ¸·Î ÀÎÇØ ±ÇÀåÇÏÁö´Â ¾Ê´Â´Ù.
- Fail-OverµÈ ¿øÀο¡ µû¶ó Active·Î »ç¿ëÇÏ´ø ¼¹öÀÇ º¯°æ³»¿ªÀÌ Replicate µÇÁö ¾ÊÀ» ¼ö Àֱ⠶§¹®¿¡, Replication¿¡ ´ëÇÑ ºÐ¼® ÇÁ·Î¼¼½º°¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù.
- ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼¸¸ ±¸¼ºÇÒ ¼ö ÀÖ´Ù.
- HeartBeat ±¸¼ºÀÇ Á¦¾àÀ¸·Î ÀÎÇØ Fail-Over°¡ ¹ß»ýÇÏ¸é ²À Fail-Back ÁøÇàÀ» ÇØÁà¾ß ÇÑ´Ù.
- DB ·¹º§ÀÇ Fail-Over´Â Heart-Beat/Mon Á¶ÇÕÀ¸·Î °¡´ÉÇÏ°Ô µÇ¾úÁö¸¸, ¼¼¼Ç ·¹º§ÀÇ Fail-Over´Â ±¸ÇöµÇÁö ¾Ê¾Ò±â ¶§¹®¿¡, Fail-Over ¹ß»ý ½Ã ¾ÖÇø®ÄÉÀ̼ÇÀÇ DB ConnectionÀ» refreshÇÏ´Â ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù.