大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL

点一下关注吧!!!非常感谢!!持续更新!!!----------------------Java篇开始了!---------* MyBatis 更新完毕* 目前开始更新 Spring,一起深入浅出!目前已经更新到了:---------* Hadoop(已更完)* HDFS(已更完)* MapReduce(已更完)* Hive(已更完)* Flume(已更完)* Sqoop(已更完)* Zookeeper(已更完)* HBase(已更完)* Redis (已更完)* Kafka(已更完)* Spark(已更完)* Flink(已更完)* ClickHouse(已更完)* Kudu(已更完)* Druid(已更完)* Kylin(已更完)* Elasticsearch(已更完)* DataX(已更完)* Tez(已更完)* 数据挖掘(已更完)* Prometheus(已更完)* Grafana(已更完)* 离线数仓(已更完)* 实时数仓(正在更新...)章节内容----* Canal 工作原理* 工作流程 MySQL* Binglog基本介绍配置 MySQL 的 binlog-----------------### 基本介绍MySQL 的二进制日志(Binary Log,简称 binlog)是 MySQL 数据库中的一种日志文件类型,它记录了对数据库执行的所有更改操作(不包括 SELECT 和 SHOW 等查询操作)。它主要用于数据恢复、复制和审计等场景。### Binlog 的作用* 数据恢复:在数据库崩溃或误操作导致数据丢失时,可以通过 binlog 重放来恢复数据。* 主从复制:Binlog 是 MySQL 主从复制机制的核心,通过将主库的 binlog 传输到从库并重放,从而实现数据同步。* 数据审计:记录了所有数据更改的具体时间和操作人,便于审计与分析。* 增量备份:Binlog 支持记录增量数据变化,结合快照备份,可以快速恢复到指定时间点。### Binlog 的工作原理* 事件记录:Binlog 将每一个对数据的更改操作记录为"事件"(Event),按时间顺序存储。* 日志格式:记录的数据包含事务 ID、表名、变更类型(INSERT、UPDATE、DELETE)、具体变更内容等。* 写入过程:当用户执行事务时,数据变更先写入 binlog 缓冲区,事务提交后刷新到 binlog 文件。* 日志滚动:Binlog 文件会按配置大小或时间定期轮转生成新的日志文件,并删除旧日志(根据配置)。### Binlog 的日志格式#### STATEMENT 模式记录 SQL 语句。 优点:日志较小。 缺点:依赖环境,某些 SQL 执行结果可能不一致。#### ROW 模式记录具体的行变化。 优点:安全可靠,适合复制。 缺点:日志较大。#### MIXED 模式混合模式,自动选择最合适的模式(一般以 ROW 为主)。### 常见命令是否启用binlog日志 show variables like 'log_bin'; 执行结果如下图所示: #### 查看binlog类型 show global variables like 'binlog_format'; 执行结果如下图所示: #### 查看详细的日志配置信息 show global variables like '%log%'; 执行结果如下图所示: #### mysql数据存储目录 show variables like '%dir%'; 执行结果如下图所示: #### 查看binlog的目录 show global variables like "%log_bin%"; 执行结果如下图所示: #### 查看当前服务器使用的biglog文件及大小 show binary logs; 执行结果如下图所示: #### 查看最新一个binlog日志文件名称和Position show master status; 执行结果如下图所示: #### 查询binlog 变动信息 show binlog events; 执行结果如下图所示: 修改MySQL-------在 MySQL 中,需要先开启 binlog 写入功能,配置 binlog-format 为 ROW 模式。 vim /etc/my.cnf.d/mariadb-server.cnf 我们对应的修改为: mysqld # 配置 MySQL replaction 需要定义,不要和 Canal 的 slaveId 重复 server-id=1 # 开启 binlog log-bin=mysql-bin # 选择 ROW 模式 binlog-format=ROW # dwshow是数据库的名称 binlog-do-db=dwshow 修改内容如下所示: ### 重启MySQL修改后需要重启 MySQL,只有重启之后配置才能生效。 systemctl restart mariadb cd /var/lib/mysql ll 可以看到如下的内容: ### 配置授权授权 Canal 链接 MySQL 账号具有作为 MySQL Slave的权限,如果已有账户可以直接 Grant。 我们需要在 MySQl 中执行: GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'canal'@'%' IDENTIFIED BY 'canal' ; 执行结果如下图所示: 进行验证: select Host,User from user; show grants for 'canal'@'%'; docker run --name mysql8-container -p 3306:3306 -v ./data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql@wzk.icu -d mysql:8 执行结果如下图所示: ### 导入数据接下来往 dbshow 数据库中导入业务数据进行测试,导入数据后,观察 /var/lib/mysql 目录中是否有 mysql-bin.* 文件,如下所示: cd /var/lib/mysql ll 可以看到是有日志的:

相关推荐
IvorySQL1 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔1 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用2 小时前
Spring对IoC的实现
数据库·spring
问商十三载2 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
会议咨询3 小时前
2026年大数据、信息系统与智能通信国际会议(BDIIC 2026)
大数据·信息系统·智能通信
Raas1003 小时前
MAI Gateway(魔芋企业级AI网关)能力解析:AI网关能做故障转移吗?AI网关核心功能详解
大数据·人工智能·网关·ai·gateway·mai gateway
hz567894 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC4 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday4 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
IT研究所4 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微