¿ù°£ Àα⠰Խù°

°Ô½Ã¹° 136°Ç
   
HeartBeat¸¦ ÀÌ¿ëÇÑ MySQL HA ±¸¼º
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-01-13 (¼ö) 23:00 Á¶È¸ : 14036
±ÛÁÖ¼Ò :
                          

Ãâó : http://imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=33696


MySQL 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ÇÏ´Â ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù.


À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.