<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops on Kalend's Blog</title><link>https://blog.kalend.top/tags/devops/</link><description>Recent content in Devops on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><atom:link href="https://blog.kalend.top/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>gh-ost</title><link>https://blog.kalend.top/wiki/entities/gh-ost/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.kalend.top/wiki/entities/gh-ost/</guid><description>&lt;h1 id="gh-ost"&gt;gh-ost
&lt;/h1&gt;&lt;h2 id="概述"&gt;概述
&lt;/h2&gt;&lt;p&gt;GitHub 开发的无触发器在线 MySQL 表变更工具。⭐ 13,300+ Stars。通过解析 binlog 实现增量数据同步，对主库性能影响极小。&lt;/p&gt;
&lt;h2 id="核心原理"&gt;核心原理
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;创建幽灵表（ghost table）&lt;/li&gt;
&lt;li&gt;在幽灵表上执行DDL变更&lt;/li&gt;
&lt;li&gt;解析binlog获取增量变更，应用到幽灵表&lt;/li&gt;
&lt;li&gt;分块拷贝历史数据&lt;/li&gt;
&lt;li&gt;RENAME TABLE原子交换&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="核心优势"&gt;核心优势
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;无触发器，主库性能影响极小&lt;/li&gt;
&lt;li&gt;支持暂停/恢复/动态调参&lt;/li&gt;
&lt;li&gt;可在从库先测试&lt;/li&gt;
&lt;li&gt;支持回滚&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="相关实体"&gt;相关实体
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;[[mysql-big-table-ddl]] — 大表DDL操作方案&lt;/li&gt;
&lt;li&gt;[[pt-online-schema-change]] — Percona的替代方案&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="来源"&gt;来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub: github.com/github/gh-ost&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>MySQL大表DDL操作</title><link>https://blog.kalend.top/wiki/concepts/mysql-big-table-ddl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.kalend.top/wiki/concepts/mysql-big-table-ddl/</guid><description>&lt;h1 id="mysql大表ddl操作"&gt;MySQL大表DDL操作
&lt;/h1&gt;&lt;h2 id="概述"&gt;概述
&lt;/h2&gt;&lt;p&gt;MySQL大表（千万级+行）执行DDL操作（如添加字段）时的快速方案选择。核心问题是传统DDL会锁表和全表复制，导致线上服务中断。&lt;/p&gt;
&lt;h2 id="mysql版本演进"&gt;MySQL版本演进
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;版本&lt;/th&gt;
 &lt;th&gt;特性&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;5.5及以前&lt;/td&gt;
 &lt;td&gt;COPY算法&lt;/td&gt;
 &lt;td&gt;全表复制，全程锁表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5.6+&lt;/td&gt;
 &lt;td&gt;Online DDL (INPLACE)&lt;/td&gt;
 &lt;td&gt;允许并发DML，但仍需重建数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8.0.12+&lt;/td&gt;
 &lt;td&gt;INSTANT ADD COLUMN&lt;/td&gt;
 &lt;td&gt;只改元数据，毫秒级，仅限末尾加列&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8.0.29+&lt;/td&gt;
 &lt;td&gt;INSTANT任意位置加列&lt;/td&gt;
 &lt;td&gt;放宽了位置限制&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="instant的限制"&gt;INSTANT的限制
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;❌ 添加列的同时添加索引&lt;/li&gt;
&lt;li&gt;❌ 列涉及外键&lt;/li&gt;
&lt;li&gt;❌ ROW_FORMAT=COMPRESSED&lt;/li&gt;
&lt;li&gt;❌ 表含全文索引&lt;/li&gt;
&lt;li&gt;❌ 临时表&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="第三方工具"&gt;第三方工具
&lt;/h2&gt;&lt;h3 id="gh-ostgithub"&gt;gh-ost（GitHub）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;解析binlog同步增量数据，无触发器&lt;/li&gt;
&lt;li&gt;⭐ 13,300+ Stars&lt;/li&gt;
&lt;li&gt;适合高并发写入场景&lt;/li&gt;
&lt;li&gt;支持暂停/恢复/回滚&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pt-online-schema-changepercona"&gt;pt-online-schema-change（Percona）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;使用触发器同步增量数据&lt;/li&gt;
&lt;li&gt;高并发写入时触发器开销较大&lt;/li&gt;
&lt;li&gt;上手简单，Percona Toolkit的一部分&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="对比"&gt;对比
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;高并发 → gh-ost（无触发器）&lt;/li&gt;
&lt;li&gt;低并发/已有经验 → pt-osc&lt;/li&gt;
&lt;li&gt;MySQL 8.0+ → 优先INSTANT&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="操作前检查清单"&gt;操作前检查清单
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;表大小、行数、索引大小&lt;/li&gt;
&lt;li&gt;外键约束&lt;/li&gt;
&lt;li&gt;主从延迟状态&lt;/li&gt;
&lt;li&gt;磁盘剩余空间（至少表大小的2倍）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="相关实体"&gt;相关实体
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;[[mysql]] — 数据库系统&lt;/li&gt;
&lt;li&gt;[[gh-ost]] — GitHub开源DDL工具&lt;/li&gt;
&lt;li&gt;[[pt-online-schema-change]] — Percona DDL工具&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="来源"&gt;来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;IMA知识库「κ的知识库」原始收藏&lt;/li&gt;
&lt;li&gt;MySQL 8.0 Reference Manual&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>