使用 Amazon DMS 将 Google Cloud for MySQL 迁移到 Amazon Aurora MySQL

d48c14af60613658c9f0f948ee36e9b0.png

51f178c695d4f062ecd0581df8d9030a.gif

点击上方【凌云驭势 重塑未来】

一起共赴年度科技盛宴!

Amazon 最近已为 MySQL 8.0 和更高版本将 Google Cloud for MySQL 作为源添加到 Amazon Data Migration Service (Amazon DMS)。在本博文中,我们将说明如何使用 Amazon DMS 自动从 Google Cloud for MySQL 迁移到 Amazon Aurora MySQL 兼容版本并最大限度地减少停机时间。在撰写本文时,在支持具有 Google SQL 的 Allow only SSL connections (仅允许 SSL 连接) 设置的数据库方面存在限制,因为它需要服务器端和客户端证书验证。Amazon DMS 仅支持服务器端证书验证。在本博文中,我们演示了迁移具有和不具有 SSL 的数据库的方法。

对于此类同构迁移,我们建议使用本机工具。在本博文中,我们假设本机工具无法满足您的使用案例的需求,并且您只想迁移某些架构。

Google Cloud for MySQL 作为源添加到 Amazon Data Migration Service (Amazon DMS):

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.GC.html

Amazon DMS:

https://docs.aws.amazon.com/dms/index.html

Amazon Aurora MySQL 兼容版本:

https://aws.amazon.com/cn/rds/aurora/

建议使用本机工具:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Homogeneous

解决方案概览

对于不具有 SSL 的 Google Cloud for MySQL 数据库,我们使用 Amazon Schema Conversion Tool (Amazon SCT) 将源架构转换为目标 Aurora MySQL 数据库。我们使用 Amazon DMS 在 Google Cloud for MySQL 和 Aurora MySQL 之间迁移数据,并为增量更改启用更改数据捕获(CDC,Change Data Capture)。

对于具有 SSL 的 Google Cloud for MySQL 数据库,我们在独立的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上安装非 SSL MySQL 代理。Amazon DMS 连接到此代理 MySQL 实例,以便与源 Google Cloud for MySQL 数据库进行通信。这使我们能够将数据从支持 SSL 的 Google Cloud for MySQL 数据库迁移到 Aurora MySQL。您必须通过 Internet 从您的 Amazon 环境访问 Google Cloud for MySQL 数据库,但该流量在传输过程中会使用 SSL 进行加密。

下图显示了总体解决方案的架构。

1441990151a18896ae2291aac95ea477.jpeg

对于此迁移,我们使用了简单的客户-产品-订单表结构和以下数据集。下图显示了该示例数据集的实体关系。图中包含“客户”、“产品”和“订单”这三个表。“订单”具有两个外键,一个来自“客户”表,另一个来自“产品”表。

e2f15b7064280b24f0cb1b78f0b37736.png

Amazon Schema Conversion Tool (Amazon SCT):

https://aws.amazon.com/cn/dms/schema-conversion-tool/

Amazon Elastic Compute Cloud:

https://aws.amazon.com/cn/ec2/

数据集:

https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/DBBLOG-2251/samplemysqltables.sql

先决条件

在此演练中,您应满足以下先决条件:

  • 一个现有的 Google Cloud for MySQL 数据库与公共连接

  • 一个 Amazon 账户

  • 一个充当目标的 Aurora MySQL 数据库

在使用所述服务时,您的账户中会产生与此解决方案相关的费用。

第 1 部分:

迁移不具有 SSL 的 

Google Cloud for MySQL 数据库

对于同构迁移,特别是那些不需要捕获正在进行的更改的迁移,我们建议使用 MySQL 本机工具,例如 mysqldump 和 MySQL Workbench 数据导出和导入向导。如果源是另一个数据库引擎,例如 Google Cloud for SQL Server,则需要使用 Amazon SCT 转换架构。但是,即使对于这种同构迁移(Google Cloud for MySQL 到 Aurora MySQL 的迁移),我们也会在开始迁移之前使用 Amazon SCT 将架构更改应用于目标。下图显示了架构。

be9135b935ea501ae21b68b29c0ad669.jpeg

您可以采用类似方法进行异构迁移(例如,从 Google Cloud for MySQL 迁移到 Amazon Aurora PostgreSQL 兼容版)。

mysqldump:

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

MySQL Workbench:

https://www.mysql.com/products/workbench/

Amazon Aurora PostgreSQL 兼容版:

https://aws.amazon.com/cn/rds/aurora/features/

outside_default.png

安装 Amazon SCT

Amazon SCT 是一款免费应用程序,您可以将它安装在本地服务器、本地工作站或 EC2 实例上。有关安装说明,请参阅安装、验证和更新 Amazon SCT。在本博文中,我们创建了一个 t3.medium EC2 实例并在其中安装此工具。

安装、验证和更新 Amazon SCT:

https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html

outside_default.png

创建 Amazon DMS 复制实例

您需要使用复制实例来迁移数据库。此实例需要足够的存储空间和处理能力才能执行您分配的任务,并将数据从源数据库迁移到目标数据库。要选择适当的实例,请参阅使用 Amazon DMS 复制实例

首先,让我们创建一个基本实例。我们按如下方式设置参数:

  1. 在 Name (名称) 中,输入唯一标识此实例的友好名称。

  2. 对于 Instance class (实例类),根据您的工作负载选择一个实例。

  3. 对于 Engine version (引擎版本),我们建议选择最新版本。

  4. 对于 Allocated storage (分配的存储空间),根据您的工作负载选择存储空间。

  5. 对于 VPC,选择要在其中放置此实例的 VPC。

  6. 建议为生产工作负载选择 Multi-AZ (多可用区)。

  7. 选择 Publicly accessible (公开访问) 设置,因为此实例需要通过 Internet 与 Google Cloud 进行通信。

aff4b17cf3ca564838631c9b7168dd98.png

参阅使用 Amazon DMS 复制实例:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html

创建一个基本实例:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html

outside_default.png

创建目标 Aurora MySQL 实例

如果您已有一个 Aurora MySQL 实例,则可使用它。如果没有,请创建一个 Aurora MySQL 集群。确保目标拥有 Amazon SCT 和 Amazon DMS 权限。Amazon SCT 需要以下额外权限才能将架构应用于目标:

Grant CREATE, ALTER, DROP, INDEX, REFERENCES, CREATE VIEW, TRIGGER, CREATE ROUTINE, ALTER ROUTINE, EXECUTE on *.* to '<user>'@'IP';

左滑查看更多

创建一个 Aurora MySQL 集群:

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html

Amazon SCT:

https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Permissions

Amazon DMS:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.Prerequisites

outside_default.png

在 Google Cloud 上配置网络更改

要确保 Amazon EC2 上运行的 Amazon DMS 实例和 Amazon SCT 能够连接到 Google Cloud for MySQL 实例,请确保该实例具有公有 IP。在 Authorized networks(授权网络) 下添加 Amazon DMS 复制实例和 Amazon SCT EC2 实例的公有 IP。下图显示了配置。

7e4eabc5ccbebf764576568b73039447.png

outside_default.png

配置源 MySQL 更改

我们创建一个数据库用户,并使用最低权限原则以仅分配任务所需的权限:

create user 'dmsuser'@'%' identified by '<password>';

左滑查看更多

要让 Amazon SCT 正确读取架构,您需要添加以下权限

grant select on *.* to 'dmsuser'@'%';
grant show view on *.* to 'dmsuser'@'%';

左滑查看更多

如果您还想捕获 Amazon DMS 任务中正在进行的更改,则需要添加以下权限

grant replication client on *.* to 'dmsuser'@'%';
grant replication slave on *.* to 'dmsuser'@'%';

左滑查看更多

您需要添加以下权限:

https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Permissions

需要添加以下权限:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Prerequisites

outside_default.png

执行架构转换

现在可以将源架构应用于目标了。

1.连接到安装了 Amazon SCT 的 EC2 实例。

2.打开 Amazon SCT 应用程序,然后在 File (文件) 菜单上选择 New Project Wizard (新建项目向导)。

3.对于 Project name (项目名称),输入相应的名称。

4.对于 Location (位置),请在本地计算机上选择适当的位置。

5.对于 Kind (类型),选择 SQL Database (SQL 数据库)。

6.对于 Source engine (源引擎),选择 MySQL

7.对于 Migration (迁移),选择 I want to keep the same engine but optimize for the cloud (我想保留同一引擎,但针对云进行优化)。

8.选择 Next (下一步)。

9.对于 Connection name (连接名称),输入相应的名称。

10.对于 Server name (服务器名称),选择源 Google Cloud for MySQL 公有 IP。

11.对于 Server port (服务器端口),如果使用的是默认端口,则使用 3306。

12.输入您创建的用户名和密码作为先决条件。

13.选择 Next (下一步)。

建立源连接后,它会显示 MySQL 用户有权访问的所有架构。

14.选择要迁移的架构,然后选择 Next (下一步)。

数据库迁移评估报告汇总所有架构转换任务,并针对无法转换为目标数据库实例的数据库引擎的架构对象,详细说明了操作项。由于这是同构迁移,因此,迁移评估可能不会提供很多操作项,如以下屏幕截图所示。

15.选择 Next (下一步) 以继续。

199d9c65ad1986662b24870d45a3bec1.png

现在您可以配置目标了。

16.对于 Name (名称),输入 Aurora MySQL DNS。

17.对于 Server port (服务器端口),如果使用的是默认端口,则使用 3306。

18.输入具有相应写入权限的用户的用户名和密码。

19.选择 Finish (完成) 以结束向导。

由于在转换或调整源架构方面没有操作项,因此,您可以直接将架构从源加载到目标,如以下屏幕截图所示。

d29f2815a37453956722839afdfed017.gif

选择(右键单击)目标架构,然后选择 Apply to database (应用于数据库)。

对象的顶部会显示一个保存图标,这表示它们已应用于目标数据库。

现在,源架构已应用于目标,可以创建 Amazon DMS 端点和任务了。

outside_default.png

创建 Amazon DMS 端点

端点提供有关源和目标的连接、数据存储类型和位置信息。您需要创建至少一个源端点和一个目标端点。

创建:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html

源端点

创建源端点时,请提供以下信息:

1.对于 Endpoint identifier (端点标识符),输入一个友好名称。

2.对于 Source engine (源引擎),选择 Google Cloud for MySQL

3.对于 Access to endpoint (对端点的访问),选择 Provide access information manually (手动提供访问信息)。

4.对于 Server name (服务器名称),输入 Cloud SQL 的 IP 地址。

5.对于 Port (端口),如果使用的是默认端口,则使用 3306。

6.输入相应的用户名和密码。

7.测试端点,然后完成端点创建。

73f5ec113f9cb5773e23248aa6eff7cc.jpeg

目标端点

使用目标端点的以下参数重复上一过程:

1.对于 Select RDS instance (选择 RDS 实例),选择 Aurora MySQL 实例。

2.对于 Access to endpoint (对端点的访问),选择 Provide access information manually (手动提供访问信息)。

3.对于 Server name (服务器名称),使用预填充的设置。

4.对于 Port (端口),如果使用的是默认端口,则使用 3306。

5.输入相应的用户名和密码。

6.测试端点,然后完成端点创建。

outside_default.png

创建 Amazon DMS 迁移任务

Amazon DMS 任务是所有工作发生的位置。您可以在该任务中配置要迁移的数据库对象、日志记录要求、错误处理等。创建任务时,请提供以下信息:

1.对于 Task identifier (任务标识符),输入一个友好的可识别名称。

2.对于 Replication instance (复制实例),选择您创建的实例。

3.对于 Source database endpoint (源数据库端点),选择您创建的 Google Cloud for MySQL 端点。

4.对于 Target database endpoint (目标数据库端点),选择您创建的 Aurora MySQL 端点。

5.对于 Migration type (迁移类型),选择 Migrate existing data and replicate ongoing changes (迁移现有数据并复制正在进行的变更)。

c76a7bf8fe078db10444cccc88010c2d.png

6.启用 Amazon CloudWatch Logs,以便能够调试问题。

7.对于 Table mappings (表映射),选择 Wizard (向导)。

8.选择要迁移的架构。

9.将所有其他内容保留为默认值,然后选择 Create task (创建任务)。

f2762e3a76dd1e972483b4a9354ec0ce.png

一旦创建任务,任务就会处于 Creating (正在创建) 状态。几秒钟后,它会变为 Ready (准备就绪) 状态。迁移过程(如果已启用 CDC)将自动启动。

加载完成后,导航到 Table statistics (表统计数据) 选项卡,如以下屏幕截图所示。

fc3f46a38e873f90d2a843d9abc27df9.png

如果复制正在进行的更改,请尝试在源上插入新记录以查看统计信息中更新的“插入”列,如以下屏幕截图的最后一行所示。

3adb8188e4c29658f8b4a48d7f704117.png

您可能需要使用 MySQL Workbench 等工具连接到目标。另外,您可能需要执行数据验证。如果源和目标之间的计数达到您的要求,可随意将您的应用程序指向 Aurora MySQL 数据库,然后关闭源 Google Cloud for MySQL 数据库。

Amazon DMS 任务:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html

Amazon CloudWatch Logs:

https://aws.amazon.com/cn/cloudwatch/

MySQL Workbench:

https://www.mysql.com/products/workbench/

数据验证:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html

第 2 部分:

迁移支持 SSL 的 

Google Cloud for MySQL 数据库

截至撰写本文时,Amazon DMS 不支持 Google Cloud for MySQL 设置 Allow only SSL connections(仅允许 SSL 连接)。 一种解决此限制的可能方法是在已知的安全环境中创建 MySQL 代理。该代理接受非 SSL 连接,但使用 SSL 连接到源 Google Cloud for MySQL 数据库。已安装 MySQL 代理的 EC2 实例可为您完成这项工作。

我们使用 ProxySQL,它是一款适用于 MySQL 的开源、高性能、高度可用的数据库协议感知代理。下图显示了架构。

06b6c032775f66644f54e054c0a512b2.jpeg

不支持:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.GC.html

ProxySQL:

https://www.proxysql.com/

outside_default.png

安装 ProxySQL

以下说明适用于 Amazon Linux AMI。对于其他 Linux 发行版,您可以使用类似的方法。如果您没有可用的实例,请启动一个实例。大小和实例类型取决于各种因素,例如,存在的数据量以及所需的迁移完成速度。

在实例准备就绪时,请确保允许 SSH 流量(此流量来自连接源)。SSH 将进入实例并运行以下命令。这些命令从 yum 存储库获取 ProxySQL 并安装它,并且还会安装 MySQL。您可能需要针对不同的 Linux 发行版略做调整。

sudo yum update
sudo tee /etc/yum.repos.d/proxysql.repo<<EOF
[proxysql_repo]
name= ProxySQL YUM repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.0.x/centos/latest
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/repo_pub_key
EOF
sudo yum makecache
sudo yum install proxysql
sudo systemctl enable --now proxysql
systemctl status proxysql
sudo yum install mysql
mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='ProxySQLAdmin> '

左滑查看更多

如果一切顺利,您现在应已登录 ProxySQL。

846017a33a8f83b18a92b7656d0f3c9d.png

我们建议将 ProxySQL 管理员的默认密码从 admin 更改为其他内容:

UPDATE global_variables SET variable_value='admin:<password>' WHERE variable_name='admin-admin_credentials';


LOAD ADMIN VARIABLES TO RUNTIME;

左滑查看更多

启动:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html

允许 SSH 流量:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html#add-rule-authorize-access

outside_default.png

创建 Amazon DMS 复制实例

如前所述,您需要使用复制实例来迁移数据库。此实例需要足够的存储空间和处理能力才能执行您分配的任务,并将数据从源数据库迁移到目标数据库。要选择适当的实例,请参阅使用 Amazon DMS 复制实例

使用以下参数创建您的实例:

1.在 Name (名称) 中,输入唯一标识此实例的友好名称。

2.对于 Instance class (实例类),根据您的工作负载选择一个实例。

3.对于 Engine version (引擎版本),我们建议选择最新版本。

4.对于 Allocated storage (分配的存储空间),根据您的工作负载选择存储空间。

5.对于 VPC,选择要在其中放置此实例的 VPC。

6.建议为生产工作负载选择 Multi-AZ (多可用区)。

7.取消选择 Publicly accessible (公开访问) 设置。

使用 Amazon DMS 复制实例:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html

outside_default.png

创建目标 Aurora MySQL 实例

如果您已有一个 Aurora MySQL 实例,则可使用它。如果没有,请创建一个 Aurora MySQL 集群。确保目标拥有 Amazon DMS 权限。

创建一个 Aurora MySQL 集群:

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html

Amazon DMS:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.Prerequisites

outside_default.png

在 Google Cloud for MySQL 上

配置联网、安全性和用户权限

在 Google Cloud Platform (GCP) 控制台上,导航到要迁移的 MySQL 集群下的联网部分,然后完成以下步骤:

1.添加正在运行 ProxySQL 的 EC2 实例的公有 IP,以便流量可以从该公有 IP 到达。

021c12bc15efc8faa74e55b26134ed92.png

2.在 Security (安全性) 选项卡上,选择 Allow only SSL connections (仅允许 SSL 连接)。

3.如果您还没有客户端证书,请生成该证书。

4.下载服务器证书和客户端证书。

e56c27f7059a4e066baa85387c1c0a4f.png

5.在源 MySQL 数据库上,创建两个用户:一个是由 Amazon DMS 用来迁移数据的 dmsuser,另一个是由 ProxySQL 用来监控连接的监控用户:

create user 'dmsuser'@'%' identified by <password>;
grant select on *.* to 'dmsuser'@'%';
CREATE USER 'monitor'@'%' IDENTIFIED BY <password>;
GRANT USAGE ON *.* TO 'monitor'@'%';

左滑查看更多

outside_default.png

配置 ProxySQL

以下命令可配置您的 ProxySQL 实例,确保它能够连接到源 Google Cloud for MySQL 数据库。您需要添加服务器信息、用户信息和 SSL 证书,还需要创建一个监控用户,此用户对源进行 ping 操作以确保其处于联机状态。您应在 ProxySQLAdmin 提示符下运行这些命令。如果您在 ProxySQL EC2 实例上将其丢失,请运行以下代码:

mysql -u admin -p<password> -h 127.0.0.1 -P6032 --prompt='ProxySQLAdmin> '

左滑查看更多

1.在 mysql_servers 表中插入源 MySQL 信息:

INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight, use_ssl) VALUES ('<GCP MySQL IP>',0,3306,1000, 1);

左滑查看更多

2.将服务器加载到运行时并将其保存到磁盘:

LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;

3.在 mysql_users 表中插入 dmsuser:

INSERT INTO mysql_users(username,password) VALUES ('dmsuser',<password>);

左滑查看更多

4.将用户加载到运行时并将其保存到磁盘:

load mysql users to runtime; 
save mysql users to disk;

5.将您从 GCP 下载的 SSL 证书复制到 /var/lib/proxysql 目录中。上述命令将从本地计算机(MacOS 终端)复制这些文件。如果您未在 MacOS 上,请按照本地计算机的操作系统的推荐说明执行操作。

scp -i <key.pem> server-ca.pem ec2-user@<EC2IPRunningProxySQL>:~/.
scp -i <key.pem> client-cert.pem ec2-user@<EC2IPRunningProxySQL>:~/.
scp -i <key.pem> client-key.pem ec2-user@<EC2IPRunningProxySQL>:~/.

左滑查看更多

6.它们将位于 ProxySQL 的 EC2 实例的主目录中,因此将它们复制到 /var/lib/proxysql:

sudo cp client-cert.pem client-key.pem server-ca.pem /var/lib/proxysql

左滑查看更多

7.运行以下查询,为 SSL 设置各种变量并监控 ProxySQL 中的 Google Cloud for MySQL 数据库:

mysql -u admin -p<password> -h 127.0.0.1 -P6032 --prompt='ProxySQLAdmin> '
SET mysql-ssl_p2s_cert="/var/lib/proxysql/client-cert.pem";
SET mysql-ssl_p2s_key="/var/lib/proxysql/client-key.pem";
SET mysql-ssl_p2s_ca="/var/lib/proxysql/server-ca.pem";
SET mysql-ssl_p2s_cipher='ECDHE-RSA-AES256-SHA';
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_password';
UPDATE global_variables SET variable_value='2000' WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');
UPDATE GLOBAL_VARIABLES SET variable_value='8.0' WHERE variable_name='mysql-server_version';
UPDATE global_variables SET variable_value='2000' WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');
UPDATE GLOBAL_VARIABLES SET variable_value='true' WHERE variable_name='admin-web_enabled';
load mysql variables to runtime;
save mysql variables to disk;

左滑查看更多

8.在 MySQL 连接日志上运行 SELECT,确保您能够成功连接到源 Google Cloud for MySQL 数据库:

SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 3;

左滑查看更多

以下屏幕截图显示 ProxySQL 正在成功地与源数据库进行交互。

cbe7ff34e6926445ab8e012019a43800.png

outside_default.png

创建 Amazon DMS 端点

如前所述,端点提供有关源和目标的连接、数据存储类型和位置信息。您需要创建至少一个源端点和一个目标端点。

源端点

由于您已在 Google Cloud for MySQL 数据库上运行一个非 SSL 代理,因此,您可以将其配置为源,如下所示:

1.对于 Endpoint identifier (端点标识符),输入一个友好名称。

2.对于 Source engine (源引擎),选择 MySQL。

3.对于 Access to endpoint (对端点的访问),选择 Provide access information manually (手动提供访问信息)。

4.对于 Server name (服务器名称),输入运行 ProxySQL 的 EC2 实例的 IP 地址。

5.对于 Port (端口),如果使用的是默认端口,则使用 3306。

6.输入相应的用户名和密码。

7.测试端点,然后完成端点创建。

d52eee802e9d8de429b56746f28afede.png

目标端点

使用目标端点的以下参数重复此过程:

1.对于 Select RDS instance (选择 RDS 实例),选择 Aurora MySQL 实例。

2.对于 Access to endpoint (对端点的访问),选择 Provide access information manually (手动提供访问信息)。

3.对于 Server name (服务器名称),使用预填充的设置。

4.对于 Port (端口),如果使用的是默认端口,则使用 3306。

5.输入相应的用户名和密码。

6.测试端点,然后完成端点创建。

创建:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html

outside_default.png

创建 Amazon DMS 任务

如前所述,您可以在 Amazon DMS 任务中配置要迁移的数据库对象、日志记录要求、错误处理等。使用以下信息创建任务:

1.对于 Task identifier(任务标识符),输入一个友好的可识别名称。

2.对于 Replication instance(复制实例),选择您创建的实例。

3.对于 Source database endpoint(源数据库端点),选择您创建的 ProxySQL MySQL 端点。

4.对于 Target database endpoint(目标数据库端点),选择您创建的 Aurora MySQL 端点。

5.对于 Migration type(迁移类型),选择 Migrate existing data(迁移现有数据)。

506c052e009d16e3834a0463efd64e10.png

6.启用 CloudWatch Logs,以便能够调试问题。

7.对于 Table mappings (表映射),选择 Wizard (向导)。

8.选择要迁移的架构。

60f769d6e809cd756b10ba722db0289f.png

9.将所有其他内容保留为默认值,然后选择 Create task (创建任务)。

一旦创建任务,任务就会处于 Creating (正在创建) 状态。几秒钟后,它会变为 Ready (准备就绪) 状态。迁移将自动启动。

加载完成后,导航到 Table statistics (表统计数据) 选项卡,如以下屏幕截图所示。

f1be1f33400afed37c79d5b9a46e789c.png

您可能需要使用 MySQL Workbench 等工具连接到目标。另外,您可能需要执行数据验证。如果源和目标之间的计数达到您的要求,可随意将您的应用程序指向 Aurora MySQL 数据库。

MySQL Workbench:

https://www.mysql.com/products/workbench/

数据验证:

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html

清理

停止正在运行 Amazon SCT 和 ProxySQL 的 EC2 实例。此外,删除这些实例的关联安全组,或删除不再需要的规则。如果您不再需要 DMS 实例,请将其删除。

结论

在本博文中,我们说明了如何使用 Amazon SCT 和 Amazon DMS 将数据库和架构从 Google Cloud for MySQL(具有或不具有 SSL)迁移到 Aurora MYSQL。请试用此解决方案,如果您有任何意见,请告诉我们。

查看来自采用了类似方法的客户的博客文章:使用 Amazon DMS 从 GCP 迁移到 Amazon,为 OLX Autos 的平台做好准备。

使用 Amazon DMS 从 GCP 迁移到 Amazon,为 OLX Autos 的平台做好准备:

https://aws.amazon.com/cn/blogs/database/gearing-up-olx-autos-platform-by-migrating-from-gcp-to-aws-using-aws-dms/

本篇作者

2a04df6d2fae36318d32045dd5a02691.png

Kasi Muthu

Kasi Muthu 是 Amazon 在德克萨斯州休斯敦的全球合作伙伴解决方案架构师,专注于数据库、分析以及人工智能/机器学习。他热衷于帮助合作伙伴和客户加速其云数据之旅。他是这个领域值得信赖的顾问,并且在云上架构和构建可扩展、弹性和高性能工作负载方面拥有丰富的经验。工作之余,他喜欢和家人在一起,并将大量空闲时间花在浏览 YouTube 上。

2022亚马逊云科技 re:Invent 全球大会

精彩视频现已上线!

👇👇👇点击下方图片立即观看👇👇👇

4a6e7d0ebe5facfb97ecf9f679a41800.jpeg

16b4bfc856f972c05c2187977fc6d3dc.gif

8742155d420958b4a51ae4c16bcf2ffc.gif

听说,点完下面4个按钮

就不会碰到bug了!

9d9db0d76a694eef37812dc5bff93d04.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值