当前位置:首页 > MySQL > MySQL基础

MHA实现mysql主从手动切换方法

来源:智启教程|时间:2014-10-17 14:55:48

MHA是一款mysql主从配置服务器监控的软件了,我们可以利用它来实现mysql主从服务器监控并且保证它们的稳定性.

一、准备工作

1、分别在Master和Slave执行如下,方便mha检查复制:

  1. grantallprivilegeson*.*to'root'@'10.1.1.231'identifiedby'rootpass';grantallprivilegeson*.*to'root'@'10.1.1.234'identifiedby'rootpass';
  2. grantreplicationslaveon*.*to'jpsync'@'10.1.1.231'identifiedby'jppasswd';grantreplicationslaveon*.*to'jpsync'@'10.1.1.234'identifiedby'jppasswd';
  3. flushprivileges;

2、将master设置为只读:

  1. mysql>setglobalread_only=1;QueryOK,0rowsaffected(0.00sec)
  2. mysql>showvariableslike'read_only';+---------------+-------+
  3. |Variable_name|Value|+---------------+-------+
  4. |read_only|ON|+---------------+-------+
  5. 1rowinset(0.00sec)

交互模式:

#masterha_master_switch --master_state=alive --conf=/etc/masterha/app1.cnf --new_master_host=10.1.1.231 --new_master_port=63306

或非交互模式:

#masterha_master_switch --master_state=alive --conf=/etc/masterha/app1.cnf --new_master_host=10.1.1.231 --new_master_port=63306 —interactive=0

二、切换完以后,如何让10.1.1.231为主,10.1.1.234为从,操作步骤:

1、主上执行:

  1. mysql>showmasterstatus;+-------------------------+----------+--------------+--------------------------------------+-------------------+
  2. |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+-------------------------+----------+--------------+--------------------------------------+-------------------+
  3. |mysql-master-bin.000013|120|denovo_ng|mysql,denovo,test,information_schema||+-------------------------+----------+--------------+--------------------------------------+-------------------+
  4. 1rowinset(0.00sec)

2、在10.1.1.234上执行如下sql命令;

  1. changemastertomaster_host='10.1.1.231',master_port=63306,master_user='jpsync',master_password='jppasswd',master_log_file='mysql-master-bin.000013',master_log_pos=120;
  2. mysql>showslavestatus\G;
  3. ***************************1.row***************************Slave_IO_State:Waitingformastertosendevent
  4. Master_Host:10.1.1.231Master_User:jpsync
  5. Master_Port:63306Connect_Retry:60
  6. Master_Log_File:mysql-master-bin.000013Read_Master_Log_Pos:120
  7. Relay_Log_File:compute-0-52-relay-bin.000002Relay_Log_Pos:290
  8. Relay_Master_Log_File:mysql-master-bin.000013Slave_IO_Running:Yes
  9. Slave_SQL_Running:Yes

3、查看master状态,并测试:

  1. mysql>showslavehosts;+-----------+------+-------+-----------+--------------------------------------+
  2. |Server_id|Host|Port|Master_id|Slave_UUID|+-----------+------+-------+-----------+--------------------------------------+
  3. |1052||63306|1025|e25a3e4a-39c0-11e4-80cb-00259086c4b6|+-----------+------+-------+-----------+--------------------------------------+
  4. 1rowinset(0.00sec)

主库10.1.1.231上插入记录:

  1. mysql>insertintotest_slave_002values(555551111,1,55555,99999,44.11,2222,91919);QueryOK,1rowaffected(0.00sec)

从库查询记录已经存在:

  1. mysql>select*fromtest_slave_002whereid=555551111;+-----------+-----+-----------+--------------+----------+----------------+--------------+
  2. |id|tag|ticket_id|candidate_id|duration|source_file_id|source_start|+-----------+-----+-----------+--------------+----------+----------------+--------------+
  3. |555551111|1|55555|99999|44.11|2222|91919|+-----------+-----+-----------+--------------+----------+----------------+--------------+
  4. 1rowinset(0.00sec)

4、更新配置文件,更新主库my.cnf配置添加:

1,skip_slave_start

注意:防止重启数据库,启动slave进程,导致数据不一致.

更新从库my.cnf配置添加,设置slave库为只读:

1

2

read_only=1

relay_log_purge=0

然后重启主库和从库,观察库的信息:

主库信息:

  1. mysql>showprocesslist;+----+--------+------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
  2. |Id|User|Host|db|Command|Time|State|Info|+----+--------+------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
  3. |1|jpsync|10.1.1.234:49085|NULL|BinlogDump|17|Masterhassentallbinlogtoslave;waitingforbinlogtobeupdated|NULL||2|root|localhost|NULL|Query|0|init|showprocesslist|
  4. +----+--------+------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+2rowsinset(0.00sec)
  5. mysql>showmasterstatus;+-------------------------+----------+--------------+--------------------------------------+-------------------+
  6. |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+-------------------------+----------+--------------+--------------------------------------+-------------------+
  7. |mysql-master-bin.000014|120|denovo_ng|mysql,denovo,test,information_schema||+-------------------------+----------+--------------+--------------------------------------+-------------------+
  8. 1rowinset(0.00sec)

从库信息:

  1. mysql>showslavestatus\G;***************************1.row***************************
  2. Slave_IO_State:WaitingformastertosendeventMaster_Host:10.1.1.231
  3. Master_User:jpsyncMaster_Port:63306
  4. Connect_Retry:60Master_Log_File:mysql-master-bin.000014
  5. Read_Master_Log_Pos:120Relay_Log_File:compute-0-52-relay-bin.000005
  6. Relay_Log_Pos:290Relay_Master_Log_File:mysql-master-bin.000014
  7. Slave_IO_Running:YesSlave_SQL_Running:Yes
  8. mysql>showprocesslist;
  9. +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+|Id|User|Host|db|Command|Time|State|Info|
  10. +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+|1|systemuser||NULL|Connect|58|Waitingformastertosendevent|NULL|
  11. |2|systemuser||NULL|Connect|58|Slavehasreadallrelaylog;waitingfortheslaveI/Othreadtoupdateit|NULL||3|root|localhost|NULL|Query|0|init|showprocesslist|
  12. +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+3rowsinset(0.00sec)--phpfensi.com

栏目最新

相关文章

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

严禁网站镜像,否则追究法律责任 CopyRight © 2014 智启教程 zhiqinet.com , All Rights Reserved.