- °³¿ä
- ¸¶½ºÅÍ ¼³Á¤
- ½½·¹ÀÌºê ¼³Á¤
- ¸µÅ©
1 °³¿ä
- MySQLÀÇ replication ±â´ÉÀº ¾ÆÁ÷ ¹ßÀü ÁßÀÎ ±â´ÉÀ̱⠶§¹®¿¡ µÉ ¼ö ÀÖ´Â ÇÑ ÃֽйöÀüÀÇ MySQLÀ» ÀÌ¿ëÇϱ⠹ٶõ´Ù.
http://dev.mysql.com/doc/mysql/en/Replication.html
- º¹Á¦ ±â´ÉÀ» »ç¿ëÇϱâ À§Çؼ´Â ÀÏ´Ü ¼¹ö°¡ 2´ë ÀÖ¾î¾ßÇÑ´Ù. (¹°·Ð ÇÑ´ë¿¡´Ù µÎ °³ÀÇ MySQL ÀνºÅϽº¸¦ »ý¼ºÇؼ º¹Á¦ÇÒ ¼öµµ ÀÖ°ÚÀ¸³ª, ÀϹÝÀûÀÎ ¿ëµµ·Î ºÃÀ» ¶§, Àû¾îµµ 2´ë´Â ÀÖ¾î¾ßÇÑ´Ù.)
- 1:1 ¶Ç´Â 1:N slave ¹æ½ÄÀ¸·Î µ¿ÀÛÇÑ´Ù.
- ¿À¸®Áö³¯ µ¥ÀÌÅͰ¡ µé¾îÀÖ´Â ¼¹ö¸¦ master¶ó°í Çϰí, º¹Á¦µÇ´Â ¼¹ö¸¦ slave¶ó°í Á¤ÀÇÇÑ´Ù.
- Master¿Í slaveÀÇ ¹öÀü°ú default charsetÀº °°¾Æ¾ßÇÑ´Ù. (¾ö¹ÐÈ÷ ¸»ÇÏÀÚ¸é, slaveÀÇ ¹öÀüÀÌ masterÀÇ ¹öÀüº¸´Ù ³ô¾Æ¾ß ÇÑ´Ù. ÇÏÁö¸¸ ¿Ø¸¸ÇÏ¸é °°Àº °É ¾²´Â °Ô ÁÁÀ» µí.)
- Master¿¡¼ binary log¸¦ ³²±â¸é, slave´Â ƯÁ¤ thread¸¦ ÀÌ¿ëÇØ¼ master¿¡ Á¢¼Ó ÈÄ binary log¸¦ ¹Þ¾Æ¼ ±×´ë·Î Àڽſ¡°Ô ¹Ý¿µÇÑ´Ù.
- Slave´Â masterÀÇ binary log file°ú Àڽſ¡°Ô Àû¿ëµÈ position¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù. ±×·¯¹Ç·Î slave¿¡¼ ¿¬°áÀÌ ²÷±ä ÈÄ¿¡µµ ´Ù½Ã ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.
- MasterÀÇ Á¤º¸¿Í slaveÀÇ Á¤º¸°¡ ´Ù¸£´õ¶óµµ Àû¿ë °¡´ÉÇÏ´Ù. ´Ù¸¸ slave¿¡¼ binary log¸¦ ¹Þ¾Æ¼ Àû¿ëÇÏ´ø Áß SQL error°¡ ¹ß»ýÇÏ°Ô µÇ¸é ±× ¼ø°£ºÎÅÍ replicationÀº ÁßÁöµÈ´Ù.
2 ¸¶½ºÅÍ ¼³Á¤
¸ÕÀú master¿¡ ¼³Ä¡µÈ mysql µð·ºÅ丮·Î °¡¼ ¼³Á¤ ÆÄÀÏ(º¸Åë my.cnf)À» ã´Â´Ù. ÆíÁý±â·Î ÆÄÀÏÀ» ¿¬ ´ÙÀ½ [mysqld] ºÎºÐÀ» ã´Â´Ù.
...
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = table_cache=64
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=8M
>>> log-bin = /usr/local/mysql/logs/replication.log # ·Î±×ÆÄÀÏ À̸§
>>> binlog-do-db = database1 # µ¥ÀÌÅͺ£À̽º À̸§
>>> binlog-do-db = database2 # µ¥ÀÌÅͺ£À̽º À̸§
>>> server-id = 1 # ¼¹ö ¾ÆÀ̵ð
...
¼öÁ¤ÇؾßÇÏ´Â ºÎºÐÀº '>>>'·Î Ç¥½ÃÇß´Ù. °¢°¢ÀÇ Çʵ尡 ÀǹÌÇÏ´Â ¹Ù´Â ´ÙÀ½°ú °°´Ù.
- log-bin - ¹ÙÀ̳ʸ® ·Î±× ÆÄÀÏÀ» »ý¼ºÇÒ °æ·Î
- binlog-do-db - ¹ÙÀ̳ʸ® ·Î±×¸¦ ³²±æ µ¥ÀÌÅͺ£À̽º. º¹¼ö°³ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù.
- server-id - º¹Á¦¿¡ Âü°¡ÇÏ´Â ¼¹öµé °£¿¡¼ À¯ÀÏÇÑ ¹øÈ£. 1¿¡¼ 2^23-1±îÁö.
±× ´ÙÀ½ replication¿¡ »ç¿ëÇÒ °èÁ¤À» ÀÛ¼ºÇÑ´Ù. °èÁ¤À̸§°ú ÆÐ½º¿öµå´Â ÀÚÀ¯·Î ÇϵÇ, Àüü ¼¹ö¿¡ ´ëÇØ¼ file previlige°¡ ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.
GRANT file ON *.* TO replication_user@"%" IDENTIFIED BY 'replication_user_password'
´Ù ³¡³µÀ¸¸é µ¥¸óÀ» Àç½ÃÀÛÇÑ´Ù.
3 ½½·¹ÀÌºê ¼³Á¤
¸¶Âù°¡Áö·Î ¼³Á¤ ÆÄÀÏÀ» ã¾Æ¼ ÆíÁý±â·Î ¿¬ ´ÙÀ½, [mysqld] ºÎºÐÀ» ã´Â´Ù.
...
[mysqld]
>>> master-host = some.where.master.exist # ¹ÙÀ̳ʸ® ·Î±×¸¦ ¹ÞÀ» masterÀÇ ÁÖ¼Ò
>>> master-user = root # ·çÆ® ¶Ç´Â ÇØ´ç ±ÇÇÑ ¼ÒÀ¯ÀÚ
>>> master-password = password # ºñ¹Ð ¹øÈ£
>>> master-port = 3306
>>> master-connect-retry = 60
>>> replicate-do-db = database1
>>> replicate-ignore-table = database1.ignore_me
>>> replicate-do-db = database2
>>> server-id = 2
basedir=C:/mysql
datadir=C:/mysql/data
...
¼öÁ¤ÇؾßÇÏ´Â ºÎºÐÀº '>>>'·Î Ç¥½ÃÇß´Ù. °¢°¢ÀÇ Çʵ尡 ÀǹÌÇÏ´Â ¹Ù´Â ´ÙÀ½°ú °°´Ù.
- master-host - ¹ÙÀ̳ʸ® ·Î±×¸¦ °¡Áö°í ÀÖ´Â masterÀÇ ÁÖ¼Ò
- master-user - ·çÆ® ¶Ç´Â ÇØ´ç ±ÇÇÑ ¼ÒÀ¯ÀÚ °èÁ¤
- master-password - °èÁ¤ ÆÐ½º¿öµå
- master-port - Á¢¼Ó Æ÷Æ®
- master-connect-retry - Á¢¼Ó ½ÇÆÐ½Ã ÀçÁ¢¼ÓÇÒ È½¼ö
- replicate-do-db - º¹Á¦ÇÒ µ¥ÀÌÅͺ£À̽º À̸§
- replicate-ignore-table - µ¥ÀÌÅͺ£À̽º ³»ºÎ¿¡ Á¸ÀçÇÏ´Â Å×À̺íµé Áß¿¡¼ º¹Á¦ÇÏÁö ¾ÊÀ» Å×À̺í
- server-id - º¹Á¦¿¡ Âü°¡ÇÏ´Â ¼¹öµé °£¿¡¼ À¯ÀÏÇÑ ¹øÈ£. 1¿¡¼ 2^23-1±îÁö. ´ç¿¬È÷ master¿Í´Â ´Ù¸¥ °ªÀ̾î¾ßÇÑ´Ù.
´Ù ³¡³µÀ¸¸é master¿Í ¸¶Âù°¡Áö·Î µ¥¸óÀ» Àç½ÃÀÛÇÑ´Ù.
4 ¸µÅ©
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)