设为首页 收藏本站
查看: 716|回复: 0

[经验分享] mysqbinlog解析二进制日志测试随笔

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-21 09:45:05 | 显示全部楼层 |阅读模式
在此之前需要了解二进制日志的格式:
    row  --行
    statement  --语句
    Mixed  --混合
1、当前的binlog_format = statement
mysql> show variables like 'binlog_format';
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
对库表进行插入数据操作:
insert into tb2 values (3,'son')
查看当前格式下的二进制日志内容:
# mysqlbinlog /mydata/master.000001
[iyunv@localhost mydata]# mysqlbinlog --start-position=851 --stop-position=957
[iyunv@localhost mydata]# mysqlbinlog --base64-output=decode-rows  --start-position=851 --stop-position=957 /mydata/master.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 851
#161118  0:59:38 server id 1  end_log_pos 957 CRC32 0xd89c9cd3         Query        thread_id=2        exec_time=0        error_code=0
use `test`/*!*/;
SET TIMESTAMP=1479401978/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
insert into tb2 values (3,'son')
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[iyunv@localhost mydata]#
2、binlog_format=row
mysql> show variables like 'binlog_format';
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
同样对表进行插入和删除的操作
mysql> insert into tb2 values(2,'helen');
mysql> delete from tb2 where id = 1 ;
查看二进制日志:   直观的反馈就是你压根就看不到你刚才所执行过的语句,只有些许关键字如insert 、delete表达了你动作的性质 。
[iyunv@localhost mydata]# mysqlbinlog --base64-output=decode-row --start-position=120  master.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 120
#161118  1:14:58 server id 1  end_log_pos 192 CRC32 0x8882b974         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479402898/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 192
#161118  1:14:58 server id 1  end_log_pos 241 CRC32 0xa120e7f3         Table_map: `test`.`tb2` mapped to number 71
# at 241
#161118  1:14:58 server id 1  end_log_pos 287 CRC32 0x6da9f0d9         Write_rows: table id 71 flags: STMT_END_F
# at 287
#161118  1:14:58 server id 1  end_log_pos 318 CRC32 0x952ced1d         Xid = 16
COMMIT/*!*/;
# at 318
#161118  1:15:06 server id 1  end_log_pos 390 CRC32 0x37f19e7d         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479402906/*!*/;
BEGIN
/*!*/;
# at 390
#161118  1:15:06 server id 1  end_log_pos 439 CRC32 0x8f0bf21e         Table_map: `test`.`tb2` mapped to number 71
# at 439
#161118  1:15:06 server id 1  end_log_pos 483 CRC32 0x9fe2e907         Write_rows: table id 71 flags: STMT_END_F
# at 483
#161118  1:15:06 server id 1  end_log_pos 514 CRC32 0xa7ed825e         Xid = 17
COMMIT/*!*/;
# at 514
#161118  1:17:13 server id 1  end_log_pos 586 CRC32 0x3e2b7b53         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479403033/*!*/;
BEGIN
/*!*/;
# at 586
#161118  1:17:13 server id 1  end_log_pos 635 CRC32 0xc5b403fd         Table_map: `test`.`tb2` mapped to number 71
# at 635
#161118  1:17:13 server id 1  end_log_pos 679 CRC32 0xdc5e885f         Delete_rows: table id 71 flags: STMT_END_F
# at 679
#161118  1:17:13 server id 1  end_log_pos 710 CRC32 0x2df182e5         Xid = 18
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[iyunv@localhost mydata]#
3、binlog_format = MIXED
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+
对test库中的表tb2做了如下动作:
mysql> insert into tb2 values(2,'helen');
mysql> delete from tb2 where id = 1 ;
查看当前的二进制日志:
[iyunv@localhost mydata]# mysqlbinlog --base64-output=decode-rows  --start-position=120 /mydata/master.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 120
#161118  1:21:27 server id 1  end_log_pos 199 CRC32 0x6e07aaac         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479403287/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 199
#161118  1:21:27 server id 1  end_log_pos 306 CRC32 0xbc338f2d         Query        thread_id=1        exec_time=0        error_code=0
use `test`/*!*/;
SET TIMESTAMP=1479403287/*!*/;
insert into tb2 values(2,'helen')
/*!*/;
# at 306
#161118  1:21:27 server id 1  end_log_pos 337 CRC32 0xe0c099a6         Xid = 12
COMMIT/*!*/;
# at 337
#161118  1:21:58 server id 1  end_log_pos 416 CRC32 0x21caca8f         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479403318/*!*/;
BEGIN
/*!*/;
# at 416
#161118  1:21:58 server id 1  end_log_pos 518 CRC32 0x08994991         Query        thread_id=1        exec_time=0        error_code=0
SET TIMESTAMP=1479403318/*!*/;
delete from tb2 where id = 1
/*!*/;
# at 518
#161118  1:21:58 server id 1  end_log_pos 549 CRC32 0xb0068443         Xid = 13
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[iyunv@localhost mydata]#
总结:
binlog_format = MIXED     ,默认为STATEMENT
expire_logs_days = 7        ,默认为0       
max_binlog_size = 100M  ,默认是1G
binlog_cache_size = 32M   ,默认值


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303275-1-1.html 上篇帖子: MySql避免重复插入记录方法(ignore,Replace,on duplicate key update,no... 下篇帖子: mysql问题解决 二进制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表