首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用最小停机时间修改MySQL InnoDB表

用最小停机时间修改MySQL InnoDB表
EN

Stack Overflow用户
提问于 2011-07-26 05:22:50
回答 1查看 409关注 0票数 6

我有一个巨大的InnoDB表(>5亿行),为了减小索引大小,我希望通过散列进行分区。我想用最少的停机时间(例如,10分钟是可以接受的)来实现这一点,可能的选择是什么?

我在想一些事情如下:

使用"insert .选择.“将新分区表的所有数据都插入到这个新表中,clients

  • somehow

  • 使服务器不可用,因为在第2步中发生在旧表上的同步更改将旧表替换为新表(H 111使服务器为客户端提供H 212G 213/code>)

主要问题是在第4步中可以使用什么工具。问题是,在第2步中,原始表可能会有很多更改:新的插入、更新、删除-同步工具应该考虑所有这些.

我相信另一种可能的方法是:

master

  • switch

  • 设置了一个复制的从服务器

  • ,将此从服务器与主/从角色同步,并重新配置所有客户端以连接到以前的主/从
    1. 上的新的主从
    2. alter表,再次等待主从主从角色,重新配置所有客户端G 227

你推荐哪一种?

EN

回答 1

Stack Overflow用户

发布于 2011-07-27 21:51:54

我会选择主/从复制。如果主从可以在同一子网上,我还将向主网络添加一个新IP,将客户端更改为指向新IP。然后当你要切换到奴隶的时候,只要:

在master

  • ifconfig上停止mysql,在master

  • ifconfig上停止额外的IP,在新的主

上停止额外的IP。

客户端将直接连接到新的主服务器,而不需要任何客户端重新配置。然后,当你切换回原来的主人时,你会做同样的事情(如果你切换回来)。

我建议一个从机总是与它的主站同等的硬件,这样当它接管主程序时,你不会发现它太慢了,以至于它无法跟上,而且你的整个系统都失败了。如果您这样做,那么您只需要切换一次(从当前母版切换到新的主版)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6825609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档