Amazonrds 简明教程

Amazon RDS - MySQL DB Export Import

Amazon RDS MySQL 提供了将数据导入到数据库和从数据库导出数据的简便方法。在成功连接到 MySQL 数据库后,我们可以使用 CLI 工具运行导入和导出命令,以获取来自其他来源的数据,并将其放置在 RDS 数据库中或导出。以下是决定将数据导入 Amazon RDS - MySQL 数据库时要考虑的一些场景。

From an Existing MySQL database

现有的 MySQL DB 可能会出现在本地或另一个 EC2 实例中。我们所做操作的示意图如下所示。

on premise

Creating a backup from On-Premise DB

作为第一步,我们使用以下命令创建本地数据库的备份。

mysqldump -u user -p[user_password] [database_name] > backupfile.sql

然后创建一个名为 backupfile.sql 的文件,其中包含要使用的表结构和数据。

Storing the backup file in S3.

将上面创建的备份文件上传到与目标 RDS MySQL DB 数据库所在同一地区的预定 Amazon S3 存储桶。你可以按照以下链接:@ {s0}了解如何上传。

Import data from Amazon S3 to RDS- MySQL database

你可以使用以下 Amazon CLI 命令将数据从 S3 导入到 MySQL DB 中。

aws rds restore-db-instance-from-s3 \
--allocated-storage 125 \
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27

From Another RDS-MySQL Instance

在某些情况下,你可能希望将现有 RDS MYSQL DB 中的数据导入到另一个 RDS MYSQL DB 中。例如,创建灾难恢复数据库或仅为业务报告创建数据库等。在这种情况下,我们创建与其源数据库副本一致的只读副本,然后将该只读副本升级为新的数据库实例。当我们想要复制数据时,可以使用它们防止直接从原始源数据库中进行大读取操作。

create a read-replica

aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance

Promote a Read replica to DB Instance

现在,有了副本,我们可以将其升级为一个独立的数据库实例。这将满足我们从 RDS - Mysql DB 导入数据到一个新 RDS - Mysql DB 的最终需求。我们使用以下命令完成将只读副本升级到一个数据库实例的过程。

aws rds create-db-instance-read-replica \
    --db-instance-identifier readreplica_name \
    --region target_region_name
    --db-subnet-group-name subnet_name
    --source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1

From Any Database

为了将数据从任何其他数据库导入 Amazon RDS - MySQL,我们必须使用称为 Amazon DMS 的 Amazon 数据迁移服务。它使用模式转换工具将现有数据库转换成 MYSQL 平台。下图说明了整个过程。它还基于上一节中描述的类似于复制的原则。

amazon dms

Exporting Data from MySQL

从 Amazon RDS Mysql DB 导出数据是一个直接的过程,它基于我们上面看到的相同的复制原则。以下是执行导出过程的步骤。

  1. 启动在 Amazon RDS 外部运行的 MySQL 实例。

  2. 指定 MySQL DB 实例为复制源。

  3. 使用 mysqldump 将数据库从 Amazon RDS 实例传输到 Amazon RDS 外部的实例。

以下是 mysqldum 命令的代码

mysqldump -h RDS instance endpoint \
    -u user \
    -p password \
    --port=3306 \
    --single-transaction \
    --routines \
    --triggers \
    --databases  database database2 \
    --compress  \
    --compact | mysql \
        -h MySQL host \
        -u master user \
        -p password \
        --port 3306