MySQL 在线模式迁移现状

MySQL 在线模式迁移现状

💡 原文英文,约2100词,阅读约需8分钟。
📝

内容提要

本文讨论了在MySQL中运行非阻塞模式更改的选项,包括使用Vitess或其他工具。介绍了MySQL的原生选项:INPLACE和INSTANT。INPLACE模式更改是非阻塞的,但有限制。INSTANT模式更改几乎完美,但只支持特定的更改。还提到了第三方工具如Vitess,它们可以用于在线模式更改。这些工具都有共同特点,如创建影子表并逐步复制数据。然而,这些工具仍存在限制和问题。

🎯

关键要点

  • 讨论了在MySQL中运行非阻塞模式更改的选项,包括使用Vitess或其他工具。

  • MySQL的原生选项包括INPLACE和INSTANT模式。

  • INPLACE模式更改是非阻塞的,但存在性能影响和复制延迟等限制。

  • INSTANT模式更改几乎完美,但仅支持特定的元数据更改。

  • INSTANT模式的风险包括数据丢失和现有查询中断。

  • INSTANT DDL不支持大多数常见的模式更改,缺乏可逆性。

  • 第三方工具如Vitess、gh-ost和pt-online-schema-change可用于在线模式更改。

  • 这些工具通过创建影子表并逐步复制数据来模拟ALTER TABLE操作。

  • Vitess支持可逆性,能够恢复到原始模式并保留丢失的数据。

  • 对于大多数模式更改,第三方在线模式更改工具仍然是首选解决方案。

延伸问答

MySQL中有哪些在线模式迁移的选项?

MySQL中有INPLACE和INSTANT两种原生选项,以及第三方工具如Vitess、gh-ost和pt-online-schema-change。

INPLACE模式的限制是什么?

INPLACE模式是非阻塞的,但会影响性能,且在复制时会导致延迟,操作不可中断。

INSTANT模式的优势是什么?

INSTANT模式几乎完美,支持快速的元数据更改,不需要额外的磁盘空间,也不会影响CPU性能。

使用INSTANT模式时有哪些风险?

使用INSTANT模式时,可能会导致数据丢失和现有查询中断,尤其是在执行DROP COLUMN时。

Vitess工具在在线模式迁移中有什么特点?

Vitess通过创建影子表并逐步复制数据来模拟ALTER TABLE操作,支持可逆性,能够恢复到原始模式。

为什么第三方工具在在线模式迁移中仍然是首选?

因为大多数模式更改不被INSTANT或INPLACE支持,第三方工具能够处理几乎所有类型的模式更改,并且操作可中断。

🏷️

标签

➡️

继续阅读