返回顶部
首页 > 资讯 > 数据库 >Master High Availability 安装配置
  • 294
分享到

Master High Availability 安装配置

2024-04-02 19:04:59 294人浏览 八月长安
摘要

MHA(Master High Availability)目前在 Mysql 高可用方面是一个相对成熟的解决方案,是一套优秀的作为 mysql 高可用性环境下故障切换和主从提升的高可用软件。在Mysql 故

MHA(Master High Availability)目前在 Mysql 高可用方面是一个相对成熟的解决方案,
是一套优秀的作为 mysql 高可用性环境下故障切换和主从提升的高可用软件。在
Mysql 故障切换过程中,MHA 能做到在 0~30 秒之内自动完成数据库的故障切换操
作,并且在进行故障切换的过程中,MHA 能在最大程度上保证数据的一致性,以达
到真正意义上的高可用。
该软件由两部分组成:MHA Manager(管理节点)和 MHA node(数据节点)。MHA Manager
可以单独部署在一台独立的机器上管理多个 master-slave 集群,也可以部署在一台 slave

点上。
MHA Node 运行在每台 MySQL 服务器上,MHA Manager 会定时探测集群中的 master
节点,当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将
所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。MHA 可

与半同步复制结合起来,目前 MHA 主要支持一主多从的架构,要搭建 MHA,要求一个复制集群
中必须最少有三台数据库服务器,一主二从,即一台充当 master,一台充当备用 master,另
外一台充当从库.
MHA 切换步骤:
1.从宕机的 master 中保存二进制文件
2.检测含有最新日至更新的 slave
3.应用差异的中继日至(relay log)到其他的 slave
4.应用从 master 中保存的二进制日至事件到其他的 slave 中
5.提升一个 slave 为 master
6.使其他的 slave 指向最新的 master 进行复制。
manager 的工具:
masterha_check_ssh 检查 MHA 的 SSH 配置状况
masterha_check_repl 检查 MySQL 复制状况
masterha_manger 启动 MHA
masterha_check_status 检测当前 MHA 运行状态
masterha_master_monitor 检测 master 是否宕机
masterha_master_switch 控制故障转移(自动或者手动)
masterha_conf_host 添加或删除配置的 server 信息
node 的工具:
save_binary_logs 保存和复制 master 的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的 slave
filter_mysqlbinlog 去除不必要的 ROLLBACK 事件(MHA 已不再使用这个工具)
purge_relay_logs 清除中继日志(不会阻塞 SQL 线程)
Mha 实验环境配置:我们这个是在主从复制(一主两从)的基础上搭建的,mha 是可以放在一个 slave 端也可以单

运行:
实验环境配置:
Rhel6.5
iptables selinux down
172.25.40.1 server1.example.com master
172.25.40.2 server2.example.com slave candidate master
172.25.40.3 server3.example.com slave
mha
Master 端配置:

yum install perl-DBD-mysql -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

构建免密登陆
ssh-keygen
##生成密钥 ssh-copy-id 172.25.40.2
##给另外两台 mysql 主机分发,这样可以免密连接
ssh-copy-id 172.25.40.3
mysql 主配置文件(/etc/my.cnf)配置

[mysqlnd]
server-id=1

##数据库的唯一标示,不能重复
log-bin=mysql-bin
##二进制记录文件名为 mysql-bin
binlog-do-db=test ##同的库为 test
binlog-ignore-db=mysql ##不同步 mysql
gtid-mode=ON ##打开 gtid 模式
enforce-gtid-consistency=ON##强制使用 gtid 模式
slave-parallel-type=LOGICAL_CLOCK ##打开多线程模式
slave-parallel-workers=16 ##开启 16 个线程
relay_log_info_repository=TABLE
##以表格形式存放 relay-log 信息
relay_log_recovery=ON
rpl_semi_sync_master_enabled=ON ##设置半同步 master 和 slave 开启
rpl_semi_sync_slave_enabled=ON
重新启动两台服务器上的 mysql
/etc/init.d/mysqld restart
进入数据库下载半同步模块

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.50 sec)
mysql> set global rpl_semi_sync_master_enabled=1;
Query OK, 0 rows affected (0.00 sec)

给所创建的认证用户复制权限及 root 用户所有权限的授权

mysql> grant all privileges on *.* to 'root'@'172.168.40.%' identified
'xxxxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)by
mysql> grant replication slave on *.* to 'redhat'@'172.168.40.%' identified by
'xxxxxxxxx';
mysql> grant all on *.* to root@'172.25.40.%' identified by 'xxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.38 sec)

Slave(candidate master)端配置:

yum install perl-DBD-mysql -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

构建免密登陆
ssh-keygen
##生成密钥
ssh-copy-id 172.25.40.1 ##给另外两台 mysql 主机分发,这样可以免密连接
ssh-copy-id 172.25.40.3
mysql 主配置文件(/etc/my.cnf)配置

[mysqlnd]
除过 server-id 是不同的,其他参数均一样
server-id=2

重新启动两台服务器上的 mysql
/etc/init.d/mysqld restart 进入数据库下载半同步模块

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (0.14 sec)
mysql> set global rpl_semi_sync_slave_enabled=1;
Query OK, 0 rows affected (0.00 sec)
mysql> set global read_only=1;

#设置为只读模式,因为是备选 master,所以当
master 宕机时,candidate master 要充当 master,故不用写进配置文件中
Query OK, 0 rows affected (0.00 sec)
给所创建的认证用户复制权限及 root 用户所有权限的授权
mysql> grant all privileges on .to root@’172.25.40.%’ identified by ‘xxxxxxxx’;
##这个密码是 manager 主机配置文件里面所写的密码
Slave 端配置:

yum install perl-DBD-mysql -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

构建免密登陆
ssh-keygen
##生成密钥
ssh-copy-id 172.25.40.1##给另外两台 mysql 主机分发,这样可以免密连接
ssh-copy-id 172.25.40.2
mysql 主配置文件(/etc/my.cnf)配置

[mysqlnd]
除过 server-id 是不同的,其他参数均一样
server-id=3

重新启动两台服务器上的 mysql
/etc/init.d/mysqld restart
进入数据库下载半同步模块

mysql>  install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (0.14 sec)lave_enabled=1;
Query OK, 0 rows affected (0.00 
mysql> set global rpl_semi_sync_slave_enabled=1

给所创建的认证用户复制权限及 root 用户所有权限的授权

mysql> grant all privileges on *.* to 'root'@'172.168.40.%' identified
'xxxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)
by
mysql> grant replication slave on *.* to 'redhat'@'172.168.40.%' identified by
'xxxxxxxx';
mysql> change master to
master_host='172.25.40.1',master_user='redhat',master_passWord='xxxxxxxxxx',
master_auto_position=1;

Mha 主机

yum install perl-* mha4mysql-manager-0.56-0.el6.noarch.rpm -y
mkdir /usr/local/mha

##创建工作目录 workdir

mkdir /etc/mha
cd /etc/mha/

##创建配置文件所在目录

vim app.conf       
 [server default]      
 manager_workdir=/usr/local/mha    
 manager_log=/usr/local/mha/mha.log    
 master_binlog_dir=/var/lib/mysql   
 user=root               ##数据库用户 登陆数据库的用户 ,用于manager监控管理用户和密码       
 password=xxxxxxxx        ##数据库登陆密码   初始化的时候登陆数据库的密码        
 ping_interval=1     
 remote_workdir=/tmp   
 repl_user=redhat            ##复制用户(授权在slave上)用于主从间复制        
 repl_password=xxxxxxxx      ##slave复制用户的密码        ssh_user=root               ##ssh用户   
 [server1]    
 hostname=172.25.40.1   
 port=3306        
 [server2]  
 hostname=172.25.40.2     
 port=3306   
 candidate_master=1          ##备用主机          check_repl_delay=0          ##日至差异大于100M的时候,不做master,两个参数通常一起使用      
 [server3]  
 hostname=172.25.40.3        
 port=3306    
 #no_master=1                ##永远不会作为master

检查MySQL复制状况

masterha_check_repl –conf=/etc/mha/app.cnf 
Tue Apr 24 09:14:45 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Tue Apr 24 09:14:45 2018 - [info] Reading application default configuration from /etc/mha/app.conf..
Tue Apr 24 09:14:45 2018 - [info] Reading server configuration from /etc/mha/app.conf..
Tue Apr 24 09:14:45 2018 - [info] MHA::MasterMonitor version 0.56.
Tue Apr 24 09:14:45 2018 - [info] GTID failover mode = 1
Tue Apr 24 09:14:45 2018 - [info] Dead Servers:
Tue Apr 24 09:14:45 2018 - [info] Alive Servers:
Tue Apr 24 09:14:45 2018 - [info]   172.25.40.1(172.25.40.1:3306)
Tue Apr 24 09:14:45 2018 - [info]   172.25.40.2(172.25.40.2:3306)
Tue Apr 24 09:14:45 2018 - [info]   172.25.40.3(172.25.40.3:3306)
Tue Apr 24 09:14:45 2018 - [info] Alive Slaves:
Tue Apr 24 09:14:45 2018 - [info]   172.25.40.2(172.25.40.2:3306)  Version=5.7.17-log (oldest major version between slaves) log-bin:enabled
Tue Apr 24 09:14:45 2018 - [info]     GTID ON
Tue Apr 24 09:14:45 2018 - [info]     Replicating from 172.25.40.1(172.25.40.1:3306)
Tue Apr 24 09:14:45 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Tue Apr 24 09:14:45 2018 - [info]   172.25.40.3(172.25.40.3:3306)  Version=5.7.17 (oldest major version between slaves) log-bin:disabled
Tue Apr 24 09:14:45 2018 - [info]     GTID ON
Tue Apr 24 09:14:45 2018 - [info]     Replicating from 172.25.40.1(172.25.40.1:3306)
Tue Apr 24 09:14:45 2018 - [info]     Not candidate for the new Master (no_master is set)
Tue Apr 24 09:14:45 2018 - [info] Current Alive Master: 172.25.40.1(172.25.40.1:3306)
Tue Apr 24 09:14:45 2018 - [info] Checking slave configurations..
Tue Apr 24 09:14:45 2018 - [info]  read_only=1 is not set on slave 172.25.40.2(172.25.40.2:3306).
Tue Apr 24 09:14:45 2018 - [info]  read_only=1 is not set on slave 172.25.40.3(172.25.40.3:3306).
Tue Apr 24 09:14:45 2018 - [warning]  log-bin is not set on slave 172.25.40.3(172.25.40.3:3306). This host cannot be a master.
Tue Apr 24 09:14:45 2018 - [info] Checking replication filtering settings..
Tue Apr 24 09:14:45 2018 - [info]  binlog_do_db= , binlog_ignore_db= 
Tue Apr 24 09:14:45 2018 - [info]  Replication filtering check ok.
Tue Apr 24 09:14:46 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
Tue Apr 24 09:14:46 2018 - [info] Checking SSH publickey authentication settings on the current master..
Tue Apr 24 09:14:46 2018 - [info] HealthCheck: SSH to 172.25.40.1 is reachable.
Tue Apr 24 09:14:46 2018 - [info] 
172.25.40.1(172.25.40.1:3306) (current master)
 +--172.25.40.2(172.25.40.2:3306)
 +--172.25.40.3(172.25.40.3:3306)

Tue Apr 24 09:14:46 2018 - [info] Checking replication health on 172.25.40.2..
Tue Apr 24 09:14:46 2018 - [info]  ok.
Tue Apr 24 09:14:46 2018 - [info] Checking replication health on 172.25.40.3..
Tue Apr 24 09:14:46 2018 - [info]  ok.
Tue Apr 24 09:14:46 2018 - [warning] master_ip_failover_script is not defined.
Tue Apr 24 09:14:46 2018 - [warning] shutdown_script is not defined.
Tue Apr 24 09:14:46 2018 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.

您可能感兴趣的文档:

--结束END--

本文标题: Master High Availability 安装配置

本文链接: https://lsjlt.com/news/43688.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Master High Availability 安装配置
    MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。在MySQL 故...
    99+
    2024-04-02
  • kubernetes中Master节点如何安装与配置
    这篇文章主要介绍kubernetes中Master节点如何安装与配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:简介1.kubernetes master节点包含以下组件:kube-apiserver,kube...
    99+
    2023-06-04
  • MongoDB Master/Slaver配置
    接MongoDB快速入门本文主要介绍MongoDB Master/Slaver配置首先创建Mongo Master/home/hrj/mongodb-linux-i686-static-1.6.5/bin/...
    99+
    2024-04-02
  • MySQLmaster-master如何配置
    本篇内容介绍了“MySQLmaster-master如何配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • MySQ 数据库主从同步安装与配置详解(Master/Slave)
    MySQL5.6 数据库主从同步安装与配置详解(Master/Slave) 本篇文章主要介绍了MySQL5.6 数据库主从同步安装与配置详解,具有一定的参考价值,有兴趣的可以了解一下。 安装环境 ...
    99+
    2024-04-02
  • MySQL双主master-master配置的详细方法
    本文主要给大家简单讲讲MySQL双主master-master配置的详细方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL双主master-mas...
    99+
    2024-04-02
  • mysql的master和slave配置
    这篇文章主要介绍“mysql的master和slave配置”,在日常操作中,相信很多人在mysql的master和slave配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • mysql中double master如何配置
    这篇文章给大家分享的是有关mysql中double master如何配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 mysql 的 double ...
    99+
    2024-04-02
  • Mysql中Master-slave如何配置
    小编给大家分享一下Mysql中Master-slave如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 搭建了一下mys...
    99+
    2024-04-02
  • MySql安装配置
    一、准备工作: 1、MySql; 下载地址:https://pan.baidu.com/s/1_jGonvoX8E7JMw1fgA9nZg 提取码:rx9a 二、安装MySql: 1、点击程序运行,选择“自定义”,点击“下一步” 2、选择...
    99+
    2019-04-04
    MySql安装配置
  • mysql5.7.17安装配置
    一、创建msql用户#添加运行mysql的用户,禁止该用户登录系统 [root@openstack-01 ~]# useradd  mysql -s&nbs...
    99+
    2024-04-02
  • jboss6.1安装配置
                         Jboss6.1的用途,配置,使用详解一.....
    99+
    2024-04-02
  • mongodb安装配置
    1.Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据  存储方式,备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),&...
    99+
    2024-04-02
  • Reidis安装配置
    一、Redis介绍redis是一个key-value存储系统,官方站点http://redis.io和memcached类似,但支持数据持久化支持更多value类型,除了和string外,还支持hash、l...
    99+
    2024-04-02
  • tomcat安装配置
    安装Tomcat笔记:软件:jdk:jdk-8u5-linux-i586.gz 下载地址:http://download.oracle.com/otn-pub/java/jdk/8u5-b13/j...
    99+
    2024-04-02
  • Memcached安装配置
    操作系统:CentOS release 6.8 (Final)虚拟机:VM任务:服务与客户端在一台虚拟机主安装和配置。Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库...
    99+
    2024-04-02
  • grafana3.1.0安装配置
    Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB。G...
    99+
    2024-04-02
  • MySQL 安装配置
    MySQL 安装配置 MySQL 是最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。 MySQL由于其体积小、速度快、总体拥有成本低,...
    99+
    2023-09-14
    mysql 数据库
  • 安装配置mariadb
    记录下安装配置mariadb的经历。 环境:ubuntu22 一、apt在线安装 apt代理配置  APT是Ubuntu系统中用于安装和升级软件包的工具,如果本地没有可用的软件包,APT将会连接到远程软件包服务器下载软件包。在某些情况下,用...
    99+
    2023-10-09
    mariadb 数据库
  • 安装与配置
    Python 下载网址 Welcome to Python.org 按照对应的操作系统选择 3、下滑找到3.10.0版本根据电脑配置选择64位或者32位. 注意,有embeddable package和windows installer两...
    99+
    2023-09-01
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作