【问题标题】:MySQL structure changes without table locking on RDS在 RDS 上没有表锁定的 MySQL 结构更改
【发布时间】:2016-05-03 13:11:54
【问题描述】:
我有一个大约 2.5TB 的 AWS RDS MySQL 数据库;我需要做一些结构更改,并且希望在没有表锁定的情况下执行它们。我知道以下选项:
- Percona 工具包
- 复制
- MySQL 在线
哪个选项最适合我的需求,并且更容易在 RDS 上执行? AFAIK 两者都是可能的,但两者都需要对 RDS 进行调整,这并不容易。如果我错过了第四个选项,请赐教。
【问题讨论】:
标签:
mysql
database
amazon-web-services
percona
【解决方案1】:
-
pt-online-schema-change 可能是您最简单的 RDS 解决方案。在屏幕会话中从 EC2 实例运行它。
- RDS 中的复制非常难以设置,因为您在 RDS 中没有 SUPER,但如果您不想使用 pt-osc,这是安全的方法。
- 我不确定“MySQL Online”是什么,但您可能指的是 InnoDB 的新在线 DDL 功能。根据单个表的大小以及您想要更改的内容,这也可以工作。请务必阅读 what is supported 的 ALGORITHM=INPLACE。如果有问题的表只有几百 MB,只需使用常规 ALTER TABLE 并为较小的表花几分钟的停机时间。