| 1¡¢¸ÅÊö
´Ó±¾ÆªÎÄÕ¿ªÊ¼ÎÒÃǽ«»¨Ò»¶¨µÄƪ·ùÏò¶ÁÕß½éÉÜmysqlµÄ¸÷ÖÖ·þÎñ¼¯ÈºµÄ´î½¨·½Ê½¡£´óÖµÄÌÖÂÛ˼·ÊÇ´Ó×î¼òµÄMySQLÖ÷´Ó·½°¸¿ªÊ¼½éÉÜ£¬Í¨¹ýÕâÖÖ·½°¸µÄ²»×ãÑÓÉì³ö¸ü¸´Ôӵļ¯Èº·½°¸£¬²¢½éÉܺóÕßÊÇÈçºÎÕë¶ÔÕâЩ²»×ã½øÐиĽøµÄ¡£MySQLµÄ¼¯Èº¼¼Êõ·½°¸Ìرð¶à£¬Õ⼸ƪÎÄÕ»áÑ¡ÔñһЩµäÐ͵ļ¯Èº·½°¸Ïò¶ÁÕß½øÐнéÉÜ¡£
2¡¢MySQL×î¼òµ¥Ö÷´Ó·½°¸¼°¹¤×÷ÔÀí
ÎÒÃǽ²½âµÄ°æ±¾»¹ÊÇÒÀ¾ÝĿǰÔÚÉú²ú»·¾³ÉÏʹÓÃ×î¶àµÄversion 5.6½øÐУ¬ÆäÖÐÒ»Ð©ÌØÐÔÔÚVersion
5.7ºÍ×îеÄVersion 8.0ÖÐÓÐËù¸Ä½ø£¬µ«Õâ²»Ó°Ïì¶ÁÕßͨ¹ýÎÄÕÂÈ¥Àí½â¹¹½¨MySQL¼¯ÈºµÄ¼¼Êõ˼·£¬ÉõÖÁ¿ÉÒÔ½«ÕâÖÖ»úÖÆÑÓÐøµ½MariaDB¡£ÀýÈçÂíÉÏÒªÌáµ½µÄMySQL×Ô´øµÄÈÕÖ¾¸´ÖÆ»úÖÆ£¨Replicaion»úÖÆ£©¡£
MySQL×Ô´øµÄÈÕÖ¾¸´ÖÆ»úÖÆ³ÆÎªMySQL-Replicaion¡£´ÓMySQLºÜÔçµÄ Version
5.1°æ±¾¾ÍÓÐReplicaion¼¼Êõ£¬·¢Õ¹µ½ÏÖÓа汾¸Ã¼¼ÊõÒѾ·Ç³£³ÉÊ죬ͨ¹ýËüµÄÖ§³Ö¼¼ÊõÈËÔ±¿ÉÒÔ×ö³ö¶àÖÖMySQL¼¯Èº½á¹¹¡£µ±È»£¬ºóÎÄÎÒÃÇ»¹»á½éÉÜһЩÓɵÚÈý·½Èí¼þ/×é¼þÖ§³ÖµÄMySQL¼¯Èº·½°¸¡£
2-1¡¢MySQL-Replicaion»ù±¾¹¤×÷ÔÀí
Replicaion»úÖÆ´Ó¼¼Êõ²ãÃæ½²£¬´æÔÚÁ½ÖÖ»ù±¾½ÇÉ«£ºMasterºÍSalve¡£Master½Úµã¸ºÔðÔÚReplicaion»úÖÆÖУ¬ÏòÒ»¸ö»òÕß¶à¸öÄ¿±êÊä³öÊý¾Ý£¬¶øSalve½Úµã¸ºÔðÔÚReplicaion»úÖÆÖнÓÊÜMaster½Úµã´«À´µÄÊý¾Ý¡£ÔÚʵ¼ÊÒµÎñ»·¾³Ï£¬Master½ÚµãºÍSalve½Úµã»¹·Ö±ðÓÐÁíÍâÒ»¸öÃû×Ö£ºWrite½ÚµãºÍRead½Úµã¡ª¡ªÊǵģ¬ÀûÓÃReplicaion»úÖÆÎÒÃÇ¿ÉÒԴÒÔ¶Áд·ÖÀëΪĿ±êµÄMySQL¼¯Èº·þÎñ¡£µ«ÊÇΪÁ˱£Ö¤¶ÁÕßÔÚÔĶÁÎÄÕÂÄÚÈÝʱ²»»á²úÉúÆçÒ壬ÔÚ±¾ÎÄ£¨ºÍºóÐøÎÄÕ£©ÖÐÎÒÃǶ¼½«Ê¹ÓÃMaster½ÚµãºÍSalve½ÚµãÕâÑùµÄ³Æºô¡£Replicaion»úÖÆÒÀ¿¿MySQL·þÎñµÄ¶þ½øÖÆÈÕ־ͬ²½Êý¾Ý£º

ÈçÉÏͼËùʾ£¬SalveÔÚÆô¶¯ºó»á½¨Á¢Ò»¸öºÍMaster½ÚµãµÄÍøÂçÁ¬½Ó£¬µ±Master½ÚµãµÄ¶þ½øÖÆÈÕÖ¾·¢Éú±ä»¯ºó£¬Ò»¸ö»òÕß¶à¸öMySQL
Salve·þÎñ½Úµã¾Í»áͨ¹ýÍøÂç½Ó¼àÌýµ½ÕâЩ±ä»¯ÈÕÖ¾¡£½Ó×ÅSalve½Úµã»áÊ×ÏÈÔÚ±¾µØ½«ÕâЩ±ä»¯Ð´ÈëÖмÌÈÕÖ¾Îļþ£¨Relay
Log£©£¬ÕâÑù×öÊÇΪÁ˾¡Á¿±ÜÃâMySQL·þÎñÔÚ³öÏÖÒ쳣ʱͬ²½Êý¾Ýʧ°Ü£¬ÆäÔÀíºÍ֮ǰ½éÉܹýµÄInnoDB
LogµÄ¹¤×÷ÔÀíÏàËÆ¡£µ±ÖмÌÈÕÖ¾Îļþ·¢ÉúÍê³É¼Ç¼ºó£¬MySQL Salve·þÎñ»á½«ÕâЩ±ä»¯·´Ó³µ½¶ÔÓ¦µÄÊý¾Ý±íÖУ¬Íê³ÉÒ»´ÎÊý¾Ýͬ²½¹ý³Ì¡£×îºóSalve»á¸üÐÂÖØ×öÈÕÖ¾ÎļþÖеĸüе㣨Position£©£¬²¢×¼±¸ÏÂÒ»´ÎReplicaion²Ù×÷¡£
ÔÚÕâ¸ö¹ý³ÌÖжà¸öÒªËØ¶¼¿ÉÒÔ½øÐÐÅäÖã¬ÀýÈç¿ÉÒÔͨ¹ýsync_binlog²ÎÊýÅäÖÃMaster½ÚµãÉÏÊý¾Ý²Ù×÷´ÎÊýºÍÈÕ־дÈë´ÎÊýÅä±È¹ØÏµ¡¢¿ÉÒÔͨ¹ýbinlog_format²ÎÊýÅäÖÃÈÕÖ¾Êý¾ÝµÄÐÅÏ¢½á¹¹¡¢¿ÉÒÔͨ¹ýsync_relay_log²ÎÊýÅäÖÃSalve½ÚµãÉÏϵͳ½ÓÊÕÈÕÖ¾Êý¾ÝÓëдÈëÖмÌÈÕÖ¾Îļþ´ÎÊýµÄÅä±È¹ØÏµ¡£ÕâЩ²ÎÊýºÍÆäËüһЩÔÚʾÀýÖÐʹÓõIJÎÊý»áÔÚ±¾ÎĺóÐøÐ¡½Ú½øÐнéÉÜ¡£
2-2¡¢MySQLÒ»Ö÷¶à´Ó´î½¨·½Ê½
½éÉÜÍêMySQL Replicaion»úÖÆµÄ»ù±¾¹¤×÷·½Ê½ºó£¬ÎÒÃǽô½ÓמÍÀ´¿ìËٴÓÉÒ»¸öMaster½ÚµãºÍÒ»¸öSalve½Úµã¹¹³ÉµÄMySQL¼¯Èº¡£¶ÁÕß¿ÉÒÔ´ÓÕâ¸öÒ»Ö÷Ò»´ÓµÄMySQL¼¯Èº·½°¸À©Õ¹³öÈκÎÒ»Ö÷¶à´ÓµÄ¼¯Èº·½°¸£º

Õâ¸öʵÀýÎÒÃÇʹÓÃVersion 5.6°æ±¾½øÐÐÉèÖ㬵±È»version 5.7°æ±¾µÄ°²×°Ò²ÊÇÀàËÆµÄ¡£ÁíÍ⣬ÔÚlinux
²Ù×÷ϵͳÉÏ£¨Centos 5.6/5.7/6.X£©°²×°MySQL·þÎñºÍ½øÐлù±¾ÉèÖõĹý³Ì£¬ÓÉÓÚÆª·ùºÍÎÄÕ¶¨Î»ÔÒòÕâÀï¾Í²»ÔÙ½øÐÐ׸Êö¡£ÎÒÃǽ«·Ö±ðÔÚÈçÏÂipµÄLinux²Ù×÷°²×°¼¯ÈºµÄMaster½ÚµãºÍSalve½Úµã£º
MySQL Master·þÎñ£º192.168.61.140
MySQL Salve·þÎñ£º192.168.61.141
2-2-1¡¢ÉèÖÃMaster·þÎñÆ÷
Ê×ÏÈÐèÒª¸ü¸ÄMySQL Master·þÎñmy.cnfÖ÷ÅäÖÃÎļþµÄÐÅÏ¢£¬Ö÷ҪĿµÄÊÇ¿ªÆôMaster½ÚµãÉϵĶþ½øÖÆÈÕÖ¾¹¦ÄÜ£¨×¢ÒâÕâÀï˵µÄÈÕÖ¾²¢²»ÊÇInnoDBÒýÇæÈÕÖ¾£©¡£
# my.cnfÎļþÖÐûÓÐÉæ¼°Replicaion»úÖÆµÄÅäÖÃÐÅÏ¢£¬ ¾Í²»ÔÚÕâÀïÁгöÁË ...... # ¿ªÆôÈÕÖ¾ log_bin
# ÒÔÏÂÕâЩ²ÎÊý»áÔÚºóÎĽøÐÐ˵Ã÷
sync_binlog=1
binlog_format=mixed
binlog-do-db=qiang
binlog_checksum=CRC32
binlog_cache_size=2M
max_binlog_cache_size=1G
max_binlog_size=100M
# ±ØÐëΪÕâ¸öMySQL·þÎñ½ÚµãÉèÖÃÒ»¸ö¼¯ÈºÖÐΨһµÄ server idÐÅÏ¢
server_id=140
...... |
ÔÚMaster½ÚµãµÄÉèÖÃÖУ¬Óкܶà²ÎÊý¿ÉÒÔ¶ÔÈÕÖ¾µÄÉú³É¡¢´æ´¢¡¢´«Êä¹ý³Ì½øÐпØÖÆ¡£¾ßÌå¿ÉÒԲμûMySQL¹ÙÍøÖеĽéÉÜ£ºhttp://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html¡£ÕâÀïÎÒÃÇÖ÷Òª¶ÔÒÔÉÏÅäÖÃʾÀýÖгöÏֵIJÎÊý½øÐиÅÒª½éÉÜ£º
sync_binlog£º¸Ã²ÎÊý¿ÉÒÔÉèÖÃΪ1µ½NµÄÈκÎÖµ¡£¸Ã²ÎÊý±íʾMySQL·þÎñÔڳɹ¦Íê³É¶àÉٴβ»¿É·Ö¸îµÄÊý¾Ý²Ù×÷ºó£¨ÀýÈçInnoDBÒýÇæÏµÄÊÂÎñ²Ù×÷£©£¬²Å½øÐÐÒ»´Î¶þ½øÖÆÈÕÖ¾ÎļþµÄдÈë²Ù×÷¡£ÉèÖóÉ1ʱ£¬Ð´ÈëÈÕÖ¾ÎļþµÄ´ÎÊýÊÇ×îÆµ·±µÄ£¬Ò²»áÔì³ÉÒ»¶¨µÄI/OÐÔÄÜÏûºÄ£¬µ«Í¬Ê±ÕâÑùµÄÉèÖÃÖµÒ²ÊÇ×ȫµÄ¡£
binlog_format£º¸Ã²ÎÊý¿ÉÒÔÓÐÈýÖÖÉèÖÃÖµ£ºrow¡¢statementºÍmixed¡£row´ú±í¶þ½øÖÆÈÕÖ¾ÖмǼÊý¾Ý±íÿһÐо¹ýд²Ù×÷ºó±»Ð޸ĵÄ×îÖÕÖµ¡£¸÷¸ö²ÎÓëͬ²½µÄSalve½Úµã£¬Ò²»á²ÎÕÕÕâ¸ö×îÖÕÖµ£¬½«×Ô¼ºÊý¾Ý±íÉϵÄÊý¾Ý½øÐÐÐ޸ģ»statementÐÎʽÊÇÔÚÈÕÖ¾ÖмǼÊý¾Ý²Ù×÷¹ý³Ì£¬¶ø·Ç×îÖÕµÄÖ´Ðнá¹û¡£¸÷¸ö²ÎÓëͬ²½µÄSalve½Úµã»á½âÎöÕâ¸ö¹ý³Ì£¬²¢ÐγÉ×îÖռǼ£»mixedÉèÖÃÖµ£¬ÊÇÒÔÉÏÁ½ÖּǼ·½Ê½µÄ»ìºÏÌ壬MySQL·þÎñ»á×Ô¶¯Ñ¡Ôñµ±Ç°ÔËÐÐ״̬ÏÂ×îÊʺϵÄÈÕÖ¾¼Ç¼·½Ê½¡£
binlog-do-db£º¸Ã²ÎÊýÓÃÓÚÉèÖÃMySQL Master½ÚµãÉÏÐèÒª½øÐÐReplicaion²Ù×÷µÄÊý¾Ý¿âÃû³Æ¡£
binlog_checksum£º¸Ã²ÎÊýÓÃÓÚÉèÖÃMaster½ÚµãºÍSalve½ÚµãÔÚ½øÐÐÈÕÖ¾ÎļþÊý¾Ýͬ²½Ê±£¬ËùʹÓõÄÈÕÖ¾Êý¾ÝУÑ鷽ʽ¡£Õâ¸ö²ÎÊýÊÇÔÚversion
5.6°æ±¾¿ªÊ¼²ÅÖ§³ÖµÄÐÂÅäÖù¦ÄÜ£¬Ä¬ÈÏÖµ¾ÍÊÇCRC32¡£Èç¹ûMySQL¼¯ÈºÖÐÓÐMySQL ½ÚµãʹÓõÄÊÇversion
5.5»ò¸üÔçµÄ°æ±¾£¬ÇëÉèÖøòÎÊýµÄֵΪnone¡£
binlog_cache_size£º¸Ã²ÎÊýÉèÖÃMaster½ÚµãÉÏΪÿ¸ö¿Í»§¶ËÁ¬½Ó»á»°£¨session£©ËùʹÓõģ¬ÔÚÊÂÎñ¹ý³ÌÖÐÁÙʱ´æ´¢ÈÕÖ¾Êý¾ÝµÄ»º´æ´óС¡£Èç¹ûûÓÐʹÓÃÖ§³ÖÊÂÎñµÄÒýÇæ£¬¿ÉÒÔºöÂÔÕâ¸öÖµµÄÉèÖᣵ«ÊÇÒ»°ãÀ´ËµÎÒÃǶ¼»áʹÓÃInnoDBÒýÇæ£¬ËùÒÔ¸ÃÖµ×îºÃÉèÖóÉ1M¡ª¡ª2M£¬Èç¹û¾³£»áÖ´Ðнϸ´ÔÓµÄÊÂÎñ£¬Ôò¿ÉÒÔÊʵ±¼Ó´óΪ3M¡ª¡ª4M¡£
max_binlog_cache_size£º¸ÃÖµ±íʾÕû¸öMySQL·þÎñÖУ¬Äܹ»Ê¹ÓõÄbinlog_cacheÇøÓòµÄ×î´óÖµ¡£¸ÃÖµ²»ÒÔsessionΪµ¥Î»£¬¶øÊǶÔÈ«¾Ö½øÐÐÉèÖá£
max_binlog_size £º ¸Ã²ÎÊýÉèÖõ¥¸öbinlogÎļþµÄ×î´ó´óС¡£MySQL·þÎñΪÁ˱ÜÃâbinlogÈÕÖ¾³ö´í»òÕßSalveͬ²½Ê§°Ü£¬»áÔÚÁ½ÖÖÇé¿öÏ´´½¨ÐµÄbinlogÎļþ£ºÒ»ÖÖÇé¿öÊÇMySQL·þÎñÖØÆôºó£¬ÁíÒ»ÖÖÇé¿öÊÇbinlogÎļþµÄ´óС´ïµ½Ò»¸öÉ趨µÄ·§Öµ£¨Ä¬ÈÏΪ1GB£©¡£max_binlog_size²ÎÊý¾ÍÊÇÉèÖÃÕâ¸ö·§ÖµµÄ¡£
Íê³Émy.cnfÎļþµÄ¸ü¸Äºó£¬ÖØÆôLinux MySql·þÎñеÄÅäÖþÍÉúЧÁË¡£½ÓÏÂÀ´ÐèÒªÔÚMaster½ÚµãÖÐÉèÖÿɹ©Á¬½ÓµÄSalve½ÚµãÐÅÏ¢£¬°üÀ¨½øÐÐReplicaionͬ²½µÄÓû§ºÍÃÜÂëÐÅÏ¢£º
# Ö»ÓÃMySQL¿Í»§¶Ë£¬¶¼¿ÉÒÔ½øÐÐÉèÖ㺠# ÕâÀïÎÒÃÇÖ±½ÓʹÓÃrootÕ˺ŽøÐÐͬ²½£¬ µ«ÊÇÉú²ú»·¾³Ï²»½¨ÒéÕâÑùʹÓà > grant replication slave on *.* to root@192.168.61.141 identified by '123456'
# ͨ¹ýÒÔÏÂÃüÁ¿ÉÒԲ鿴ÉèÖÃÍê³ÉºóµÄMaster½Úµã¹¤×÷״̬
> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB
| Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| kp2-bin.000002 | 404 | qiang | | |
+----------------+----------+--------------+------------------+-------------------+ |
ÒÔÉÏmaster½Úµã״̬µÄÃèÊöÖУ¬FileÊôÐÔ˵Ã÷Á˵±Ç°¶þ½øÖÆÈÕÖ¾ÎļþµÄÃû³Æ£¬ËüµÄĬÈÏλÖÃÔÚLinux²Ù×÷ϵͳϵÄvar/lib/mysqlĿ¼Ï¡£PositionÊôÐÔ˵Ã÷Á˵±Ç°ÒÑÍê³ÉÈÕ־ͬ²½µÄÊý¾ÝµãÔÚÈÕÖ¾ÎļþÖеÄλÖá£Binlog_Do_DBÊôÐÔÊÇÎÒÃÇ֮ǰÉèÖõģ¬ÐèÒª½øÐÐReplicaion²Ù×÷µÄÊý¾Ý¿âÃû³Æ£¬Binlog_Ignore_DBÊôÐÔ¾ÍÊÇÃ÷È·ºöÂԵ쬲»ÐèÒª½øÐÐReplicaion²Ù×÷µÄÊý¾Ý¿âÃû³Æ¡£
2-2-2¡¢ÉèÖÃSalve·þÎñÆ÷
Íê³ÉMySQL Master·þÎñµÄÅäÖúó£¬ÎÒÃÇÀ´¿´¿´Salve½Úµã¸ÃÈçºÎ½øÐÐÉèÖá£ÕâÀïÎÒÃÇÖ»ÑÝʾһ¸öSalve½ÚµãµÄÉèÖã¬Èç¹ûÄú»¹ÒªÔÚ¼¯ÈºÖÐÔö¼ÓеÄSalve½Úµã£¬ÄÇôÅäÖùý³Ì¶¼ÊÇÀàËÆµÄ¡£ÎÞ·ÇÊÇҪעÒâÔÚMaster½ÚµãÉÏÔö¼ÓеÄSalve½ÚµãÃèÊöÐÅÏ¢¡£
Ê×ÏÈÎÒÃÇ»¹ÊÇÐèÒªÉèÖÃSalve½ÚµãµÄmy.cnfÎļþ£º
# my.cnfÎļþÖÐûÓÐÉæ¼°Replicaion»úÖÆµÄÅäÖÃÐÅÏ¢£¬¾Í²»ÔÚÕâÀïÁгöÁË ...... # ¿ªÆôÈÕÖ¾ log-bin
sync_relay_log=1
# ±ØÐëΪÕâ¸öMySQL·þÎñ½ÚµãÉèÖÃÒ»¸ö¼¯ÈºÖÐΨһµÄserver idÐÅÏ¢
server_id=140
...... |
ÔÚMySQL¹Ù·½ÎĵµÖÐÒ²ÏêϸÃèÊöÁËÖмÌÈÕÖ¾µÄ¸÷ÖÖ¿ØÖƲÎÊý£¬ÕâÀïÎÒÃÇֻʹÓÃÁËsync_relay_log²ÎÊý¡£Õâ¸ö²ÎÊý˵Ã÷ÁËSalve½ÚµãÔڳɹ¦½ÓÊܵ½¶àÉÙ´ÎMasterͬ²½ÈÕÖ¾ÐÅÏ¢ºó£¬²ÅË¢ÈëÖмÌÈÕÖ¾Îļþ¡£Õâ¸ö²ÎÊý¿ÉÒÔÉèÖÃΪ1µ½NµÄÈÎÒâÒ»¸öÖµ£¬µ±È»ÉèÖÃΪ1µÄÇé¿öÏÂËäÈ»»áÏûºÄһЩÐÔÄÜ£¬µ«¶ÔÓÚÈÕÖ¾Êý¾ÝÀ´ËµÈ´ÊÇ×ȫµÄ¡£
SalveµÄÉèÖÃÏà¶Ô¼òµ¥£¬½ÓÏÂÀ´ÎÒÃÇÐèÒªÔÚSalve¶Ë¿ªÆôÏàÓ¦µÄͬ²½¹¦ÄÜ¡£Ö÷ÒªÊÇÖ¸¶¨ÓÃÓÚͬ²½µÄMaster·þÎñµØÖ·¡¢Óû§ºÍÃÜÂëÐÅÏ¢£º
# Çë×¢ÒâÕâÀïÉèÖõÄÓû§ÃûºÍÃÜÂëÐÅÏ¢ÒªºÍMasterÉϵÄÉèÖÃÒ»Ö # ÁíÍâmaster log fileËùÖ¸¶¨µÄÎļþ ÃûÒ²±ØÐëºÍMasterÉÏʹÓõÄÈÕÖ¾ÎļþÃûÒ»Ö > change master to master_host='192.168.61.140', master_user='root',master_password='123456', master_log_file='kp2-bin.000002',master_log_pos=120;
# Æô¶¯Savleͬ²½
> start slave;
# È»ºóÎÒÃǾͿÉÒÔʹÓÃÒÔÏÂÃüÁî²é¿´salve½ÚµãµÄͬ²½×´Ì¬
> show slave status;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.61.140
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: kp2-bin.000002
Read_Master_Log_Pos: 404
Relay_Log_File: vm2-relay-bin.000002
Relay_Log_Pos: 565
Relay_Master_Log_File: kp2-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
......
Master_Server_Id: 140
Master_UUID: 19632f72-9a90-11e6-82bd-000c290973df
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay
log; waiting for the slave I/O thread to update
it
Master_Retry_Count: 86400
......
Auto_Position: 0 |
Íê³ÉÒÔÉϹý³Ì£¬Ò»Ö÷Ò»´ÓµÄMySQL¼¯Èº¾ÍÅäÖÃÍê³ÉÁË¡£
2-3¡¢Ò»Ö÷¶à´Ó·½°¸µÄʹÓý¨Òé
Ò»Ö÷¶à´ÓµÄMySQL¼¯Èº·½°¸£¬ÒѾ¿ÉÒÔ½â¾ö´ó²¿·Öϵͳ½á¹¹»¯Êý¾Ý´æ´¢µÄÐÔÄÜÒªÇó¡£ÌرðÊÇÄÇÖÖÊý¾Ý²éѯƵÂÊ/´ÎÊýÔ¶Ô¶´óÓÚÊý¾ÝдÈëÆµÂÊ/´ÎÊýµÄÒµÎñ³¡¾°£¬ÀýÈçµçÉÌϵͳµÄÉÌÆ·Ä£¿é¡¢ÎïÁ÷ϵͳµÄ³µÁ¾/˾»úÐÅϢģ¿é¡¢µçÐÅCRMϵͳµÄ¿Í»§ÐÅϢģ¿é¡¢¼à¿ØÏµÍ³Öб£´æµÄ»ù±¾ÈÕÖ¾Êý¾Ý¡£µ«ÊÇÕâÖּܹ¹·½°¸²¢²»Äܽâ¾öËùÓеÄÎÊÌ⣬¶øÇÒ·½°¸±¾ÉíÓÐһЩÃ÷ÏÔµÄÎÊÌ⣨ºóÎÄÏêϸÌÖÂÛ£©£¬ËùÒÔÔÚÕâÀï±¾ÎÄÐèҪΪ¸÷λ½«ÒªÊ¹ÓÃÀàËÆMySQL¼¯Èº·½°¸µÄ¶ÁÕßÌṩһЩʹÓý¨Òé¡£
Masterµ¥½ÚµãÐÔÄÜÓ¦¸Ã×㹻ǿ´ó£¬ÇÒÖ»¸ºÔðÊý¾ÝдÈë²Ù×÷£ºÒ»Ö÷¶à´ÓµÄMySQL¼¯Èº·½Ê½Ö÷ÒªÕë¶Ô¶ÁÃܼ¯ÐÍÒµÎñϵͳ£¬ÆäÖ÷ҪĿ±êÊǽ«MySQL·þÎñµÄ¶ÁдѹÁ¦½øÐзÖÀë¡£ËùÒÔMaster½ÚµãÐèÒª¼¯Öо«Á¦´¦ÀíÒµÎñµÄд²Ù×÷ÇëÇó£¬ÕâÒ²¾ÍÒâζ×ÅÒµÎñϵͳËùÓеÄд²Ù×÷ѹÁ¦¶¼¼¯Öе½ÁËÕâÒ»¸ö½ÚµãÉÏ£¨writeÒµÎñ²Ù×÷£©¡£ÎÒÃÇÔÝÇÒ²»È¥·ÖÎöÕâ¸öÏÖÏó¿ÉÄܵ¼ÖµÄÎÊÌ⣨ºóÐøÄÚÈÝ»áÌáµ½ÕâÖÖ×ö·¨µÄÎÊÌ⣩£¬µ«ÕâÖÁÉÙÒªÇóMaster½ÚµãµÄÐÔÄÜ×㹻ǿ´ó¡£ÕâÀïµÄÐÔÄܲ»µ¥µ¥Ö¸Í¨¹ýMySQL
InnoDBÒýÇæÌṩµÄ¸÷ÖÖÅäÖã¨Ò»°ãÎÒÃÇʹÓÃInnoDBÒýÇæ£©£¬²¢½áºÏÒµÎñÌØµãËù¾¡¿ÉÄÜեȡµÄÐÔÄÜ£¬×î¸ù±¾µÄ»¹ÐèÒªÌáÉýMaster½ÚµãµÄÓ²¼þÐÔÄÜ¡£
ʹÓùÌ̬ӲÅÌ×÷ΪMySQL·þÎñµÄ¿é´æ´¢»ù´¡£¬²¢Ê¹ÓÃRAID 10´ÅÅÌÕóÁÐ×÷ΪӲ¼þ²ã¹¹½¨·½°¸¡ª¡ªÕâÊÇÉú²ú»·¾³Ïµ¥¸öMySQL·þÎñ½ÚµãµÄ»ù±¾×é³ÉÂß¼£¬µ±È»¶ÁÕß¿ÉÒÔÊÓ×Ô¼ºÉú²ú»·¾³ÏµĵÄʵ¼ÊÈÝÁ¿ºÍÐÔÄÜÒªÇó½øÐбØÒªµÄµ÷Õû£º

ӦʹÓÃÒ»¸ö¶ÀÁ¢µÄSalve½Úµã×÷Ϊ±¸ÓõÄMaster½Úµã£¬ËäÈ»ÕâÖÖ·½Ê½²»¿É×÷ΪÒìµØ¶à»î·½°¸µÄ»ù´¡µ«¿É×÷Ϊ±¾µØ¸ß¿ÉÓ÷½°¸µÄʵÏÖ»ù´¡¡£µ±È»£¬ÎªÁË·ÀÖ¹ÓÉÓÚÈÕÖ¾´íÎóµ¼Öµı¸·Ýʧ°Ü£¬Õâ¸ö±¸·ÝµÄSalve½ÚµãÒ²¿ÉÒÔ²ÉÓÃMySQL
Replicaion»úÖÆÒÔÍâµÄµÚÈý·½Í¬²½»úÖÆ£¬ÀýÈ磺Rsync¡¢DRBD¡£RsyncÊDZÊÕßÔÚ¹¤×÷ʵ¼ùÖо³£Ê¹Óõ쬽øÐÐMySQLÊý¾ÝÔöÁ¿Í¬²½µÄ·½Ê½£¬¶øDRBDµÄ²îÒì¿éͬ²½·½Ê½ÊÇ»¥ÁªÍøÉÏÄܹ»ÕÒµ½×î¶à×ÊÁϵķ½Ê½£º

ÔÚºóÐøµÄÎÄÕÂÖУ¬ÎÒÃÇ»¹»áרÃÅÌÖÂÛÕë¶ÔMaster½ÚµãµÄ¼¯Èºµ÷Õû·½°¸£¬²¢ÇÒ½¨Òé¶ÁÕßÈçºÎʹÓÃÊʺÏϵͳ×ÔÉíÒµÎñµÄ¸ß¿ÉÓ÷½°¸¡£ÀýÈçʹÓÃKeepalived
/ Heartbeat½øÐÐÖ÷±¸Master½ÚµãµÄÇл»£º

¸´ÔÓµÄͳ¼Æ²éѯÐèҪרÃŵÄSalve½Úµã½øÐÐÖ§³Ö¡£²ÎÓëÉú²ú»·¾³ÊµÊ±ÒµÎñ´¦ÀíµÄÈκÎMySQL·þÎñ½Úµã£¬ÔÚÕâЩ·þÎñ½ÚµãÉÏËùÔËÐеÄSQL²éѯӦ¸Ã¾¡¿ÉÄܼòµ¥£¬²¢ÇÒÐèҪʹÓÃË÷Òý¶Ô¼ìË÷½øÐÐÖ§³Ö¡£ÌرðÊÇÊý¾ÝÁ¿·Ç³£´óµÄÊý¾Ý±í£¬±ØÐë±£Ö¤ËùÓеļìË÷²Ù×÷¶¼ÓÐË÷ÒýÌṩ֧³Ö£¬·ñÔòTable
Full ScanµÄ¼ìË÷¹ýÂË·½Ê½²»µ«»áÍÏÂý¼ìË÷²Ù×÷±¾Éí£¬»¹¿ÉÄÜ»áÃ÷ÏÔÍÏÂýÆäËüµÄÊÂÎñ²Ù×÷¡£Í¨¹ýMySQLÌṩµÄÖ´Ðмƻ®¹¦ÄÜ£¬¼¼ÊõÈËÔ±Äܹ»ºÜ·½±ãʵÏÖÒÔÉϵÄÒªÇó¡£Èç¹ûÄúµÄÒµÎñϵͳ´æÔÚ¸´ÔÓµÄÒµÎñ²éѯҪÇó£¬ÀýÈçÖÜÆÚÐԵIJÆÎñÁ÷Ë®±¨±í£¬ÖÜÆÚÐÔµÄÒµÎñ·Ö×éͳ¼Æ±¨±íµÈ£¬ÄÇôÄú×îºÃרÃÅ×¼±¸Ò»¸ö£¨»ò¶à¸ö£©ÍÑÀëʵʱҵÎñµÄSalve½Úµã£¬Íê³ÉÕâ¸ö¹¤×÷¡£
3¡¢·½°¸±©Â¶µÄÎÊÌâ
µ«ÊÇÕâÖÖMySQL¼¯Èº·½°¸Ò²´æÔںܶàÎÊÌâÐèÒª½øÒ»²½¸Ä½ø¡£ÔÚºóÐøµÄÎÄÕÂÖУ¬ÎÒÃÇ»áÒÀ´ÎÌÖÂÛMySQL¼¯ÈºÖл¹´æÔÚµÄÒÔÏÂÎÊÌ⣺
ÃæÏòÉϲãϵͳµÄÎÊÌ⣺ÔÚMySQLÒ»Ö÷¶à´Ó¼¯ÈºÖУ¬´æÔÚ¹ý¸ö·þÎñ½Úµã¡£ÄÇôµ±ÉϲãÒµÎñϵͳ½øÐÐÊý¾Ý¿â²Ù×÷ʱ£¨ÎÞÂÛÊÇд²Ù×÷»¹ÊǶÁ²Ù×÷£©£¬ÊÇ·ñÐèÒªÃ÷È·ÖªµÀÕâЩ¾ßÌåµÄ·þÎñ½Úµã£¬²¢½øÐÐÁ¬½ÓÄØ£¿ÒªÖªµÀ£¬µ±ÉϲãÒµÎñϵͳÐèÒª¿ØÖƵÄÒªËØ±äµÃÔÀ´Ô½¶àʱ£¬ÐèÒªÒµÎñϵͳ¿ª·¢ÈËԱͶÈëµÄά»¤¾«Á¦¾Í»á³Ê¼¸ºÎ¼¶Ôö³¤¡£
¸ß¿ÉÓòãÃæµÄÎÊÌ⣺ÔÚMySQLÒ»Ö÷¶à´Ó¼¯ÈºÖУ¬ËäÈ»´æÔÚ¶à¸öSalve½Úµã£¨readÒµÎñÐÔÖʽڵ㣩£¬µ«ÊÇÒ»°ãÖ»´æÔÚÒ»¸öMaster½Úµã£¨writeÒµÎñÐÔÖʽڵ㣩¡£Ä³Ò»¸ö£¨»ò¶à¸ö£©Salve½Úµã±ÀÀ£ÁË£¬²»»á¶ÔÕû¸ö¼¯ÈºÔì³ÉÌ«´óÓ°Ï죨µ«¿ÉÄÜÓ°ÏìÉϲãÒµÎñϵͳµÄijһ¸ö×Óϵͳ£©¡£ÄÇôMySQL¼¯ÈºµÄ¶Ì°åÔÚÓÚÖ»ÓÐÒ»¸öMaster½Úµã¡ª¡ªÒ»µ©Ëü±ÀÀ£ÁË£¬Õû¸ö¼¯Èº¾Í»ù±¾ÉÏÎÞ·¨Õý³£¹¤×÷¡£ËùÒÔÎÒÃDZØÐëÏëһЩ°ì·¨¸Ä±äÕâ¸öDZÔÚ·çÏÕ¡£
|