Mysql Binlog

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 二进制log,别于数据库引擎的redo log。

Binlog日志介绍


二进制log,别于数据库引擎的redo log。

binlog记录记录DML DDL 。20210102161538773.png

Binlog的记录模式


20210102161813545.pngstatement 有点像redis的 rdb持久化。

Binlog的文件结构


2021010216184749.png

2021010216200454.png这个log的格式了解即可,查看log时再来查询。

Binlog的写入机制


2021010300101178.png

Binlog 文件操作


如何做到删库而不跑路..............

binlog状态查看 & 开启binlog功能


windows 的mysql配置文件是my.ini .

linux下的mysql配置文件是 my.cnf。

2021010300153774.png查看binlog是否开启、binlog目录、

mysql> show variables like '%log_bin%'
    -> ;
+---------------------------------+--------------------------------+
| Variable_name                   | Value                          |
+---------------------------------+--------------------------------+
| log_bin                         | ON                             |
| log_bin_basename                | /var/lib/mysql/mysql-bin       |
| log_bin_index                   | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF                            |
| log_bin_use_v1_row_events       | OFF                            |
| sql_log_bin                     | ON                             |
+---------------------------------+--------------------------------+
6 rows in set (0.00 sec)

查看binlog命令

mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000343 | 1073742436 |
| mysql-bin.000344 | 1073829002 |
| mysql-bin.000345 | 1073742690 |
| mysql-bin.000346 | 1073747797 |
| mysql-bin.000347 | 1073742425 |
| mysql-bin.000348 | 1073755538 |
| mysql-bin.000349 |  326803210 |
+------------------+------------+
7 rows in set (0.00 sec)
mysql> show master logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000343 | 1073742436 |
| mysql-bin.000344 | 1073829002 |
| mysql-bin.000345 | 1073742690 |
| mysql-bin.000346 | 1073747797 |
| mysql-bin.000347 | 1073742425 |
| mysql-bin.000348 | 1073755538 |
| mysql-bin.000349 |  326804487 |
+------------------+------------+
7 rows in set (0.00 sec)

使用mysq lbinlog恢复数据


使用mysqlbinlog 把sql文本dump出来直接用编辑器打开。

 ~]# locate mysql-bin.000348
/var/lib/mysql/mysql-bin.000348
 ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000348 > /opt/0103.sql
 ~]# ll /opt/ |grep 0103
-rw-r--r--  1 root   root     1296229905 Jan  3 00:34 0103.sql
 ~]# ll -ths /opt/ |grep 0103
1.3G -rw-r--r--  1 root   root     1.3G Jan  3 00:34 0103.sql

默认大小是1.3G.

删库了,该跑路了。不用,冷静思考不要慌。

先确认一下binlog在不在,现存哪些日志。

1、show master logs;

查看binlog内容

2、show binlog events in  '';

红色框的位置就是恢复的开始和结束位置。

3、使用mysqlbinlog恢复

mysqlbinlog

mysqldump: 定期全部备份数据库,mysqlbinlog可以做增量备份和数据恢复

删除binlog


binlog超过几天自动删除:

mysql> show variables like '%expire_logs%'
    -> ;
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 7     |
+------------------+-------+
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
197 4
|
2月前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
167 2
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
3天前
|
消息中间件 canal 关系型数据库
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
29 11
|
2月前
|
关系型数据库 MySQL Shell
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
|
2月前
|
关系型数据库 MySQL 数据库
MySQL回滚工具:binlog 闪回工具 MyFlash工具
MySQL回滚工具:binlog 闪回工具 MyFlash工具
|
2月前
|
监控 关系型数据库 MySQL
MySQL如何快速获取binlog的开始时间和结束时间
【8月更文挑战第17天】在MySQL中快速获取binlog的开始与结束时间可通过多种途径:1) 使用`mysqlbinlog`结合`head`和`tail`命令查看单个或多个binlog文件的时间范围;2) 查询`information_schema.binlog_events`表获取近似的开始与结束时间戳;3) 利用第三方工具如Percona Toolkit的`pt-mysql-summary`获取binlog信息。选择适当方法前应考虑操作环境及数据安全性。
150 2
|
2月前
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
34 1
|
3月前
|
关系型数据库 MySQL Java
|
2月前
|
关系型数据库 MySQL
清理MySQL的binlog日志
清理MySQL的binlog日志
222 0

热门文章

最新文章

下一篇
无影云桌面