资料搜集
RDS for MySQL Online DDL 使用
RDS for MySQL 如何使用 Percona Toolkit
RDS for MySQL 只读实例同步延迟原因与处理
大表上新增字段问题--相关解决方案
只读实例简介
Online DDL与pt-online-schema-change
ONLINE DDL VS PT-ONLINE-SCHEMA-CHANGE
RDS最佳实践(五)—Mysql大字段的频繁更新导致binlog暴增
初步了解客户情况
- 目前为一主两从,数据量1.2T
- 在线DDL后从机延迟较大
需进一步了解客户情况
架构:当前经典网络中的一主两从架构中,从机是使用rds的只读实例吗?还是独立的rds,通过DTS同步搭建的主从?
A:只读实例
规格:当前经典网络中的主从规格是否相同呢?
A:规格相同
参数:当前经典网络中的主库中binlog_row_image参数当前的值为多少?
A:默认参数full
业务:业务高峰和低峰期分别是什么时间段?
ddl操作:目前在线ddl使用的工具和方法是什么?在线ddl后目前的主从延迟时间为多少?多久从机能追上主库?
A:原生的onlineddl和ptosc都有用。最长2个小时
建议方法
只读rds搭建主从
【分析】
- 只读节点的数据为了和主节点保持同步,采用了 MySQL 原生的 binlog 复制技术,由一个 IO 线程和一个 SQL 线程来完成。IO 线程负责将主库的 binlog 拉取到只读节点,SQL 线程负责消费这些 binlog 日志应用到只读实例。
- 由于是单线程重演,所以在大表DDL时,从机延迟较大。
- 没有办法彻底解决延迟问题。
- 可以修改binlog_row_image值为minimal,当设置为minimal时候,binlog只记录了要修改的列的记录,这样就可以大大减小了binlog的长度,进而减少了空间的使用,对从机稍微提速。
DTS同步搭建主从
【分析】
- DTS同步搭建主从,从机可多线程重演,并发
- 避免在高分期进行在线ddl操作