Mariadb高可用MHA

这篇具有很好参考价值的文章主要介绍了Mariadb高可用MHA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本节主要学习了Mariadb高可用MHA的概述,案例如何构建MHA



提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

1、概念

MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。

MHA 的出现就是解决MySQL 单点的问题。

MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

2、组成

MHA manager    管理节点

MHA node    数据节点

                    每个节点上都需要安装

3、特点

              自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性

              目前MHA支持一主多从架构,最少三台服务,即一主两从

4、工作原理

从宕机崩溃的master 保存二进制日志事件(binlog events);

识别含有最新的更新slave日志

应用差异的中继日志(relay log)到其他的slave

应用从master保存的二进制日志事件

提升一个slave为新的master

使其他的slave连接新的master进行复制

二、搭建

1.ssh免密登录(提前搭建好基础环境:地址,闭防火墙等)

1.1修改主机名并查看地址

192.168.6.3    mgt

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库
192.168.6.4    master

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库
192.168.6.5    slave1

Mariadb高可用MHA,mariadb,数据库

 

Mariadb高可用MHA,mariadb,数据库
192.168.6.6    slave2

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

 1.2:所有节点配置hosts

192.168.115.3    mgt
192.168.115.4    master
192.168.115.5    slave1
192.168.115.6    slave2

在mgt内配置/etc/hosts

Mariadb高可用MHA,mariadb,数据库

 并传输给其他服务器

masterMariadb高可用MHA,mariadb,数据库

 slave1

Mariadb高可用MHA,mariadb,数据库

 slave2

Mariadb高可用MHA,mariadb,数据库

1.3:192.168.115.3

ssh-keygen

Mariadb高可用MHA,mariadb,数据库

for i in 4 5 6;do ssh-copy-id root@192.168.6.$i;done

Mariadb高可用MHA,mariadb,数据库

for i in 6 4 5;do ssh 192.168.6.$i hostname;done或手动

Mariadb高可用MHA,mariadb,数据库

 

4、5、6、地址依次重复该操作

6:         for i in 3 4 5;do ssh 192.168.6.$i hostname;done

Mariadb高可用MHA,mariadb,数据库

5:           for i in 6 4 3;do ssh 192.168.6.$i hostname;done

Mariadb高可用MHA,mariadb,数据库

4:         for i in 6 3 5;do ssh 192.168.6.$i hostname;done

Mariadb高可用MHA,mariadb,数据库

把 yes 都确定掉

Mariadb高可用MHA,mariadb,数据库

2.主从复制

1、安装mariadb数据库并启动

for i in 4 5 6;do ssh 192.168.6.$i yum install -y mariadb mariadb-server  mariadb;done

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

2、配置主从复制

2.1master

vim  /etc/my.cnf

                [mysqld]
                server-id = 20
                log-bin = master-bin
                log-slave-updates = true

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

mysql -e "grant replication slave on *.* to 'myslave'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.5' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.6' identified by '123.com';"

Mariadb高可用MHA,mariadb,数据库

mysql -e "show master status"

Mariadb高可用MHA,mariadb,数据库

2.2slave

slave1

                server-id=30
                log-bin=master-bin
                relay-log=relay-log-bin
                relay-log-index=relay-log-bin.index

Mariadb高可用MHA,mariadb,数据库

 Mariadb高可用MHA,mariadb,数据库

mysql -e "grant replication slave on *.* to 'myslave'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.5' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.6' identified by '123.com';"

Mariadb高可用MHA,mariadb,数据库

 

slave2

                server-id=31
                log-bin=master-bin
                relay-log=relay-log-bin
                relay-log-index=relay-log-bin.index

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

 

mysql -e "grant replication slave on *.* to 'myslave'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.5' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.6.4' identified by '123.com';"

Mariadb高可用MHA,mariadb,数据库

mysql -e "change master to master_host='192.168.115.4',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003',master_log_pos=1166;"

2.3验证

3.MHA安装

所有节点安装perl环境

yum install epel-release -y
yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN

Mariadb高可用MHA,mariadb,数据库

node

所有节点安装node

                tar xf mha4mysql-node-0.57.tar.gz
                cd mha4mysql-node-0.57
                perl Makefile.PL && make && make install

Mariadb高可用MHA,mariadb,数据库

 

验证

cd /usr/local/bin—看到脚本就OK

Mariadb高可用MHA,mariadb,数据库

manager

tar xf mha4mysql-manager-0.57.tar.gz
cd /root/mha4mysql-manager-0.57
perl Makefile.PL && make && make install

Mariadb高可用MHA,mariadb,数据库

cp sample/scripts/master_ip_failover /usr/local/bin/
cp sample/scripts/master_ip_online_change     /usr/local/bin/

Mariadb高可用MHA,mariadb,数据库

脚本说明

                master_ip_failover    自动切换时 VIP 管理的脚本
                master_ip_online_change    在线切换时 vip 的管理
                power_manager    故障发生后关闭主机的脚本
                send_report    因故障切换后发送报警的脚本

配置文件建立

mkdir /etc/masterha

vim /etc/masterha/app1.cnf

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

 mkdir /var/log/masterha/app1

Mariadb高可用MHA,mariadb,数据库

 测试MHA

masterha_check_ssh --conf=/etc/masterha/app1.cnf

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

masterha_check_repl --conf=/etc/masterha/app1.cnf

Mariadb高可用MHA,mariadb,数据库

Mariadb高可用MHA,mariadb,数据库

启动命令

nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

Mariadb高可用MHA,mariadb,数据库

 

启动时masterIP异常—需要工程手动配置VIP

4.测试

                        停用master的mariadb服务

Mariadb高可用MHA,mariadb,数据库

 地址出现

Mariadb高可用MHA,mariadb,数据库

5.故障恢复

修改app1.cnf启动配置    添加master主机配置信息
分别在slave上重新指定master主机及binlog日志同步信息文章来源地址https://www.toymoban.com/news/detail-651415.html


到了这里,关于Mariadb高可用MHA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 安装 MariaDB 数据库

    之前一直使用 MySQL,使用 MySQL8.0 时候,占用内存比较大,储存空间好像也稍微有点大,看到 MariaDB 是用来代替 MySQL 的方案,之前用着也挺得劲,MySQL8.0 以上好像不能去导入低版本的 sql,或者需要改一些东西,但是用着 MariaDB 不用改就可以导入,所以写一下这个的安装 Maria

    2024年02月09日
    浏览(30)
  • MariaDB数据库的主从配置

    首先准备两台可以互相ping通的机器,两台机器可以互为主从,示例:10.210.23.77主服务器 10.20.84.183从服务器 在两台机器上各自安装数据 解压MariaDB安装包;  安装MariaDB依赖包;  启动MariaDB服务  安全配置 # 开始安全配置   ① 输入当前密码,初次安装后是没有密码的,直接回

    2024年02月04日
    浏览(33)
  • MariaDB数据库服务器

    目录 一、什么是数据库? 二、什么是关系型数据库? 三、数据库字符集和排序规则是什么? 四、常用数据类型 五、Mariadb数据库相关配置案例 一、什么是数据库? 数据库(DB)是以一定方式长期存储在计算机硬盘内,能与多个用户共享,具有尽可能小的冗余度、与应用程序

    2024年02月10日
    浏览(28)
  • 使用MariaDB数据库管理系统

    初始化MariaDB服务 //再确认mariadb数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据库的安全性和正常运转,需要做以下5个操作 1.设置root管理员在数据库中的密码值(该密码并非root管理员在系统中的密码,这里的密码值默认应该为空) 2.设置root管理员在数据

    2024年02月19日
    浏览(35)
  • mariadb数据库从入门到精通

    实验环境:yum仓库搭建好 mariadb 是当前流行的Mysql数据库的分支 Mysql原先SUN公司(java)被Orical收购了 Mysql开源免费,所以企业当中的核心数据库是Orical,其余是Mysql mariadb是Mysql数据库的一个分支 1.数据库的安装 由于数据库的登陆不需要密码所以不安全,我们要安全初始化。 密码

    2024年01月21日
    浏览(41)
  • [MariaDB] 数据库统计插件启用和配置

    最近因为需要监控数据库(MySQL/MariaDB)的登陆动作、数据修改等,需要调研一个监控数据库方案。经查询有canal等开源方案,调查过后基本也符合需求;最后查询GPT推荐MariaDB官方插件server audit:初步阅读文档感觉很符合需求,故进行部署验证和测试 基于CentOS7部署最新版本的

    2024年02月02日
    浏览(35)
  • Cpolar内网穿透本地MariaDB数据库

    cpolar内网穿透本地MariaDB数据库,实现外公网环境下使用navicat图形化工具远程连接本地内网的MariaDB数据库 配置MariaDB数据库 安装MariaDB数据库 进入MariaDB数据库官网https://mariadb.com/downloads/community/,然后下载相应的windows版本 下载好后点击安装,出现设置密码界面设置一下密码,mar

    2024年02月06日
    浏览(29)
  • 第十六章 使用MariaDB数据库管理系统

    一、数据库管理系统 1、数据库介绍 数据库是指按照某些特定结构来存储数据资料的数据仓库。在当今这个大数据技术迅速崛起的年代,互联网上每天都会生成海量的数据信息,数据库技术也从最初只能存储简单的表格数据的单一集中存储模式,发展到了现如今存储海量数据

    2024年02月05日
    浏览(37)
  • Linux中常用数据库管理系统之MariaDB

    我们生活在信息化时代,经常要跟数据打交道,它在我们的日常生活中无处不在,比如手机支付,微信聊天,淘宝购物,使用的这些在后台都会对应一个叫数据库的存在。数据库就是存储这些数据资料的仓库,那么这些数据是如何被管理的呢?今天我们就来一起了解下数据库

    2024年02月12日
    浏览(28)
  • 网络安全 Day22-mariadb数据库用户管理

    用户的格式: 用户@主机范围 合起来才算一个用户 授权主机范围 只能从本机访问: localhost 或 127.0.0.1 或 10.0.0.166 (指定IP) 授权整个网段: 授权10.0.0.1–10.0.0.254: 10.0.0.0/24 或 10.0.0.% 授权192.168.0.1—192.168.254.254: 192.168.% 严令 禁止 直接使用 % 用户增删改查 创建用户 语法: create user b

    2024年02月14日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包