问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql主主同步,从库不同步应该怎么解决

发布网友 发布时间:2022-04-25 12:12

我来回答

1个回答

热心网友 时间:2022-04-07 17:48

由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类
1:备库写数据
2:执行non-deterministic query
3:回滚掺杂事务表和非事务表的事务
4:binlog或者relay log数据损坏
数据不同步给应用带来的危害是致命的,当出现主从数据不一致的情况,常见的应对方法是先把从库下线,然后找个半夜三更的时间把应用停掉,重新执行同步,如果数据库的体积十分庞大,那工作量可想而知,会让人崩溃。本文介绍使用percona-toolkit工具对mysql主从数据库的同步状态进行检查和重新同步。
一:安装percona-toolkit

二:修改mysql 的binlog格式binlog_format参数为row格式
mysql binlog日志有三种格式,分别为Statement, Mixed,以及ROW!
1.Statement:
每一条会修改数据的sql都会记录在binlog中。
优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter表等操作,ROW格式会产生大量日志,因此在考虑是否使用ROW格式日志时应该跟据应用的实际情况,其所产生的日志量会增加多少,以及带来的IO性能问题。)
缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行时候相同 的结果。另外mysql 的复制,像一些特定函数功能,slave可与master上要保持一致会有很多相关问题(如sleep()函数, last_insert_id(),以及user-defined functions(udf)会出现问题).
2.Row
不记录sql语句上下文相关信息,仅保存哪条记录被修改。
优点: binlog中可以不记录执行的sql语句的上下文相关的信息,仅需要记录那一条记录被修改成什么了。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题
缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容,比如一条update语句,修改多条记录,则binlog中每一条修改都会有记录,这样造成binlog日志量会很大,特别是当执行alter table之类的语句的时候,由于表结构修改,每条记录都发生改变,那么该表每一条记录都会记录到日志中。
3.Mixed
是以上两种level的混合使用,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种.新版本的MySQL中队row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录。至于update或者delete等修改数据的语句,还是会记录所有行的变更。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...A利用我的房子注册公司后退租并没办理注销公司。影响我再次出租。怎... ...公司要注销了,我们买的房子没签合同,房款交完了,现在怎么办?_百度... 目字旁的有哪些字跟木有关 求一部动漫讲述了城市使环境变差,女主和男主是青梅竹马,为了找出破坏... 怎样看一个女人是不是动情了? 企业写字楼如何聚气聚财? 神州数码通用软件(北京)有限公司电话是多少? 神州数码集团股份有限公司电话是多少? 请问神州数码客服电话是什么? 请问地下城与勇士50级的狂暴者用什么装备最好!!! 怎么检测mysql主从数据一致性 ...跨地域以前所签合同无效,我在江苏借的来分期,算跨地域嘛?意思... MySQL主从复制:Slave_SQL_Running:No 来分期怎么知道我用的新号码 mysql主从不同步,部分表中的数据没有在从库中同步 柳州市的来分期公司在什么地方? 怎么解决 Slave_IO_Running: No?急啊 mysql主从不同步怎么办 好分期总部公司地址在哪里? MySQL主从复制:Slave_SQL_Running:No是怎么回事? 云闪付怎么申请收款码? 作者:铁凝简介 恐怖片《红衣小女孩2》好看在哪里? 红衣男孩的故事,谁了解,请说一说 小时候看过一本很厚的童话集,里面很多故事,插画是白描的黑白手法,里 ... 找一本蓝色硬皮童话书,书的目录是按国家分的,故事很多,字很小,80后... 有本童话故事书 说的是几个仙女来精灵村做客,有红衣蓝衣黑衣仙女 胖仙女... 小红帽这个故事环境描写是什么? 格林童话故事 文字版不要视频至少10个知名故事 有一本童话书 里面讲的全是公主与王子的故事 是红皮的书,具体叫什么不... ...slave启动后查看报错 Slave_IO_Running: No Last_IO_Errno: 1593... 请问配置mysql 5.6数据库主从数据库同步时,如何处理master-host = 192... 关于mysql的主从同步问题,slave老是出错 Mysql主从复制的问题 如何解决MySQL主从同步错误的SQL 关于mysql 主从复制的错误 mysql怎么实现主从复制 蚂蚁为什么会出现这种情况,外面没有食物,大规模出动。 床上没有食物,没有潮湿,为什么蚂蚁又跑到床上去? 蚂蚁群体困在地堡30几年,没食物没蚁后,是如何存活下来的呢?_百度知 ... 为什么我家里有很多蚂蚁 桌上没有甜食为什么有蚂蚁 ...床上吃东西,睡一觉上班回来,枕头上怎么总是有蚂蚁? 一群蚂蚁聚在一起,那是在干什么?地上什么食物也没有。但是有一大群蚂蚁... 不知道哪里来的蚂蚁,住的宿舍,床上没有任何东西。偶尔来一两只,已经... 办公桌上偶尔会有很多蚂蚁、怎么会有呢?又没有吃什么东西、怎样才能消灭... 申请的UL证书一般大概多少钱,UL申请的费用 蓝牙音箱申请UL认证多少钱 英国ul认证费用大概多少 美国UL认证申请需要多少费用