Redian新闻
>
蜻蜓点水binlog

蜻蜓点水binlog

科技



简述

Binlog是记录所有数据库表结构变更以及表数据修改的二进制日志,不会记录SELECT和SHOW这类操作。

Binlog日志是以事件形式记录,还包含语句所执行的消耗时间。

开启Binlog日志有以下两个最重要的使用场景。

主从复制:在主库中开启Binlog功能,这样主库就可以把Binlog传递给从库,从库拿到Binlog后实现数据恢复达到主从数据一致性。
数据恢复:通过mysqlbinlog工具来恢复数据。

状态

初始状态

通过简单的MySQL的数据,就可以看到初始状态,默认mysql5.7是关闭的。如下图所示。

开启状态

开启的时候,需要在配置文件中,设置log-bin变量的值。默认不改变路径,只填写一个名称-mysql-bin。对此值赋值完,变开启了bin-log日志。查阅资料,开启此类日志,会占用服务器百分之一的开销。仅供参考,未求证真伪。


默认路径:/Library/Application\ Support/appsolute/MAMP\ PRO/db/mysql57/

相关参数

在binlog日志中,有一个很重要的参数binlog_format,这个参数规定了日志文件的存储方式,默认为row。其次缓存的大小binlog_cache_size,还有有效期:expire_logs_days。这些均使用默认值,不涉及生产环境的参考值。




查阅日志

小白初次尝试,查阅binlog日志的几种方式,前两种为错误操作,均为乱码不可读,以第三种为正确操作方式,使用专用的mysqlbinlog工具进行读取该日志文件。

  • • 方式一【错误】:

  • • 方式二【错误】:



方式三【正确】:

mysqlbinlog -vv --base64-output=decode-rows mysql-bin.000007

存储模式【binlog_format】

statement模式

表现形式,记录sql语句,但如果是带有时间参数的语句,比如now(),这样的语句在恢复的时候,就是时间错乱。优点是记录数据较少,节省IO,提高性能。

row模式

表现形式,非一般的sql语句,记录数据繁琐,可读性差,不会出现statement模式下的时间错乱的情况,数据量比较庞大。

mixed模式

混合模式是前两种的结合体,系统智能判断使用哪种形式记录。三种方式的对比图:




数据恢复实操

说明

在执行前使用flush logs,产生一个新的日志文件,便于我们实验,方便结果的恢复和阅读,此时产生了的是04日志文件。

实操

在本地数据库blog中建立一张表xc_test,里面添加一条数据。name为123的,制造数据丢失的场景,人工删除这条数据,此时查看日志文件如下:




以行号起始点恢复数据

寻找两个标记,一个begin,一个end。中间为删除操作产生的日志记录。在这两个标记之间,寻找delete最上面的at数是343,最下面的at数为390。日志文件简单分析到这里。也可以在MySQL中执行:"show binlog events in 'mysql-bin.000004'"查阅更方便,阅读更好。

再看日志恢复的命令:mysqlbinlog  --database=要操作的数据库 binlog的名称 --start-position=开始的pos --stop-position=结束的pos| mysql -u登陆名 -p登陆密码 -v 要操作的数据库 分析到这里,如果要回复这条数据,我们需要找到这个条数的插入过程,也就是insert。看下面这个图:




也就是插入的开始位置是468,结束位置是688。按照上面的格式,进行拼接数据如下:mysqlbinlog --database=blog mysql-bin.000004 --start-position=486 --stop-position=688 | mysql -u root -proot -v blog

以时间起始点恢复数据

mysqlbinlog --database=blog mysql-bin.000004 --start-datetime="2022-08-02 10:45:05" --stop-datetime="2022-08-02 14:10:10" | mysql -u root -proot -v blog



bug[Ownership is released on COMMIT or ROLLBACK.]

原因: 设置的起始pos和结束pos点并不是一条完整的mysql事务开启事务结束语

总结:

mysql下命令总结:

show variables like 'binlog%'; # 查看数据库变量
flush logs; # 重新生成一个日志文件
show binlog events in 'mysql-bin.000004' # 查询指定日志文件
show master logs;  # 显示所有日志文件
show master status; #当前的日志文件

E

N

D



Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
iPhone X 256G Black battery health 83% unlockediPhone 6 64gb silver unlocked battery hearlth 80%Google探索全新NLU任务「自然语言评估」,正式面试前让AI帮你热个身!iPhone XR 128g White battery health 82% unlocked盘点波士顿本月大事件,这个九月,波屯怕是有点水逆九大投行|Morgan Stanley 2023 Cross Risk Analyst Programme正在进行中!对话育音堂: 原始、野性和爱的嬉皮士俱乐部|hayami's blog满园花开之 —— Naked Lady红嘴蓝鹊被乌鸦围殴男子呵斥救下:喂了点水,它就飞走了 | 冷兔小报 No.789微信推出自研NLP大规模语言模型WeLM:零/少样本即可完成多种NLP任务,匹敌大其25倍的模型A Top Archaeology Institute Struggles to Hire Archaeologists驾照求助:忘了填log book(手写hard copy,有什么快点的办法补完公里数和时间吗天净沙:伫足观赏云霞纽约小记:只需两日LAPUTA《魔女宅急便》:琪琪与蜻蜓相约的温馨画面!* 俄罗斯星巴克"换皮"开张,logo戴传统头饰,名叫"星咖啡"!《至美在心》书评集萃彭博荣获WatersTechnology年度最佳数据提供商等奖项一日一诗:寂静的岸 / 一下显得那么辽阔 / 没有蛙鸣起落 / 没有蜻蜓 / 立于荷尖儿 / 只有风 | 冰洁:枯 荷蜻蜓突然冲你比心,它的意思是_____哲学入门|JohnLocke哲学获奖导师指导,培养思辨能力,探索人文与科学的奥秘!夏走英伦 D1-D3 温莎 巨石阵 巴斯宜家的新logo,我不敢认杰尼亚也开始卖LOGO系列 明年将会大幅提高广告预算为啥“蜻蜓”的单词是 dragonfly,龙飞?增加Matplotlib画图教程!MLNLP社区Paper Picture Writing Code项目最新更新!Black Adam (2022) Full Movie Download Free 720p, 480p and 1080P一文了解复旦大学NLP实验室的14篇EMNLP 2022长文内容光知道用【Doge】表情,你知道Doge是什么狗么?YOGA Pro 14s高能本i9新配置、YOGA智能眼镜 T1首发价公布[照片] 2022年7月上海兜兜转Plog【vlog】小米12S Pro短时间、纯主观、真实用户之体验警惕疫情反弹!斯里兰卡日增227,9病亡;Dialog上半年亏280亿卢比笔记本续航天花板?AMD不插电的山野试炼Vlog!哥伦比亚5天游:波哥大+锡帕基拉+麦德林、4-6人小众团8天游:卡塔赫纳+加勒比海海盗岛!南美洲 BOGMDE5 BOGCTG8
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。