发布于: Nov 30, 2022
【概要】数据库迁移怎么操作?随着 Amazon Aurora 数据库越来越受到客户的认可,不少人都有这样的疑问,如何将数据迁移至 Amazon Aurora,今天我们就来介绍两种最常见最简单的迁移场景及操作。
数据库迁移怎么操作?随着 Amazon Aurora 数据库越来越受到客户的认可,不少人都有这样的疑问,如何将数据迁移至 Amazon Aurora,今天我们就来介绍两种最常见最简单的迁移场景及操作。
如果客户正在使用 Amazon MySQL RDS,并且有足够的停机迁移的时间窗口的话,那么可以通过 RDS 快照的方式进行迁移。具体操作过程如下:
1. 停止应用程序对源数据库的写入操作。
2. 对源数据库创建快照,可以使用图形界面进行操作,选中要迁移的数据库实例,Actions 下来菜单中选择 Take snapshot,如下图所示:
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora1.ab1ef5a98d5d7d0f95fd776eb92319b031461926.png)
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora2.b8755df49e93c6dc2468cfc70f49875d7ae7e059.png)
3. 根据快照恢复出一个 Aurora 数据库。可以使用图形界面操作,在数据库列表中,选中之前创建快照的数据库实例,Actions下来列表中选择 Migrate snapshot,如下图所示。
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora3.a3476f80182bc908e5735317c6d1fbcffb0be98f.png)
在随后显示的页面中,输入 Aurora 数据库的相关信息即可,包括指定一个新的 Aurora 数据库实例名称,网络配置等,这部分内容与直接创建一个新的 Aurora 数据库是完全一致的。
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora4.a21bfb3d4e69ecbd54f62f836306507d54144f5b.png)
4. 等到 Aurora 数据库创建好以后,就可以修改应用程序的连接字符串,指向 Aurora,从而投入使用了。
如果客户正在使用 Amazon MySQL RDS,并且没有足够的停机时间来通过 snapshot 的方式进行迁移的话,那么可以通过为 MySQL RDS 创建 Aurora 读副本的方式进行迁移。具体操作过程如下:
1. 在控制台界面上选中要迁移的 MySQL RDS 数据库,在 Actions 下拉菜单中选择 Create Aurora read replica,如下图所示。
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora5.0579276f1f141bccd2e5b8fe35deedda299fab0f.png)
2. 在创建 Aurora 副本的界面上输入相关的信息,其过程与创建一个新的 Aurora 数据库类似。
在创建 Aurora 读副本的过程中,源 MySQL RDS 数据库可以仍然被业务系统访问并使用。在读副本创建完毕以后,该副本的内容会自动与 MySQL RDS 主库保持数据同步。
在确定要进行切换之前(通常都是在业务低谷的时间段),关闭应用程序,从而停止应用程序对主库的写入操作,并登陆到 Aurora 里执行下面的命令来判断 Aurora 读副本是否与主库保持同步了:
show slave status \G
检查输出里的 Seconds_Behind_Master 字段的值,如果为 0 则表示 Aurora 读副本已经与 MySQL RDS 主库保持同步了。否则继续等待,直到该字段为 0 为止。然后选择 Aurora 只读副本,在 Actions 下拉菜单中选择 Promote 选项。
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora6.2038a3ee39bc43932bfe23e39007c3e85130b8ee.png)
在弹出的界面中,选择 Promote Read Replica 按钮,从而把 Aurora 只读副本提升为主库。
![](https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9aamazon-mysql-rds-%e8%bf%81%e7%a7%bb%e5%88%b0-amazon-aurora%e3%80%8c%e4%ba%91%e6%95%b0%e6%8d%ae%e5%ba%93%e3%80%8d/every-scene-mysql-database-move-to-amazon-aurora7.89afafe59efeafc28a9b6714127b18f597f4c981.png)
一旦完成主从切换,再次登陆到 Aurora 数据库,执行 show slave status 的时候,会发现已经没有输出信息了。这也就说明 Aurora 数据库已经不再是一个只读副本,而变成了一个完全独立的数据库。
修改应用程序的数据库连接字符串,使其指向 Aurora 数据库,并启动应用程序,从而开始在生产环境中使用 Aurora 数据库。