如何将数据导入到我的 Amazon RDS 数据库实例?

上次更新时间:2019 年 11 月 19 日

我需要将现有数据库中的数据导入到 Amazon Relational Database Service (Amazon RDS) 实例,如何在最短的停机时间内完成此操作?

简短描述

将数据从现有数据库导入到 RDS 数据库实例的步骤:

  1. 从源数据库导出数据。
  2. 上传已导出的数据。
  3. 将已上传的数据导入 RDS 数据库实例。

根据所导入源数据库大小的不同,数据导入流程所需的服务器停机时间不尽相同。所需的停机时间还会受到目标数据库实例所用数据库引擎类型的影响。有关更多信息,请参阅以下数据库特定的解决方法。

解决方法

常规数据导入性能准则

以下性能准则适用于所有 Amazon RDS 数据导入/导出操作:

  • 使用压缩和多线程并行加载和卸载数据。如果您正在将大量数据并行加载到客户端计算机,请确保在数据加载过程中具有足够的资源。
  • 对于大型数据加载,请考虑禁用自动备份,方法是将 RDS 数据库实例的备份保留期设置为零。为使此更改生效,您必须重新启动 RDS 数据库实例重要提示:不建议对生产实例禁用备份。禁用备份会阻止时间点恢复功能,删除该数据库实例所有以前的自动快照,并阻止被删快照的恢复。但如果数据库实例尚未处于生产状态,禁用备份可提高加载性能。在数据加载完成后,请务必启用自动备份。还应考虑在数据加载过程的关键阶段创建数据库快照,以便您可以在必要时通过快照恢复实例
  • 建议在数据加载操作期间临时禁用多可用区,从而减少多可用区数据加载的同步写入操作导致的开销。重要提示:多可用区功能是适用于所有用于生产的 RDS 数据库实例的最佳实践,应该在数据加载完成后立即启用多可用区。

特定数据库引擎的数据导入准则

将数据导入到 Amazon RDS MySQL 或 MariaDB 数据库实例 – 您可以使用 MySQL 工具(如 mysqldumpmysqlreplication)将数据导入到 Amazon RDS。使用 MySQL 5.6.13 及更高版本的 Replication 可从外部 RDS 数据库实例复制数据,也可以将数据复制到其中。将数据导入到 MariaDB 数据库实例时,您可以使用 MariaDB 工具(如 mysqldumpmysqlstandard replication)将数据导入到 Amazon RDS。

将数据导入到 Amazon RDS 上的 PostgreSQL – 您可以使用 PostgreSQL 工具(如pg_dumppsqcopy 命令)将数据导入到 Amazon RDS。

将数据导入到 Amazon RDS 上的 Oracle – 小型数据库可使用 Oracle SQL Developer 提供的 Database Copy 功能。较大的数据库需要一个数据转储进行导出导入,方法是使用指向指定导出参数时在 RDS 数据库实例上定义的目录的数据库链接和文件传输。

导入和导出 SQL Server 数据库 – 您可以使用 .bak 文件,为 Microsoft SQL Server 数据库执行本机备份和还原。您还可以创建本地数据库的完整备份,将该备份存储在 Amazon Simple Storage Service (Amazon S3) 上,然后将该备份文件还原到 Amazon RDS。

将数据导入到 Aurora MySQL – 与导入到 Amazon RDS 时相似,您可以使用本机工具(如 mysqldump 和 mydumper)迁移到 Amazon Aurora for MySQL。您可以使用 Aurora MySQL 兼容的二进制日志复制减少停机时间。您还可以使用存储在 Amazon S3 上的 Percona Xtrabakup 迁移到 Aurora MySQLs,方法是使用 Amazon RDS MySQL 数据库实例的快照,或者创建现有 RDS MySQL 数据库实例的 Aurora 副本。对于所有迁移选项,请确保将所有源表转换为采用动态行格式的 InnoDB 存储引擎。这有助于加快您的迁移速度,并帮助您成功迁移到 Aurora。有关更多信息,请参阅将 MySQL 数据库迁移到 Amazon Aurora 的最佳实践

使用 AWS Database Migration Service (AWS DMS) – 您可以使用 AWS DMS 将数据从本地部署环境导入到 AWS。DMS 可实现在最短停机时间内的同构和异构迁移。DMS 提供以下迁移类型:

  • 迁移现有数据(完整加载)– 将现有数据从源复制到目标数据库实例。这是一项一次性加载操作,类似于前面列出的导入和导出选项。这种迁移类型最适合可以承受较长停机时间的中小型数据库
  • 迁移现有数据并复制持续更改(完整加载 + 变更数据捕获 [CDC])– 为在保证最少停机时间的前提下迁移数据,AWS DMS 可以迁移现有数据并将数据更改从源复制到目标,直至移交工作结束为止。此迁移类型最适合需要最短停机时间的中小型数据库,仅在移交工作期间需要停机。
  • 仅复制数据更改 (CDC) – 利用本机导入和导出工具的高效率迁移现有数据,并设置仅 CDC 任务,捕获从源实例到目标实例的持续更改。CDC 自定义开始时间参数指定开始数据同步的时间点。此迁移类型最适合需要仅在移交工作期间产生最短停机时间的大中型数据库。