不停机修复mysql主从数据同步错误导致服务器磁盘占满问题

news/2024/10/20 15:54:32/

事情的现象:

        线上生产环境mysql服务器采用主从结构。突然告警从库服务器磁盘占用高。经过磁盘空间检查,主要是/mysql/data目录使用100%(直接占满了),进入目录后发现被文件slave-relay-bin.*系列文件占满了。常理数据不会这么大,主库一切正常,磁盘空间也正常。定位问题开始。

1:查看从库的同步状态

show slave status;

 发现如图所示的提示信息,等待磁盘空间,具体错误的原因是从库好像被人修改过数据,导致同步数据过程中数据不一致,所以一直报错,导致日志占满了磁盘空间。

2:那就要手动从主库全部同步一次,这期间还不能停主库的数据库服务(用户都在不间断使用系统),开工

2-1:首先将主库的数据dump出来一定要包含binlog点位信息(如果主从,binlog一定会开启)

mysqldump -udb_user -pdb_password --flush-logs --single-transaction --master-data=2 --all-databases > backup.sql

        其中参数分别表示:

        --flush-logs 代表重新刷写另外一个binlog文件
        --single-transaction 代表开启事物,不锁表导出
        --master-data=2 代表导出的文件头部添加binlog点位信息

2-2:将备份的文件backup.sql拷贝到从库服务器上(可使用scp)

2-3:切换到从库服务器停止同步

        stop slave;

2-4:然后将从库清空,为保险期间我清理了/mysql/data目录下所有的slave-relay-bin.*系列文件,然后对应的业务库删掉重建

2-5:导入主库备份的数据

        source <备份文件路径>

2-6:重置从库同步信息

        reset slave;

2-7:修改从库同步点位信息

CHANGE MASTER TO MASTER_HOST='************',MASTER_Port=***,MASTER_USER='*****',MASTER_PASSWORD='*****',MASTER_LOG_FILE='master-bin.*******',MASTER_LOG_POS=****;

其中点位信息要从备份出的backup.sql文件中查找,在文件头部前50行左右就能看到。然后替换命令中所有的参数为自己的实际参数执行提示修改成功即可。

2-8:开启同步

        start slave;

2-9:检查同步状态

        show slave status\G;       其中\G格式化输出

        只要sql_running和io_running都为yes即可,表示成功。

2-10:检查主库和从库业务表数据是否一致,磁盘空间是否正常。(完工)

大家有什么更好的解决办法欢迎指导交流。

ps:我是个开发,不是专业的运维,有些操作可能比较粗糙。


http://www.ppmy.cn/news/53856.html

相关文章

React18开发总结(完善中)

遇到这样一个问题&#xff0c;初始化时用户登陆后需要获取到用户信息&#xff0c;但是发现获取用户信息这个接口触发了2次&#xff0c;这是不应该的&#xff0c;于是我查阅了一下资料&#xff0c;把自己的笔记记录下来。 还有就是使用mobx遇到的控制台警告问题&#xff0c;也一…

计算机组成原理---第 6 章总线系统

一、总线的概念和结构形态 总线的基本概念 ⑴概述 总线是构成计算机系统的互联机构&#xff0c;是多个系统功能部件之间进行数据传送的公共通路。 ⑵ 分类 总线的分类方式有很多&#xff1a;如被分为外部总线和内部总线、系统总线和非系统总线、片内总线和PCB板级总线、串行总…

【Unity3D插件】Embedded Browser嵌入式浏览器插件使用教程

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 好久没有介绍插件了&#xff0c;今天分享一款比较好用的嵌入式…

@RequestBody和@RequestParam和@PathVariable

RequestBody 写着写着忘记了mvc这几个常用的注解的作用&#xff0c;一时有点凝噎。 为什么get请求不用加RequestBody也能接收到参数&#xff0c;post请求不加RequestBody就接收不到参数&#xff1f; 这是因为HTTP协议规定了请求方式对应的数据传递方式不同。对于GET请求&#x…

2023年MathorCup数学建模C题电商物流网络包裹应急调运与结构优化问题解题全过程

2023年第十三届MathorCup高校数学建模挑战赛 C题 电商物流网络包裹应急调运与结构优化问题 原题再现&#xff1a; 电商物流网络由物流场地&#xff08;接货仓、分拣中心、营业部等&#xff09;和物流场地之间的运输线路组成&#xff0c;如图 1 所示。受节假日和“双十一”、“…

Peach Fuzzer漏洞挖掘实战

概述 本文主要介绍模糊测试技术&#xff0c;开源模糊测试框架Peach Fuzzer&#xff0c;最后使用Peach Fuzzer对Modbus Slave软件进行漏洞挖掘&#xff0c;并成功挖掘到0DAY漏洞。&#xff08;文中涉及的漏洞已提交到国家漏洞库&#xff0c;现已修复&#xff09; 模糊测试技术…

【C++】7. auto和nullptr(c++11)

文章目录 一、auto二、nullptr 一、auto 在C98中&#xff0c;auto是一个存储类说明符&#xff0c;表示变量具有自动存储期&#xff0c;即在函数或块的作用域内创建和销毁。 在C11中&#xff0c;auto是一个类型占位符&#xff0c;表示变量的类型由其初始化器自动推断。 使用如下…

ChatGPT真的有那么牛吗?

ChatGPT真的有那么牛吗&#xff1f;ChatGPT真的有那么牛吗&#xff1f; 作为一款大型语言模型&#xff0c;ChatGPT确实具有很高的自然语言处理和生成能力&#xff0c;可以生成流畅、准确和有逻辑性的语言&#xff0c;而且能够理解和回答广泛的问题。 它是目前最先进和最强大的…