MySQL Online DDL经典工具ghost

Online DDL一直是MySQL数据库的一个痛点,好在官方和社区都有不错的解决方案。这些方案大致有以下几个:

本文主要给大家介绍一下由github开源的gh-ost。目前为止大表DDL最好的工具。

1 安装

# 本文安装1.1.5版本<br>wget https://github.com/github/gh-ost/releases/download/v1.1.5/gh-ost-1.1.5-1.x86_64.rpm  <br>yum -y localinstall gh-ost-1.1.5-1.x86_64.rpm<br>

前置条件:  <br>gh-ost目前需要MySQL版本为5.7及更高版本。<br><br>gh-ost需要具有以下权限的账户:<br>在迁移表所在的数据库(模式)上具有ALTER、CREATE、DELETE、DROP、INDEX、INSERT、LOCK TABLES、SELECT、TRIGGER、UPDATE权限,或者当然也可以在*.*上具有这些权限。<br>要么:<br>在*.*上具有SUPER、REPLICATION SLAVE权限,或者:<br>在*.*上具有REPLICATION CLIENT、REPLICATION SLAVE权限。<br>需要SUPER权限来执行STOP SLAVE、START SLAVE操作。这些操作用于:<br><br>在binlog_format不是ROW且您明确指定了--switch-to-rbr的情况下,切换binlog_format为ROW。如果您的复制已经处于RBR状态(binlog_format=ROW),您可以指定--assume-rbr以避免STOP SLAVE/START SLAVE操作,因此不需要SUPER权限。gh-ost对所有MySQL连接使用REPEATABLE_READ事务隔离级别,而不管服务器默认设置如何。运行--test-on-replica:在切换阶段之前,gh-ost会停止复制,以便您可以比较两个表并确保迁移是正确的。<br>