MHA binlog server

news2024/12/25 16:32:53

GTID模式下切换的时候,默认是不会去Master上获取binlog,如果配置了Binlog Server,MHA机会去binlog-server上获取,下面创建一个binlog server,并验证binlog server能够在主库binlog被清理的情况下提供日志恢复.

搭建binlog_server

创建目录:创建binlog_server用于存放master上的binlog

[root@mha2 binlog_server]# mkdir binlog_server
[root@mha2 binlog_server]# pwd
/export/binlog_server

开启远程备份binlog

nohup mysqlbinlog --no-defaults --read-from-remote-server --raw --result-file=/export/binlog_server/ --host=192.168.10.129 --port=3358 --user=mha --password=abcd1234 --stop-never mysql-bin.000079 &

--raw: 以原始格式输出,而不是解析为SQL语句

--result-file: 本地路径,用于保存binlog

--user=mha: mysql账户,用于连接mysql并备份binlog,需要有replication cilent权限

--stop-never: 不停

mysql-bin.000060: 在master上第一个binlog,从这个binlog开始向后备份

更新配置:配置中添加了[binlog1] 部分,且[server2]添加了no_master=1

binlog server和master不要放在同一个机器,否则主库挂了同时binlog server也挂了;

[server default]
manager_workdir=/export/mha/app1
manager_log=/export/mha/app1/manager.log
master_binlog_dir=/export/data/mysql
log_level=debug
user=mha
password=abcd1234
ping_interval=3
ping_type=INSERT
remote_workdir=/export/mha/app1
ssh_user=root
repl_user=repl
repl_password=abcd1234
 
[server1]
hostname=192.168.10.129
candidate_master=1
port=3358
master_binlog_dir=/export/data/mysql
 
[server2]
no_master=1
hostname=192.168.10.163
port=3358
master_binlog_dir=/export/data/mysql
 
[server3]
hostname=192.168.10.162
port=3358
master_binlog_dir=/export/data/mysql

[binlog1]
hostname=192.168.10.163
master_binlog_dir=/export/binlog_server

查看同步

查看master中的binlog和binlog_server中对比,是否获取了最新的binlog,切master flush的时候从库也会同步更新.

# master
mysql> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000079 |      3699 |
| mysql-bin.000080 |       257 |
| mysql-bin.000081 |       234 |
+------------------+-----------+
3 rows in set (0.00 sec)

# slave
[root@mha2 binlog_server]# ls
mysql-bin.000079  mysql-bin.000080  mysql-bin.000081 

模拟故障

1,slave: stop slave io_thread

2, 开启MHA

3, master: 执行一些事务

mysql> insert into hero3(name,age) values(name,age);
Query OK, 1 row affected (0.03 sec)

mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into hero3(name,age) values(name,age);
Query OK, 1 row affected (0.00 sec)

mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)

mysql> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000079 |      3699 |
| mysql-bin.000080 |       257 |
| mysql-bin.000081 |    123737 |
| mysql-bin.000082 |     89801 |
| mysql-bin.000083 |       281 |
| mysql-bin.000084 |      2667 |
| mysql-bin.000085 |       546 |
| mysql-bin.000086 |       234 |
+------------------+-----------+
8 rows in set (0.00 sec)

4, 查看主从数据差异

# master
mysql> select count(1) from hero3;
+----------+
| count(1) |
+----------+
|     7170 |
+----------+
1 row in set (0.01 sec)

# slave:
mysql> select count(1) from hero3;
+----------+
| count(1) |
+----------+
|     7168 |
+----------+
1 row in set (0.02 sec)

5, 清理主库所有binlog

mysql> purge binary logs to 'mysql-bin.000086';
Query OK, 0 rows affected (0.00 sec)

6, 将主库关闭实例

此时触发故障切换

7, 查看新主从上的数据,同步了刚刚丢失的数据

mysql> select count(1) from hero3;
+----------+
| count(1) |
+----------+
|     7170 |
+----------+
1 row in set (0.00 sec)

8,查看切换日志

From:
192.168.10.129(192.168.10.129:3358) (current master)
 +--192.168.10.163(192.168.10.163:3358)
 +--192.168.10.162(192.168.10.162:3358)

To:
192.168.10.162(192.168.10.162:3358) (new master)
 +--192.168.10.163(192.168.10.163:3358)
on Dec 23 23:58:36 2024 - [info] Fetching binary logs from binlog server 192.168.10.163..
Mon Dec 23 23:58:36 2024 - [info] Executing binlog save command: save_binary_logs --command=save --start_file=mysql-bin.000082  --start_pos=89047 --output_file=/export/mha/app1/saved_binlog_binlog1_20241223235834.binlog --handle_raw_binlog=0 --skip_filter=1 --disable_log_bin=0 --manager_version=0.58 --oldest_version=5.7.19-log  --debug  --binlog_dir=/export/binlog_server 
  Creating /export/mha/app1 if not exists..    ok.
 Concat binary/relay logs from mysql-bin.000082 pos 89047 to mysql-bin.000086 EOF into /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog ..
Executing command: mysqlbinlog --start-position=89047  /export/binlog_server/mysql-bin.000082 >> /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog
Executing command: mysqlbinlog --start-position=4  /export/binlog_server/mysql-bin.000083 >> /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog
Executing command: mysqlbinlog --start-position=4  /export/binlog_server/mysql-bin.000084 >> /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog
Executing command: mysqlbinlog --start-position=4  /export/binlog_server/mysql-bin.000085 >> /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog
Executing command: mysqlbinlog --start-position=4  /export/binlog_server/mysql-bin.000086 >> /export/mha/app1/saved_binlog_binlog1_20241223235834.binlog
 Concat succeeded.
Mon Dec 23 23:58:37 2024 - [info] scp from root@192.168.10.163:/export/mha/app1/saved_binlog_binlog1_20241223235834.binlog to local:/export/mha/app1/saved_binlog_192.168.10.163_binlog1_20241223235834.binlog succeeded.
Mon Dec 23 23:58:37 2024 - [info] End of log messages from 192.168.10.163.
Mon Dec 23 23:58:37 2024 - [info] Saved mysqlbinlog size from 192.168.10.163 is 134787 bytes.
Mon Dec 23 23:58:37 2024 - [info] Checking if super_read_only is defined and turned on..
Mon Dec 23 23:58:37 2024 - [info]  not present or turned off, ignoring.
Mon Dec 23 23:58:37 2024 - [info] Applying differential binlog /export/mha/app1/saved_binlog_192.168.10.163_binlog1_20241223235834.binlog ..
Mon Dec 23 23:58:38 2024 - [info] Differential log apply from binlog server succeeded.
Mon Dec 23 23:58:38 2024 - [info] Getting new master's binlog name and position..

日志中可以看到去访问binlog,获取binlog,并应用binlog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3项目中引入TailwindCSS(图文详情)

Vue3项目中引入TailwindCSS(图文详细) Tailwind CSS 是一个实用工具优先的 CSS 框架,提供丰富的低级类(如 text-center、bg-blue-500),允许开发者通过组合这些类快速构建自定义设计,而无需编写…

web-密码安全口令

目录 一、密码安全概述 二、密码安全现状 三、破解方式 四、暴力破解 五、字典破解 六、密码字典 学习心得: 一、密码安全概述 现在很多地方都是以用户名(账号)和口令(密码)作为鉴权的方式,口令&am…

YOLO11改进-模块-引入空间自适应特征调制网络SAFMN(Spatial Adaptive Feature Modulation Network)

尽管基于深度学习的解决方案在图像超分辨率(SR)中取得了令人瞩目的重建性能,但这些模型通常较大且架构复杂,使其与许多具有计算和内存限制的低功耗设备不兼容。为了克服这些挑战,我们提出了一种用于高效 SR 设计的空间…

神经网络-LeNet

LeNet在1990年被提出,是一系列网络的统称,包括了LeNet1~LeNet5,对于神经网络的学习者来说,大家对下面这个图一定很熟悉,该图是对LeNet的简化展示。 在LeNet中已经提出了卷积层、Pooling层等概念,只是但是由…

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比 目录 VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比; 2.单变量时间序列预测 就是先vmd把变…

联通光猫怎么自己改桥接模式?

环境: 联通光猫 ZXHN F677V9 硬件版本号 V9.0 软件版本号 V9.0.0P1T3 问题描述: 联通光猫怎么自己改桥接模式 家里用的是ZXHN F677V9 光猫,最近又搞了个软路由,想改桥接模式 解决方案: 1.拿到最新超级密码&…

JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中

本文为Oracle数据库JSON学习系列的第一篇,讲述如何将JSON文档存储到数据库中,包括了版本为19c和23ai的情形。 19c中的JSON 先来看一下数据库版本为19c时的情形。 创建表colortab,其中color列的长度设为4000。若color的长度需要设为32767&a…

【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理

文章目录 一、软件下载安装1、Unity官网2、下载Unity Hub 二、修改Unity Hub配置1、设置Unity Hub中文语言2、修改默认存储目录 三、安装unity编辑器1、点击安装编辑器2、版本选择3、关于版本号4、安装模块选择5、等待下载完成自动安装即可6、追加unity和模块 四、许可证管理专…

SAP从入门到放弃系列之委外分包(Subcontracting)-Part1

以前写过一篇委外相关的文章,没有很详细的写。只是一个概念的概述ERP实施-委外业务-委外采购业务 最近看PA教材,遇到了这块内容,就再详细的整理一下SAP关于委外的理论知识。 文章目录 概述分包和物料需求计划 (MRP)委外分包订单分包委外业务…

vue前端报错 ERROR Error The project seems to require yarn but it‘s not installed

当我们项目启动的时候会报错 报错的信息:ERROR Error: The project seems to require yarn but it’s not installed. 解决的办法首先找到右边的文件夹,yarnlock 找打这个文件删除以后进行全局安装 npm install -g yarn

分体空调智能控制系统

空调是建筑中的用能大户,据统计,空调能耗占建筑总能耗的60%,空调节能作为建筑节能减排的重要组成部分,针对空调的监测和控制尤为重要。随着双碳战略的深入推进、数字化技术的快速发展、人们节能意识普遍增强,对空调用电…

Axure RP 8安装(内带安装包)

通过网盘分享的文件:Axure8.0.zip 链接: https://pan.baidu.com/s/195_qy2iiDIcYG4puAudScA 提取码: 6xt8 --来自百度网盘超级会员v1的分享 勾选I Agree 安装完成

如何在centos系统上挂载U盘

在CentOS上挂载NTFS格式的U盘,需要执行一系列步骤,包括识别U盘设备、安装必要的软件、创建挂载点,并最终挂载U盘。以下是在CentOS上挂载NTFS格式U盘的详细步骤: 一、准备工作 确认CentOS版本: 确保你的CentOS系统已经安装并正常运行。不同版本的CentOS在命令和工具方面可能…

闯关leetcode——3158. Find the XOR of Numbers Which Appear Twice

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/find-the-xor-of-numbers-which-appear-twice/description/ 内容 You are given an array nums, where each number in the array appears either once or twice. Return the bitwise XOR of all …

zabbix“专家坐诊”第270期问答

问题一 Q:请问,zabbix 6.0.26 是否支持在 Monitoring|Latest data页面仅通过Tags筛选主机?我尝试了下,发现无法筛选到。 A:这里是标记 要选主机正在旁边选。 Q:我只想筛选tag为xxx的主机,不限定…

Git使用经历

目录 1、先创建文件夹 2、仓库初始化 3、配置gitee用户名和密码 4、克隆指定仓库的中指定分支到本地仓库 5、查看当前所在分支、切换分支 6、查看状态,判断是否有修改 7、把更新的内容添加到缓存区 8、把缓存区的数据提交 9、把数据推送到远程仓库 10、把…

蓝牙协议——音乐启停控制

手机播放音乐 手机暂停音乐 耳机播放音乐 耳机暂停音乐

【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)

最近在忙联通的安全准入测试,很少有时间看CTF了,今晚抽点时间回顾下上周线下的题(期末还没开始复习😢) 感觉做渗透测试一半的时间在和甲方掰扯&水垃圾洞,没啥惊喜感,还是CTF有意思 目录 Mountain ez_zhuawa 图…

信奥赛四种算法描述

#include <iostream> #include <iomanip> using namespace std;// 使用unsigned long long类型来尽量容纳较大的结果&#xff0c;不过实际上这个数值极其巨大&#xff0c;可能最终仍会溢出 // 更好的方式可以考虑使用高精度计算库&#xff08;如GMP等&#xff09;来…

12.19问答解析

概述 某中小型企业有四个部门&#xff0c;分别是市场部、行政部、研发部和工程部&#xff0c;请合理规划IP地址和VLAN&#xff0c;实现企业内部能够互联互通&#xff0c;同时要求市场部、行政部和工程部能够访问外网环境(要求使用OSPF协议)&#xff0c;研发部不能访问外网环境…