要求:
1、mysql版本5.6.5以上
2、开启GTID模式
3、需要权限:
SHOW SLAVE STATUS SHOW MASTER STATUS STOP SLAVE START SLAVE WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS CHANGE MASTER TO REPLICATE SLAVE SUPER GRANT OPTION, RELOAD, DROP, CREATE, INSERT ,SELECT
4、需要另外安装,需要在python2.6版本环境中
wget -c http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-utilities-1.5.3.zip
unzip mysql-utilities-1.5.3.zip
cd mysql-utilities-1.5.3
python ./setup.py build
python ./setup.py install
mysqlfailover一些参数:
1、--failover-mode(转移模式) auto:执行故障自动转移到第一候选人。如果没有从可行的,继续从从列表中找到一个可行的候选者。 如果没有从被认为是一个可行的候选者,该程序将生成错误并退出。一旦候选者被发现,该程序将进行故障切换到最佳从上。 该命令测试每个候选从的先决条件。一旦候选从被选中,其他从作为它的从,收集其他从的任何事务交易。该方式,确保候选者是最新的从 elect:这种模式与aoto一样的,除了如果在指定的候选从列表中没有可行的,不检测剩余的从和产生错误并退出。 fail: 这种模式会产生一个错误,当主失败后不会进行故障转移。这种模式被用来只进行定期健康监测不进行故障切换。
2、--master=
设置MASTER服务器。格式:--master=用户名:密码@‘主机名’:端口号
3、--discover-slaves-login=
查询所有连接到MASTER的SLAVE端。格式: --discover-slaves-login=用户名:密码
4、--log=
日志文件。
my.cnf配置:
MASTER:
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency
master-info-repository = TABLE
relay-log-info-repository = TABLE
report_host= #本机IP
report_port= #本机端口
SLAVE:
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=8
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency
report_host= #本机IP
report_port= #本机端口
这里需要设置两个账号,一个用来作为监控切换的账号,需要all privileges权限。一个用来复制的账号,需要replication slave权限。
mysqlfailover --master=failover:123456@'192.168.1.100':13306 --discover-slaves-login=failover:123456