centos下mysql高可用架构MHA搭建及测试故障转移

MHA项目网站

https://code.google.com/p/mysql-master-ha/

一.环境介绍

1.主机部署

manager机:10.10.54.154master机:10.10.54.156slave1机:10.10.54.155(备用master)

slave2机:10.10.54.157

2.大致步骤A.首先用ssh-keygen实现四台主机之间相互免密钥登录B.安装MHAmha4mysql-node,mha4mysql-manager 软件包C.建立master,slave1,slave2之间主从复制D.管理机manager上配置MHA文件E.masterha_check_ssh工具验证ssh信任登录是否成功F.masterha_check_repl工具验证mysql复制是否成功G.启动MHA manager,并监控日志文件H.测试master(156)宕机后,是否会自动切换

3.说明:下面中括号中的主机名说明了当前操作是在哪台机子上进行的

二.首先用ssh-keygen实现四台主机之间相互免密钥登录

[manager机]shell> ssh-keygen -t rsa -b 2048shell> scp-copy-id root@10.10.54.155

shell> scp-copy-id root@10.10.54.156

shell> scp-copy-id root@10.10.54.157

在另外三台机子重复此步骤,使四台机子中的任何两台之间可以免密码登录

三.安装MHAmha4mysql-node,mha4mysql-manager 软件包

1.四台主机上安装MHAmha4mysql-node

[manager,master,slave1,slave2]shell> yum updateshell> yum -y install perl-DBD-MySQL ncftpshell> wget sehll> rpm -ivh mha4mysql-node-0.53-0.noarch.rpm

2.在manager机子上安装mha4mysql-manager

[manager]shell> yum install perlshell> yum install cpanshell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpmerror:perl(Config::Tiny) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch::File) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch::Screen) is needed by mha4mysql-manager-0.53-0.noarchperl(Parallel::ForkManager) is needed by mha4mysql-manager-0.53-0.noarchperl(Time::HiRes) is needed by mha4mysql-manager-0.53-0.noarch[solution]shell> wget ftp://ftp.muug.mb.ca/mirror/centos/5.10/os/x86_64/CentOS/perl-5.8.8-41.el5.x86_64.rpmshell> wget ftp://ftp.muug.mb.ca/mirror/centos/6.5/os/x86_64/Packages/compat-db43-4.3.29-15.el6.x86_64.rpmshell> wget shell> wget shell> wget shell> wget shell> wget shell> rpm -ivh perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm perl-Log-Dispatch-2.27-1.el6.noarch.rpm perl-Mail-Sender-0.8.16-3.el6.noarch.rpm perl-Mail-Sendmail-0.79-12.el6.noarch.rpm perl-Time-HiRes-1.9721-136.el6.x86_64.rpmshell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm

四.建立master,slave1,slave2之间主从复制

[master:156]1.shell> vim /etc/my.cnf#server-id 改为1server-id=1log-bin=mysql-binbinlog_format=mixed#授权操作2.mysql> GRANT ALL PRIVILEGES ON *.* TO ‘rep’@’10.10.54.%’ IDENTIFIED BY ‘rep123′;mysql> flush privileges;3.mysql> show master status;[slave1,slave2]4.change master操作mysql> change master tomaster_host=’10.10.54.156′,master_port=3306,master_user=’rep’,master_password=’rep123′,master_log_file=’mysql-bin.000001′,master_log_pos=112;

注意:slave1机子上也要授权,因为这个是备用master[slave1:155]5.mysql> GRANT ALL PRIVILEGES ON *.* TO ‘rep’@’10.10.54.%’ IDENTIFIED BY ‘rep123’;[master,slave1,slave2]6.查看主从复制是否成功的一些命令mysql> start slave;mysql> stop slave;mysql> reset slave;mysql> show slave status\G;

五.所有主机上设置复制权限帐号mysql> GRANT ALL PRIVILEGES ON *.* TO ‘mha_rep’@’10.10.2.10’ IDENTIFIED BY ‘123456’;

六.manager上配置MHA文件,管理各个节点

[manager:154]shell> mkdir -p /masterha/app1shell> mkdir /etc/masterhashell> vim /etc/masterha/app1.cnf

[server default]user=mha_rep ##mysql管理用戶名password=123456manager_workdir=/masterha/app1 #目录可以任意指定manager_log=/masterha/app1/manager.logremote_workdir=/masterha/app1ssh_user=root#ssh免密钥登录的帐号名repl_user=rep#mysql复制帐号,用来在主从机之间同步二进制日志等repl_password=rep123ping_interval=1 #ping间隔时间,,用来检测master是否正常[server1]hostname=10.10.54.155#ssh_port=9999master_binlog_dir=/data/ndb #mysql数据库目录candidate_master=1 #master机宕掉后,优先启用这台作为新master[server2]hostname=10.10.54.156#ssh_port=9999master_binlog_dir=/data/ndbcandidate_master=1[server3]hostname=10.10.54.157#ssh_port=9999master_binlog_dir=/data/ndbno_master=1#设置no_master=1使主机不能成为新master

七.验证ssh信任登陆和mysql主从复制是否成功

1.masterha_check_ssh 验证ssh信任登陆

[manager:154]shell> masterha_check_ssh –conf=/etc/masterha/app1.cnfSun Mar 2 17:45:38 2014 – [debug] ok.Sun Mar 2 17:45:38 2014 – [info] All SSH connection tests passed successfully.

2.masterha_check_repl 验证mysql复制是否成功

[manager:154]shell> masterha_check_repl –conf=/etc/masterha/app1.cnf———————————————————Sun Mar 2 13:16:57 2014 – [info] Slaves settings check done.Sun Mar 2 13:16:57 2014 – [info]10.10.54.156 (current master) +–10.10.54.155 +–10.10.54.157…MySQL Replication Health is OK.—————————————————————经验是由痛苦中粹取出来的

centos下mysql高可用架构MHA搭建及测试故障转移

相关文章:

你感兴趣的文章:

标签云: