新建的InnoDB Cluster即使未投入生产,仍会因MySQL Router每秒刷新集群元数据而产生大量二进制日志写入。为减少开销,可将binlog_row_image设置为MINIMAL或启用use_gr_notifications功能。
MySQL 的二进制日志记录数据库更改,但会占用大量磁盘空间。关闭和清理二进制日志可以提升性能,适用于不需要时间点恢复或主从复制的场景。可通过配置文件禁用日志,并使用命令清理旧日志。关闭日志会影响数据恢复和复制功能,需谨慎操作。
本文介绍了MySQL的复制机制,包括二进制日志和线程的作用。源服务器将事务写入二进制日志,副本通过I/O接收线程获取更新,并通过SQL应用线程执行。配置参数如sync_binlog和replica_parallel_workers对性能和稳定性至关重要。
MySQL 8.4及更新版本扩展了全局事务ID(GTID)功能,新增了“标签”选项。GTID用于唯一标识事务,便于在多级复制环境中管理。通过设置gtid_next,可以为事务添加标签,支持多标签组合,适用于心跳监测、数据导入和归档。二进制日志记录数据库更改,支持主从复制和时间点恢复。新事件GTID_TAGGED_LOG_EVENT用于处理带标签的GTID,影响复制协议和工具的兼容性。
本文介绍了如何在MariaDB中使用GTID实现复制,包括在PRIMARY上启用GTID、设置gtid_domain_id和gtid_strict_mode、在REPLICA上获取二进制日志坐标并在PRIMARY上获取对应的GTID位置。最终实现了GTID复制。
NanoLog 是一种高性能的纳秒级日志系统,其性能比传统日志系统提升了 1 至 2 个数量级。它通过在编译期间提取静态日志消息和推迟格式化操作来减少运行时开销。NanoLog 由预处理器、运行时库和解码器组成,采用环形队列和无锁设计以提高性能。尽管其二进制日志格式降低了 I/O 成本,但增加了开发者的处理复杂性。
完成下面两步后,将自动完成登录并继续当前操作。