¹ÜÀíÉÌÆÌ ·¢²¼²úÆ· ·¢²¼Çó¹º Ñ°ÕÒÉÌ»ú
TOP
Mysql Êý¾Ý¿âË«»úÈȱ¸µÄÅäÖÃ
[ ±à¼­:qiraosky | Ê±¼ä:2012-04-27 10:11:36 | ä¯ÀÀ:298´Î | À´Ô´:µÂÖݵçÄÔ·þÎñÍø | ×÷Õß:µÂÖݵçÄÔ·þÎñÍø ]

1¡£mysqlÊý¾Ý¿âûÓÐÔöÁ¿±¸·ÝµÄ»úÖÆ£¬µ±Êý¾ÝÁ¿Ì«´óµÄʱºò±¸·ÝÊÇÒ»¸öºÜ´óµÄÎÊÌâ¡£»¹ºÃmysqlÊý¾Ý¿âÌṩÁËÒ»ÖÖÖ÷´Ó±¸·ÝµÄ»úÖÆ£¬Æäʵ¾ÍÊǰÑÖ÷Êý¾Ý¿âµÄËùÓеÄÊý¾Ýͬʱдµ½±¸·ÝÊý¾Ý¿âÖС£ÊµÏÖmysqlÊý¾Ý¿âµÄÈȱ¸·Ý¡£

2¡£ÒªÏëʵÏÖË«»úµÄÈȱ¸Ê×ÏÈÒªÁ˽âÖ÷´ÓÊý¾Ý¿â·þÎñÆ÷µÄ°æ±¾µÄÐèÇó¡£ÒªÊµÏÖÈȱ¸mysqlµÄ°æ±¾¶¼Òª¸ßÓÚ3.2£¬»¹ÓÐÒ»¸ö»ù±¾µÄÔ­Ôò¾ÍÊÇ×÷Ϊ´ÓÊý¾Ý¿âµÄÊý¾Ý¿â°æ±¾¿ÉÒÔ¸ßÓÚÖ÷·þÎñÆ÷Êý¾Ý¿âµÄ°æ±¾£¬µ«ÊDz»¿ÉÒÔµÍÓÚÖ÷·þÎñÆ÷µÄÊý¾Ý¿â°æ±¾¡£

3¡£ÉèÖÃÖ÷Êý¾Ý¿â·þÎñÆ÷£º

a.Ê×ÏȲ鿴Ö÷·þÎñÆ÷µÄ°æ±¾ÊÇ·ñÊÇÖ§³ÖÈȱ¸µÄ°æ±¾¡£È»ºó²é¿´my.cnf(Ààunix)»òÕßmy.ini(windows)ÖÐmysqldÅäÖÿéµÄÅäÖÃÓÐûÓÐlog-bin(¼Ç¼Êý¾Ý¿â¸ü¸ÄÈÕÖ¾)£¬ÒòΪmysqlµÄ¸´ÖÆ»úÖÆÊÇ»ùÓÚÈÕÖ¾µÄ¸´ÖÆ»úÖÆ£¬ËùÒÔÖ÷·þÎñÆ÷Ò»¶¨ÒªÖ§³Ö¸ü¸ÄÈÕÖ¾²ÅÐС£È»ºóÉèÖÃҪдÈëÈÕÖ¾µÄÊý¾Ý¿â»òÕß²»ÒªÐ´ÈëÈÕÖ¾µÄÊý¾Ý¿â¡£ÕâÑùÖ»ÓÐÄú¸ÐÐËȤµÄÊý¾Ý¿âµÄ¸ü¸Ä²ÅдÈëµ½Êý¾Ý¿âµÄÈÕÖ¾ÖС£

server-id=1 //Êý¾Ý¿âµÄidÕâ¸öÓ¦¸ÃĬÈÏÊÇ1¾Í²»ÓøĶ¯

log-bin=log_name //ÈÕÖ¾ÎļþµÄÃû³Æ£¬ÕâÀï¿ÉÒÔÖÆ¶¨ÈÕÖ¾µ½±ðµÄĿ¼ Èç¹ûûÓÐÉèÖÃÔòĬÈÏÖ÷»úÃûµÄÒ»¸öÈÕÖ¾Ãû³Æ

binlog-do-db=db_name //¼Ç¼ÈÕÖ¾µÄÊý¾Ý¿â

binlog-ignore-db=db_name //²»¼Ç¼ÈÕÖ¾µÄÊý¾Ý¿â

ÒÔÉϵÄÈç¹ûÓжà¸öÊý¾Ý¿âÓÃ","·Ö¸î¿ª

È»ºóÉèÖÃͬ²½Êý¾Ý¿âµÄÓû§ÕʺÅ

mysql> GRANT REPLICATION SLAVE ON *.*

-> TO "repl"@"%.mydomain.com" IDENTIFIED BY "slavepass";

4.0.2ÒÔǰµÄ°æ±¾, ÒòΪ²»Ö§³ÖREPLICATION ҪʹÓÃÏÂÃæµÄÓï¾äÀ´ÊµÏÖÕâ¸ö¹¦ÄÜ

mysql> GRANT FILE ON *.*

-> TO "repl"@"%.mydomain.com" IDENTIFIED BY "slavepass";

ÉèÖúÃÖ÷·þÎñÆ÷µÄÅäÖÃÎļþºóÖØÐÂÆô¶¯Êý¾Ý¿â

b.Ëø¶¨ÏÖÓеÄÊý¾Ý¿â²¢±¸·ÝÏÖÔÚµÄÊý¾Ý

Ëø¶¨Êý¾Ý¿â

mysql> FLUSH TABLES WITH READ LOCK;

±¸·ÝÊý¾Ý¿âÓÐÁ½ÖÖ°ì·¨Ò»ÖÖÊÇÖ±½Ó½øÈëµ½mysqlµÄdataĿ¼Ȼºó´ò°üÄãÐèÒª±¸·ÝÊý¾Ý¿âµÄÎļþ¼Ð£¬µÚ¶þÖÖÊÇʹÓÃmysqldumpµÄ·½Ê½À´±¸·ÝÊý¾Ý¿âµ«ÊÇÒª¼ÓÉÏ"--master-data " Õâ¸ö²ÎÊý£¬½¨ÒéʹÓõÚÒ»ÖÖ·½·¨À´±¸·ÝÊý¾Ý¿â

c.²é¿´Ö÷·þÎñÆ÷µÄ״̬

mysql> show master statusG;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| mysql-bin.003 | 73 | test | manual,mysql |

+---------------+----------+--------------+------------------+

¼Ç¼File ºÍ Position ÏîÄ¿µÄÖµ£¬ÒÔºóÒªÓõġ£

d.È»ºó°ÑÊý¾Ý¿âµÄËø¶¨´ò¿ª

mysql> UNLOCK TABLES;

4¡£ÉèÖôӷþÎñÆ÷

a.Ê×ÏÈÉèÖÃÊý¾Ý¿âµÄÅäÖÃÎļþ

server-id=n //ÉèÖÃÊý¾Ý¿âidĬÈÏÖ÷·þÎñÆ÷ÊÇ1¿ÉÒÔËæ±ãÉèÖõ«ÊÇÈç¹ûÓжą̀´Ó·þÎñÆ÷Ôò²»ÄÜÖØ¸´¡£

master-host=db-master.mycompany.com //Ö÷·þÎñÆ÷µÄIPµØÖ·»òÕßÓòÃû

master-port=3306 //Ö÷Êý¾Ý¿âµÄ¶Ë¿ÚºÅ

master-user=pertinax //ͬ²½Êý¾Ý¿âµÄÓû§

master-password=freitag //ͬ²½Êý¾Ý¿âµÄÃÜÂë

master-connect-retry=60 //Èç¹û´Ó·þÎñÆ÷·¢ÏÖÖ÷·þÎñÆ÷¶Ïµô£¬ÖØÐÂÁ¬½ÓµÄʱ¼ä²î

report-host=db-slave.mycompany.com //±¨¸æ´íÎóµÄ·þÎñÆ÷

b.°Ñ´ÓÖ÷Êý¾Ý¿â·þÎñÆ÷±¸·Ý³öÀ´µÄÊý¾Ý¿âµ¼Èëµ½´Ó·þÎñÆ÷ÖÐ

c.È»ºóÆô¶¯´ÓÊý¾Ý¿â·þÎñÆ÷£¬Èç¹ûÆô¶¯µÄʱºòûÓмÓÉÏ"--skip-slave-start"Õâ¸ö²ÎÊýÔò½øÈëµ½mysqlÖÐ

mysql> slave stop; //Í£Ö¹slaveµÄ·þÎñ

d.ÉèÖÃÖ÷·þÎñÆ÷µÄ¸÷ÖÖ²ÎÊý

mysql> CHANGE MASTER TO

-> MASTER_HOST="master_host_name", //Ö÷·þÎñÆ÷µÄIPµØÖ·

-> MASTER_USER="replication_user_name", //ͬ²½Êý¾Ý¿âµÄÓû§

-> MASTER_PASSWORD="replication_password", //ͬ²½Êý¾Ý¿âµÄÃÜÂë

-> MASTER_LOG_FILE="recorded_log_file_name", //Ö÷·þÎñÆ÷¶þ½øÖÆÈÕÖ¾µÄÎļþÃû(Ç°ÃæÒªÇó¼ÇסµÄ²ÎÊý)

-> MASTER_LOG_POS=recorded_log_position; //ÈÕÖ¾ÎļþµÄ¿ªÊ¼Î»ÖÃ(Ç°ÃæÒªÇó¼ÇסµÄ²ÎÊý)

e.Æô¶¯Í¬²½Êý¾Ý¿âµÄÏß³Ì

mysql> slave start;

²é¿´Êý¾Ý¿âµÄͬ²½Çé¿ö°É¡£Èç¹ûÄܹ»³É¹¦Í¬²½ÄǾ͹§Ï²ÁË£¡

²é¿´Ö÷´Ó·þÎñÆ÷µÄ״̬

mysql> SHOW PROCESSLISTG //¿ÉÒԲ鿴mysqlµÄ½ø³Ì¿´¿´ÊÇ·ñÓмàÌýµÄ½ø³Ì

Èç¹ûÈÕ־̫´óÇå³ýÈÕÖ¾µÄ²½ÖèÈçÏÂ

1.Ëø¶¨Ö÷Êý¾Ý¿â

mysql> FLUSH TABLES WITH READ LOCK;

2.Í£µô´ÓÊý¾Ý¿âµÄslave

mysql> slave stop;

3.²é¿´Ö÷Êý¾Ý¿âµÄÈÕÖ¾ÎļþÃûºÍÈÕÖ¾ÎļþµÄposition

show master status;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_do_db | Binlog_ignore_db |

+---------------+----------+--------------+------------------+

| louis-bin.001 | 79 | | mysql |

+---------------+----------+--------------+------------------+

4.½â¿ªÖ÷Êý¾Ý¿âµÄËø

mysql> unlock tables;

5.¸üдÓÊý¾Ý¿âÖÐÖ÷Êý¾Ý¿âµÄÐÅÏ¢

mysql> CHANGE MASTER TO

-> MASTER_HOST="master_host_name", //Ö÷·þÎñÆ÷µÄIPµØÖ·

-> MASTER_USER="replication_user_name", //ͬ²½Êý¾Ý¿âµÄÓû§

-> MASTER_PASSWORD="replication_password", //ͬ²½Êý¾Ý¿âµÄÃÜÂë

-> MASTER_LOG_FILE="recorded_log_file_name", //Ö÷·þÎñÆ÷¶þ½øÖÆÈÕÖ¾µÄÎļþÃû(Ç°ÃæÒªÇó¼ÇסµÄ²ÎÊý)

-> MASTER_LOG_POS=recorded_log_position; //ÈÕÖ¾ÎļþµÄ¿ªÊ¼Î»ÖÃ(Ç°ÃæÒª6.Æô¶¯´ÓÊý¾Ý¿âµÄslave

mysql> slave start;

¡¾´ó ÖРС¡¿ ¡¾´òÓ¡¡¿¡¾·±Ìå¡¿ ¡¾Í¶¸å¡¿ ¡¾¹Ø±Õ¡¿¡¾ÆÀÂÛ¡¿ ¡¾·µ»Ø¶¥²¿¡¿