5

对于大型数据集和实时系统,使用 RDS 从 5.5 实例的 mysqldump 停止应用程序并使用 mysql 命令加载该数据是不切实际的。

在 2013 年 7 月 1 日的 Amazon 博客http://aws.typepad.com/aws/amazon-rds/page/2/中,Jeff Barr 发布了“当前不支持将现有数据库实例从 MySQL 5.5 升级到 MySQL 5.6。但是,我们打算在不久的将来提供此功能。”

7个月后,我没有看到他们的任何答复。我正在寻找没有中断或几分钟中断的选项,以便在 RDS 环境中将 MySQL 5.5 升级到 MySQL 5.6。

通常对于这样的升级,我从 MySQL 5.5 主服务器创建 MySQL 5.6 副本,然后关闭应用程序,更改应用程序 MySQL 连接到 5.6 服务器,然后重新启动应用程序。将 RDS MySQL 5.5 实例复制到不同版本的 RDS 副本或外部副本不是 RDS 中的选项。

哪些选项对人们有效?

4

2 回答 2

2

我在同一个可用区中使用了一个非常大的实例类型的 Spot 实例。它采用了具有 SSD 驱动器的 8 核实例,并进行了导出。由于数据集很大,并且现场实例终止,因此确实需要一些工作。但是,我能够通过提高现货实例的价格并对可用 SSD 空间进行 RAID0 来取得成功。

有多种方法可以做到这一点;但是我这样做了。- 启动了一个 m3.2xlarge 现场实例 ubuntu 12.04LTS 64 位实例 - 登录然后成为 root 用户 - 卸载 /mnt - 使用 apt-get 安装 mdadm(接受默认值) - 使用 sudo mdadm --create -l0 -n2 /dev /md0 /dev/xvdb /dev/xvdc - 使用 sudo mkfs.ext4 /dev/md0 - 使用 sudo mount -t auto 将分区挂载到 /mnt /dev/md0 /mnt - 使用 apt-get 安装 MySQL 客户端 - 更新旧 RDS 上的安全性以允许新实例访问 - 阻止应用程序更新旧 RDS - 执行 mysql 转储到 /mnt - 使用我想要在相同安全组中的参数启动新 RDS - 使用 mysql 客户端加载数据库 - 然后更新应用程序以使用新数据库

这将取决于您的数据库大小和当天的条件,看看这需要多长时间。现场实例确实要花钱,而且我还必须一次运行两个 RDS 实例。然而,这是一条可行的道路,我能够让事情顺利进行。

于 2014-04-24T00:20:26.650 回答
1

仅供参考 - 最后,已宣布升级支持:http: //aws.amazon.com/blogs/aws/mysql-55-to-mysql-56-upgrade-support-for-amazon-rds/(23/Apr/14 )

于 2014-06-02T14:48:13.213 回答