当前位置: 首页 > news >正文

Mysql的Binlog的数据样例

   Binlog(Binary Log)是 MySQL 中的二进制日志,记录了所有更改数据库的操作,包括数据的插入、更新和删除,它是主从复制、数据恢复和审计的重要来源。

以下是一些常见的 Binlog 数据样本和它们的结构:

1. 基本结构

 Binlog 内容主要由事件组成,每个事件描述了一个数据库操作。例如:

  • INSERT 事件: 记录了一条新的数据插入。
  • UPDATE 事件: 记录了现有数据的更新。
  • DELETE 事件: 记录了一条数据的删除。

2. 样本数据

  以下是一些具体的 Binlog 事件样本。假设我们有一个用户表 users :

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT 示例

 当插入数据时,binlog 会记录如下事件:

# at 103
#210826 10:23:05 server id 1  end_log_pos 147 CRC32 0xabc12345
INSERT INTO `users` (`name`, `email`) VALUES ('Alice', 'alice@example.com');# at 147
#210826 10:23:05 server id 1  end_log_pos 178 CRC32 0xdef67890
INSERT INTO `users` (`name`, `email`) VALUES ('Bob', 'bob@example.com');
  • 第一个条目:

    • INSERT INTO users(name, email) VALUES ('Alice', 'alice@example.com');
    • 记录了 Alice 的插入事件。
  • 第二个条目:

    • INSERT INTO users(name, email) VALUES ('Bob', 'bob@example.com');
    • 记录了 Bob 的插入事件。
UPDATE 示例

  当更新数据时,binlog 会记录如下事件:

# at 178
#210826 10:25:05 server id 1  end_log_pos 210 CRC32 0xabc12345
UPDATE `users` SET `email` = 'alice_updated@example.com' WHERE `name` = 'Alice';
  • 更新事件:
    • UPDATE users SET email = 'alice_updated@example.com' WHERE name = 'Alice';
    • 记录了对 Alice 的邮件地址进行更新的事件。
DELETE 示例

当删除数据时,binlog 会记录如下事件:

# at 210
#210826 10:26:05 server id 1  end_log_pos 249 CRC32 0xdef67890
DELETE FROM `users` WHERE `name` = 'Bob';
  • 删除事件:
    • DELETE FROM users WHERE name = 'Bob';
    • 记录了删除 Bob 的事件。

3. 如何查看 Binlog

  若要查看 MySQL 的二进制日志,可以使用 mysqlbinlog 工具。例如:

mysqlbinlog /var/lib/mysql/mysql-bin.000001

该命令将会打印出指定 Binlog 文件的内容。

注意事项

  • 二进制日志格式: Binlog 有几种不同的格式,最常用的是 ROWSTATEMENT 和 MIXED

    • ROW: 记录行级变化;
    • STATEMENT: 记录执行的 SQL 语句;
    • MIXED: 结合了前两者的特征。
  • 数据一致性: 使用 Binlog 进行数据恢复时,必须保证数据的一致性,尤其是在使用 ROW 格式时。

总结

    MySQL 的 Binlog 是记录数据库更改的重要工具,它包含了丰富的事件信息,可以用于数据恢复、复制和审计。当使用 mysqlbinlog 工具时,可以获取清晰的操作记录,有助于监控和分析数据库活动。

http://www.lryc.cn/news/426076.html

相关文章:

  • 基于VS2022+Qt5+C++的串口助手开发
  • Mysql之视图
  • 【开端】Java 分页工具类运用
  • leetcode每日一题48
  • 源码工具文档手册
  • hive之greatest和least函数
  • C:数组传参的本质
  • excel 2019版本的index match搜索功能
  • 【问题解决】apache.poi 3.1.4版本升级到 5.2.3,导出文件报错版本无法解析
  • (亲测有效)SpringBoot项目集成腾讯云COS对象存储(2)
  • 界面优化 - QSS
  • 实现基于TCP协议的服务器与客户机间简单通信
  • 在uniapp中使用navigator.MediaDevices.getUserMedia()拍照并上传服务器
  • PULLUP
  • 【无标题】乐天HIQ壁挂炉使用
  • 使用Python编写AI程序,让机器变得更智能
  • VScode + PlatformIO 和 Keil 开发 STM32
  • PostgreSQL 练习 ---- psql 新增连接参数
  • pdf翻译软件哪个好用?多语言轻松转
  • 培训第三十天(ansible模块的使用)
  • 关于Log4net的使用记录——无法生成日志文件输出
  • golang Kratos 概念
  • 入门 MySQL 数据库:基础指南
  • 【Hexo系列】【3】使用GitHub自带的自定义域名解析
  • 智能监控,无忧仓储:EasyCVR视频汇聚+AI智能分享技术为药品仓库安全保驾护航
  • 本地创建PyPI镜像
  • 使用 Elasticsearch RestHighLevelClient 进行查询
  • 【jvm】符号引用
  • 征服云端:Java微服务与Docker容器化之旅
  • python 如何实现执行selenium自动化测试用例自动录屏?