mha简单配置

关于mha

mha是一款开源的mysql的高可用程序,它为mysql主从复制架构提供了自动化主机故障转移功能。mha检测架构的所有节点,一但检测到主节点有故障时,会立即提升拥有最新数据的从节点成为新的主节点。除了故障时转移,mha也支持在线手动切换。当主节点需要下线维护,也可以实现。

实验环境

master:192.168.32.111

slave:192.168.32.112

slave:192.168.32.104

manager:192.168.32.105

实验前提

1、节点内所有主机时间必须同步一致

2、节点内所有主机可以实现域名解析(非必须项)

cat /etc/hosts
...
192.168.32.111  node1
192.168.32.112  node2
192.168.32.104  node3
192.168.32.105  node4

3、节点内主机能通过ssh密钥访问

~]#ssh-keygen -t rsa -P ‘‘
~]#cd .ssh
~]#ssh-copy-id -i ./id_rsa.pub     <===自己连接自己拷贝,生成authorized_keys文件
~]#ls .ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts  <===把前三个文件复制给其余三台主机
~]#scp id_rsa{,.pub} authorized_keys  
~]#scp id_rsa{,.pub} authorized_keys 
~]#scp id_ra{,.pub} authorized_keys        <===测试主机间直接互连

  实验

1、搭建mysql主从架构

1.1主节点配置

~]#vim /etc/my.cnf.d/server.cnf
[server]
skip_name_resolve = ON
innodb_file_per_table = ON
max_connection = 2000

log_bin = master-log
server_id = 1
relay_log=relay-log
~]#mysql
>GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO ‘ma‘@‘192.168.32.%‘ IDENTIFIED BY ‘centos‘; <===创建从节点复制用户
> GRANT ALL ON *.* TO ‘mha‘@‘192.168.32.%‘ IDENTIFIES BY ‘centos‘;    <===创建manager用户

1.2从节点配置,id号必须不同

]#vim /etc/my.cnf.d/server.cnf 
[server]
skip_name_resolve = ON
innodb_file_per_table = ON
max_connection = 2000

relay_log = relay-log
log_bin = master-log
server_id = 2
relay_log_purge = OFF
read_only = ON

1.3在每台从节点上进入mysql改变工作模式,具体MASTER_LOG的文件和位置事先可以在主节点上查看:SHOW MASTER STATUS;

>CHANGE MASTER TO MASTER_HOST=‘192.168.32.111‘,MASTER_USER=‘ma‘,MASTER_PASSWORD=‘centos‘,MASTER_LOG_FILE=‘master-log.000001‘,MASTER_LOG_POS=245;

1.4配置完后在从节点上SHOW SLAVE STATUS可以查看指向的主节点信息,并且可以查看帐号信息是否已经同步了。

2、安装mha

2.1在主节点上安装mha4mysql-node和mha4mysql-manager包。centos7可以直接使用e16的程序包,并且两个包版本并无强制要求一致。

~]#yum install ./mha4mysql-manager-0.56-0.el6.noarch.rpm -y
~]#yum install ./mha4mysql-node-0.56-0.el6.noarch.rpm -y

2.2在所有从节点上安装mha4mysql-node包,安装方法同上。

3、初始化mha

3.1manager节点需要为每个监控的mysql集群提供一个专用的配置文件。我们知道mha不止可以监控一组master/slave,不同的集群可以共享一个全局配置,默认全局文件为/etc/masteha_default.cnf。如果只监控一组,也可以自定义配置文件里路径。

~]#mkdir /etc/masterha
~]#vim /etc/masterha/app1.cnf 
[server default]
user=mha
password=centos
manager_workdir=/data/masterha/app1
manager_log=/data/masterha/app1/manager.log
remote_workdir=/data/masterha/app1
ssh_user=root
ssh_port=22
repl_user=ma
repl_password=centos
ping_interval=1

[server1]
hostname=192.168.32.111
candidate_master=1

[server2]
hostname=192.168.32.112
candidate_master=1

[server3]
hostname=192.168.32.104
candidate_master=1

3.2检测各节点互相ssh通信是否正常

~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
...
All SSH connection tests passed successfully.        <===出现这个代表成功

3.3检测管理的mysql复制集群的连接配置参数是否正常

~]# masterha_check_repl --conf=/etc/masterha/app1.cnf 
...
Thu Nov 16 14:49:20 2017 - [info] Slaves settings check done.
Thu Nov 16 14:49:20 2017 - [info] 
192.168.32.111(192.168.32.111:3306) (current master)
 +--192.168.32.112(192.168.32.112:3306)
 +--192.168.32.104(192.168.32.104:3306)
...
MySQL Replication Health is OK.                    <===出现这个代表成功

3.4启动mha,后台运行

~]#nohup masterha_manager --conf=/etc/masterha/app1.cnf &>/data/masterha/app1/manager.log &
]# masterha_check_status --conf=/etc/masterha/app1.cnf                                         
app1 (pid:24915) is running(0:PING_OK), master:192.168.32.112

3.5故障排错

1、检查ssh互相之前是否可以使用密钥无密码登录

2、检查授权的两个帐号是否可以正常登录各个节点

4、故障转移测试

4.1在主节点关闭mysql服务,mha会自动挑选一个作为新的主节点,同时mha服务会中止。查看日志可以看到相关转移过程。

4.2主节点恢复后可以继续作为新的主节点的从节点,需要重新change和start slave。注意此时配置文件/etc/my.cnf.d/server.cnf中需添加/relay_log_purge = OFF和read_only = ON两项。

4.3再次启动mha后台运行即可

总结

我们已经实现了mysql主节点高可用的解决方案,但是又引入了一个新的单点,mha。所以说在运维架构中并没有一劳永逸的事,到底要怎么去使用,具体情况还得在实际工作中部门开会来决定,并不是一个人就能拍板的。

时间: 2024-10-20 11:25:48

mha简单配置的相关文章

0123简单配置LNMP

简单配置LNMP不怕出现错误,就怕错误不知道出现在哪里?看日值tail -f /var/log/message -- 系统整个的日志tail -f /var/log/nginx/error.log -- 单个应用的日志http://www.cnblogs.com/make217/p/5836864.htmlhttp://www.cnblogs.com/xiaoit/p/3991037.html

Samba服务器的简单配置

案例说明: 公共目录        public   /abc            ro  允许任何人匿名访问, Daiqing1        smbdq1   /tmp/daiqing1   rw  不允许他人访问 Daiqing2        smbdq2   /tmp/daiqing2   rw  不允许他人访问 Samba服务器的简单配置,布布扣,bubuko.com

Linux安装MariaDB和简单配置

1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb 接下来进行MariaDB的相关简单配置 mysql_secure_installation 首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):<–初

linux ntp安装简单配置

公司的一台服务器硬件坏了挂了,其中就有ntp服务端,写一下ntp服务端的简单配置. 1.首先安装ntp,centos 系统执行 yum install ntp 2.写入配置文件/etc/ntp.conf如下 restrict 192.168.18.153 mask 255.255.255.0 nomodify notrap restrict 192.168.18.0 mask 255.255.255.0 nomodify server time.pool.aliyun.com #server 1

gedit变身为编程利器的简单配置

本文由fcbruce个人原创整理,转载请注明出处:http://blog.csdn.net/u012965890/article/details/38472149.>_< 用了linux有半年多了(ubuntu->debian),之前敲代码都是通过IDE来编译运行,一直有转Vim的想法,可是那玩意太高端,暂时玩不过来.前两天发现gedit加上各种插件简直就是神器,这两天一直在抽空配置,试用了下,感觉很爽,哈哈哈哈哈哈哈,下面来分享下我的心得.>_< 操作系统:Debian 7

【初学菜鸟作--邮件服务的简单配置案例】

邮件服务器的配置以及使用 实验一:                    实验目的:简单搭建出邮件服务器并测试其可用性                    实验环境:DNS服务器一台,安装有Portfix的邮件服务器一台 实验步骤: 一.邮件的发送(SMTP) 1.在邮件服务器配置主机名,ip,并安装portfix并启动 [[email protected]~]# tail -2 /etc/sysconfig/network HOSTNAME=mail.tarena.com   [[email

简单配置SVN手册

简单配置svn手册 修改authz 文件,添加用户 组名=用户名 readonly= [实例名称:/] @组名 = rw @readonly = 修改password文件,设置密码 用户名 = 密码 修改svnserver.conf 配置 anon-access = none auth-access = write password-db = 实例用户密码路径 authz-db = 实例用户名路径 realm = 实例路径 启动svn服务器:svnserver  -d -r = 实例目录路径 简

saltstack安装和简单配置(一)

saltstack 安装和简单配置 在安装前,写了好多废话,都被我删除了,下面就开始搞吧. 环境: master:10.70.36.110 minion:10.70.36.103 一.安装: 现在centos下的yum源内有最新的salt-master源码包,安装的话,直接     yum -y install salt-master   #服务端         yum -y install salt-minion   #客户端 要使用yum安装,必须配置好epel源,可参考:        

CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

闲置已久的空间环境配置忘得差不多了,今天得空整理,重置了磁盘重新搭建环境,首先安装MariaDB的数据库,在这里记录下安装过程,以便以后查看. 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb 接下来进行MariaDB的相关简单配置 mysql_secure_installati