MHA配置
来源:互联网 发布:知乎名字由来 编辑:程序博客网 时间:2024/04/25 01:38
环境:rhel6.5 firewalld selinux disabled
MHA manager:172.25.67.1
master:172.25.67.2
slave:172.25.67.3
slave:172.25.67.4
mysql三个节点:
三个节点之间ssh连接都不用密码
启动MySQL:
/etc/init.d/mysqld start
编辑配置文件
vim /etc/my.cnf
添加下面的内容
# 每一个节点只有这儿的ID不同server-id=2 # 打开二进制日志功能log-bin=mysql-bin# 指定复制的数据库binlog-do-db=test# 忽略的数据库binlog-ignore-db=mysql# 开启GTID模式gtid-mode=ON# GTID安全的参数enforce-gtid-consistency=ON# 开启半同步复制,需要提前安装相应插件 # mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';rpl_semi_sync_master_enabled=ON# mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';rpl_semi_sync_slave_enabled=ON# 基于组提交的并行复制slave-parallel-type=LOGICAL_CLOCK# 一个schema下,16个的worker线程并发执行relay log中主库提交的事务slave-parallel-workers=16master_info_repository=TABLErelay_log_info_repository=TABLErelay_log_recovery=ON
安装软件: mha4mysql-node-0.56-0.el6.noarch.rpm
安装半同步复制所需的插件,如果用rpm包安装的,插件存放在/usr/lib64/mysql/plugin/
mysql> install plugin rpl_semi_sync_master SONAME 'semisync_master.so';mysql> install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';
创建主从复制帐号
mysql> grant replication slave on *.* to redhat@'172.25.67.%' identified by 'Gmoon+007';
建立MHA管理帐号
mysql> grant all on *.* to root@'172.25.67.%' identified by 'Gmoon+007';
防止在slave上被人工误写入数据
mysql> set global read_only=1;
重启mysql:
/etc/init.d/mysqld restart
在两个slave节点
mysql> change master to master_host='172.25.67.2',master_user='redhat',master_password='Gmoon+007',master_auto_position=1;mysql> start slave;mysql> show salve status\G*************************** 1. row *************************** Master_Host: 172.25.67.2 Master_User: redhat ...................... Slave_IO_Running: Yes Slave_SQL_Running: Yes ......................*************************************************************
在MANAGER节点:
安装软件:
mha4mysql-manager-0.56-0.el6.noarch.rpmmha4mysql-node-0.56-0.el6.noarch.rpmperl-Config-Tiny-2.12-7.1.el6.noarch.rpmperl-Email-Date-Format-1.002-5.el6.noarch.rpmperl-Log-Dispatch-2.27-1.el6.noarch.rpmperl-Mail-Sender-0.8.16-3.el6.noarch.rpmperl-Mail-Sendmail-0.79-12.el6.noarch.rpmperl-MIME-Lite-3.027-2.el6.noarch.rpmperl-MIME-Types-1.28-2.el6.noarch.rpmperl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm
在mha管理节点创建管理目录:
mkdir /etc/mha
编辑配置文件:
vim /etc/mha/app.cnf
[server default]# 定义mha的管理目录及日志文件manager_workdir=/usr/local/mhamanager_log=/usr/local/mha/mha.logmaster_binlog_dir=/var/lib/mysqlremote_workdir=/tmp# mha的管理帐号和密码user=root password=Gmoon+007 # 每隔一秒监测一次ping_interval=1# 在sql端授权的用户及密码repl_user=redhat repl_password=Gmoon+007# ssh连接的用户ssh_user=root # 定义监测的主机 [server2]hostname=172.25.67.2port=3306[server3]hostname=172.25.67.3port=3306candidate_master=1check_repl_delay=0[server4]hostname=172.25.67.4port=3306
创建配置文件中的目录
mkdir /usr/local/mha
配置ssh,使mha主机与mysql主机之间不用密码可以相互连接:
生成私钥和公钥
# ssh-keygen
将公钥复制到远程机器中
# ssh-copy-id 172.25.67.2# ssh-copy-id 172.25.67.3# ssh-copy-id 172.25.67.4# ssh 172.25.67.2 测试连接# ssh 172.25.67.3# ssh 172.25.67.4
scp实现相互连接
# scp -r .ssh/ root@172.25.67.2:/root# scp -r .ssh/ root@172.25.67.3:/root# scp -r .ssh/ root@172.25.67.4:/root
检查ssh是否配置成功:
masterha_check_ssh --conf=/etc/mha/app.cnf **********All SSH connection tests passed successfully**********
检查数据库连接是否配置成功:
masterha_check_repl --conf=/etc/mha/app.cnf************MySQL Replication Health is OK.***********
在manager节点:
开启MHA管理进程:
nohup masterha_manager --conf=/etc/mha/app.cnf --ignore_last_failover &
查看进程开启的状态:
masterha_check_status --conf=/etc/mha/app.cnf
停掉master,会切换到172.25.67.3上
service mysqld stop
查看172.25.67.3的slave的状态:
mysql> show slave status\GEmpty set (0.00 sec) 变为空
注意这里有两个问题:
- 虽然mha试图从宕机的主服务器上保存二进制日志,但也会有问题。例如,如果主服务器硬件故障或无法通过ssh访问,mha没法保存二进制日志,只进行故障转移而丢失最新数据。
- 当主库故障,切换到另外的服务器上后,即使恢复了原来的主库,也不能立即加入整套系统中,得重新部署。而且当发生一次切换后,管理节点的监控进程就会自动退出,需要用脚本来自动启动。
在master节点:
添加VIP
ip addr 172.25.67.100/24 dev eth0
在MHA管理节点:
将下面两个脚本的VIP设置为master的添加的VIP
vim master_ip_failovervim master_ip_online_change
测试:
开启MHA的管理进程:
nohup masterha_manager --conf=/etc/mha/app.cnf --ignore_last_failover &
停掉master上的msyqld,VIP会自动转移到新的master上。
在不启动MHA管理进程的情况下,可以手动切换:
热切:
masterha_master_switch --conf=/etc/mha/app.cnf --master_state=alive --new_master_host=172.25.67.2 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000
冷切:
masterha_master_switch --conf=/etc/mha/app.cnf --master_state=dead --dead_master_host=172.25.67.2 --dead_master_port=3306 --new_master_host=172.25.67.3 --new_master_port=3306 --ignore_last_failover
阅读全文
0 0
- MHA配置
- MHA配置
- MySQL MHA配置常见问题
- MHA安装配置
- MHA配置参数解释
- Mysql GTID Mha配置
- MySQL:MHA安装配置
- MHA安装配置
- 016-mha模式配置
- MHA快速配置
- MHA配置参数解释
- MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置
- mha配置高可用mysql
- mysql高可用MHA配置
- MHA简单配置与应用
- mha
- MHA安装及等效性配置
- 基于MySQL5.7MHA的配置
- PL SQL设置快捷键
- Maven私有库和本地库的安装与配置
- 设计模式——工厂方法模式及在jdk中的应用
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址的详细讲解
- RSA非对称加密(简单理解)
- MHA配置
- 文本入库特殊字符处理, 防止SQL注入
- iOS开发 系统各种权限请求 & 判断
- vim命令大全
- Python-爬取百度音乐
- Python+selenium
- 在imx53CPU下添加ds2417芯片(续)——有关时区问题
- Linux shell 之 提取文件名和目录名的一些方法
- 利用AdaBoost元算法提高分类性能