社区
MySQL
帖子详情
binlog为什么没有记录一些insert操作呢
不老书生
2012-10-18 01:52:18
两台服务器之间的mysql做了主从配置,但是发现有两张表主从不一致,分析发现主mysql的binlog里面少了一些insert语句,结果从表中就没有这部分数据,另外奇怪的是,并不是所有的insert都没有,而是部分,也就是说,对主mysql的两张表的部分insert操作没有记录,结果这些数据主表有,从表却没有。
...全文
1217
10
打赏
收藏
binlog为什么没有记录一些insert操作呢
两台服务器之间的mysql做了主从配置,但是发现有两张表主从不一致,分析发现主mysql的binlog里面少了一些insert语句,结果从表中就没有这部分数据,另外奇怪的是,并不是所有的insert都没有,而是部分,也就是说,对主mysql的两张表的部分insert操作没有记录,结果这些数据主表有,从表却没有。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
九月茅
2015-03-03
打赏
举报
回复
Replicate_Ignore_DB 肯定是这里设置了,所以被过滤了,不录入到binlog里面了啊。
loveflea
2012-10-28
打赏
举报
回复
指定数据局同步
假如您配置的是同步数据库database-A
但您连接默认的数据库不是database-A,如下面的插入的语句
use database-B;
insert into database-A.table values(...)
这种binlog是不会记录到database-A中的;所以主从就不一致
全部同步则没有这个问题
[Quote=引用 4 楼 的回复:]
奇怪,同步设置里去掉指定同步哪个数据库的设置(现在是同步所有数据库),问题就没了,那两张表的数据也完全同步了。
这不是不能同步指定数据库了吗?
求解啊!!!
[/Quote]
lover007
2012-10-25
打赏
举报
回复
复制的过滤主要有2种方式:
1,在主服务器在把事件从进二制日志中过滤掉,相关的参数是:binlog_do_db和binlog_ignore_db。
2,在从服务器上把事件从中继日志中过滤掉,相关的参数是replicate_*。
复制只能扩展读取,不能扩展写入,对数据进行分区可以进行扩展写入。
复制常见的问题:
一,从服务器到底落后于主服务器多少?用Maatkit工具里面的mk-heartbeat脚本。
二,如何确定主从服务器的数据是否一致?用Maatkit工具里面的mk-table-checksum脚本。
复制的优化:
在mysql复制环境中,有8个参数可以让我们控制,需要复制或需要忽略不进行复制的DB或table分别为:
下面二项需要在Master上设置:
Binlog_Do_DB:设定哪些数据库需要记录Binlog
Binlog_Ignore_DB:设定哪里数据库不需要记录Binlog
优点是Master端的Binlog记录所带来的Io量减少,网络IO减少,还会让slave端的IO线程,SQL线程减少,从而大幅提高复制性能,
缺点是mysql判断是否需要复制某个事件不是根据产生该事件的查询所在的DB,而是根据执行查询时刻所在的默认数据库(也就是登录时指定的库名或运行"use database"中指定的DB),只有当前默认DB和配置中所设定的DB完全吻合时IO线程才会将该事件读取给slave的IO线程.所以,如果在默认DB和设定须要复制的DB不一样的情况下改变了须要复制的DB中某个Table中的数据,该事件是不会被复制到Slave中去的,这样就会造成Slave端的数据和Master的数据不一致.同样,在默认的数据库下更改了不须要复制的数据库中的数据,则会被复制到slave端,当slave端并没有该数据库时,则会造成复制出错而停止.
下面六项需要在slave上设置:
Replicate_Do_DB:设定需要复制的数据库,多个DB用逗号分隔
Replicate_Ignore_DB:设定可以忽略的数据库.
Replicate_Do_Table:设定需要复制的Table
Replicate_Ignore_Table:设定可以忽略的Table
Replicate_Wild_Do_Table:功能同Replicate_Do_Table,但可以带通配符来进行设置。
Replicate_Wild_Ignore_Table:功能同Replicate_Do_Table,功能同Replicate_Ignore_Table,可以带通配符。
优点是在slave端设置复制过滤机制,可以保证不会出现因为默认的数据库问题而造成Slave和Master数据不一致或复制出错的问题.
缺点是性能方面比在Master端差一些.原因在于:不管是否须要复制,事件都会被IO线程读取到Slave端,这样不仅增加了网络IO量,也给Slave端的IO线程增加了Relay Log的写入量.
不老书生
2012-10-23
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
主从配置有问题,当初的配置是否成功。
[/Quote]
当初的配置是成功的,都能执行,只是里面有2张表的部分数据不能同步。
我们就配置成功后运行,开始检查一些表都正常同步了,以为没问题。后来查到有2张表的一部分数据没同步,就是说这2张表的另一部分数据也是能正常同步的,很奇怪。
现在是把制定同步的数据库配置去掉了,现在是同步所有数据库了(总共有两个数据库,其中一个本事不需要同步的),但是数据都能正常同步了。
Rotel-刘志东
2012-10-19
打赏
举报
回复
主从配置有问题,当初的配置是否成功。
ACMAIN_CHM
2012-10-18
打赏
举报
回复
是否当时的主从有问题?
不老书生
2012-10-18
打赏
举报
回复
奇怪,同步设置里去掉指定同步哪个数据库的设置(现在是同步所有数据库),问题就没了,那两张表的数据也完全同步了。
这不是不能同步指定数据库了吗?
求解啊!!!
rucypli
2012-10-18
打赏
举报
回复
还没碰到过master插入数据 而binlog没有记录的,而且还是只针对特定一个表没有记录binlog
能重现吗 不能重现先把数据整同步
不老书生
2012-10-18
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
你说的这种情况基本不太可能
请确定主从表结构完全一致,并且show slave status正常
[/Quote]
您好!从表是主表备份恢复的,status正常,因为其他所有表和数据都是能够正常实时备份到从表的,就有两张表的部分插入数据不正常。查了很久才发现是一些insert操作没有记录到binlog文件里,所以无法同步到从机。
首先是binlog里就没有部分insert,感觉跟主从同步不同步还没有关系。
挠头好几天了,也没有解决思路。希望高手指点
rucypli
2012-10-18
打赏
举报
回复
你说的这种情况基本不太可能
请确定主从表结构完全一致,并且show slave status正常
mysql不
记录
bin
log
,
bin
log
为什么
没有
记录
一些
insert
操作
呢
复制的过滤主要有2种方式:1,在主服务器在把事件从进二制日志中过滤掉,相关的参数是:
bin
log
_do_db和
bin
log
_ignore_db。2,在从服务器上把事件从中继日志中过滤掉,相关的参数是replicate_*。复制只能扩展读取,不...
bin
log
日志中
没有
insert
的
记录
日志中有create、drop的
记录
,但是
没有
insert
的
记录
。 解决方法: 登录mysql后,设置
bin
log
的
记录
格式: set
bin
log
_format=statement; 然后,最好在my.ini中添加:
bin
log
_format=statement
mysql
bin
log
记录
insert
update delete的
记录
方式与flink sql不一样
查看
insert
,update,delete在mysql
bin
log
中是如何进行
记录
的 在flink sql中,update会转化为一条delete和一条
insert
, 故想看看在mysql
bin
log
的
记录
方式
mysql中的
bin
log
:
以及表数据的修改(
INSERT
、UPDATE、DELETE)的二进制文件,,
bin
log
不会
记录
查询相关的
操作
,因为这类
操作
对于表的结构和数据本省
没有
进行修改.这些查询
操作
是可以通过查看系统通用日志来查看相关语句.
bin
log
的主要...
统计
bin
log
日志中
INSERT
/UPDATE/DELETE 事件摘要
工作中经常会遇到此类需求,如统计
bin
log
中是否存大事物、对事物事件摘要进行统计(事物涉及了那些表表、事物执行时间是什么时候、是更新
操作
多还是删除
操作
多),以下awk 脚本,它将使用 mysql
bin
log
输出并从基于...
MySQL
57,063
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章