

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS SCT 和 AWS DMS EC2 将亚马逊上的 SAP ASE 迁移到兼容 Aurora PostgreSQL 的亚马逊 Aurora
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms"></a>

*Amit Kumar 和 Ankit Gupta，Amazon Web Services*

## Summary
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-summary"></a>

此模式描述了如何使用 AWS 架构转换工具 (AWS SCT) 和 AWS 数据库迁移服务 (AWS DMS) 将托管在亚马逊弹性计算云 (亚马逊 EC2) 实例上的 SAP 自适应服务器企业 (SAP ASE) 数据库迁移到兼容亚马逊 Aurora PostgreSQL 的版本。该模式侧重于存储对象的数据定义语言 (DDL) 转换以及数据迁移。

Aurora PostgreSQL-Compatible 支持联机事务处理 (OLTP) 工作负载。此托管服务提供可按需要自动扩缩的配置。它可根据应用程序的需求自动启动、关闭、纵向扩展或缩减数据库。无需管理任何数据库实例，可在云中运行数据库。Aurora PostgreSQL-Compatible 为不频繁、间歇性或不可预测的工作负载提供了一种经济高效的选择。

迁移过程包含两个主要阶段：
+ 使用 AWS SCT 转换数据库架构
+ 通过 AWS DMS 迁移数据

*操作说明*部分提供了这两个阶段的详细说明。有关对 SAP ASE 数据库使用 AWS DMS 的特定问题进行故障排除的信息，请参阅 AWS DMS 文档中的 [SAP ASE 问题故障排除](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SAP)。

## 先决条件和限制
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+  EC2 实例上的源 SAP ASE 数据库，服务器、数据库和侦听器服务已启动并运行
+ 目标 Aurora PostgreSQL-Compatible 数据库

**限制**
+ 连接的端口号必须为 5432。
+ [huge\_pages](https://www.postgresql.org/docs/9.6/static/runtime-config-resource.html) 功能默认开启，但可以进行修改。
+ Point-in-time 恢复 (PITR) 粒度为 5 分钟。
+ 跨区域复制当前不可用。
+ Aurora 数据库最大存储大小为 128 TiB。
+ 最多可以创建 15 个只读副本。
+ 表大小限制仅受 Aurora 集群卷大小的限制，因此PostgreSQL-Compatible 的数据库集群的最大表大小为 32 TiB。我们建议您遵循表设计的最佳实践，例如对大型表进行分区。

**产品版本**
+ 源数据库：AWS DMS 当前支持 SAP ASE 15、15.5、15.7 和 16.x。有关 SAP ASE 版本支持的最新信息，请参阅 [AWS DMS 用户指南](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)。
+ 目标数据库：PostgreSQL 9.4 及以上版本（适用于版本 9.x）、10.x、11.x、12.x、13.x 和 14.x。有关最新支持版本的 PostgreSQL，请参阅 [AWS DMS 用户指南](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)。
+ Amazon Aurora 1.x 或更高版本。有关最新信息，请参阅 Aurora 文档中的[与 Aurora PostgreSQL 兼容的版本和引擎版本](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)。

## 架构
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-architecture"></a>

**源技术堆栈**
+ 在亚马逊上运行的 SAP ASE 数据库 EC2

**目标技术堆栈**
+ Aurora PostgreSQL-Compatible 数据库

**迁移架构**

![使用 AWS SCT 和 AWS DMS 将 SAP ASE 数据库迁移至 Aurora PostgreSQL-Compatible。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/07fbdea1-0242-40ae-8e5f-2ce4a620a047/images/a3b018f3-2e7b-4c37-a218-870c56132acb.png)


## 工具
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-tools"></a>
+ [Amazon Aurora PostgreSQL 兼容版](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)是一个完全托管的、与 ACID 兼容的关系数据库引擎，可帮助您建立、运行和扩展 PostgreSQL 部署。
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 通过以下方法来简化异构数据库的迁移工作：将源数据库架构和大部分的自定义代码自动转换成与目标数据库兼容的格式。
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 支持几种不同的源数据库和目标数据库。有关更多信息，请参阅 AWS DMS 文档中的[数据迁移源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)和[数据迁移目标](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)。要获得最全面的版本和功能支持，我们建议您使用最新版本的 AWS DMS。 

## 操作说明
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-epics"></a>

### 设置环境
<a name="set-up-the-environment"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 在源 EC2 实例中配置网络访问权限。 | 在托管源 SAP ASE 数据库的 EC2 实例中设置安全组。<br />有关说明，请参阅[亚马逊 EC2 文档中的适用于 Linux 实例的亚马逊 EC2 安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html?icmpid=docs_ec2_console)。 | 系统管理员 | 
| 创建目标 Aurora PostgreSQL-Compatible DB 集群。 | 为您的目标数据库安装、配置和启动 Aurora PostgreSQL-Compatible 集群。<br />有关更多信息，请参阅 Aurora 文档中的[创建 Amazon Aurora DB 集群](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html)。 | 数据库管理员 | 
| 为目标数据库集群设置授权。 | 为目标数据库设置安全组以及防火墙。<br />有关说明，请参阅 Aurora 文档中的[创建 Amazon Aurora 数据库集群](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html)。 | 数据库管理员、系统管理员 | 

### 通过 AWS SCT 转换您的数据库架构
<a name="convert-your-database-schema-with-aws-sct"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 启动 AWS SCT。 | 按照 [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)中的说明启动 AWS SCT。<br />AWS SCT 提供基于项目的用户界面，可以自动将 SAP ASE 源数据库的数据库架构转换为与目标 Aurora PostgreSQL-Compatible DB 实例兼容的格式。 | 数据库管理员 | 
| 创建 AWS SCT 端点。 | 为源 SAP ASE 和目标 PostgreSQL 数据库创建端点。<br />有关说明，请参阅 [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers)。 | 数据库管理员 | 
| 创建评测报告。 | 创建数据库迁移评估报告以评测迁移情况，并检测任何不兼容的对象和函数。<br />有关说明，请参阅 [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport)。 | 数据库管理员 | 
| 转换架构。 | 按照 [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html)的说明转换数据库架构。 | 数据库管理员 | 
| 验证数据库对象。 | 如果 AWS SCT 无法转换数据库对象，它将识别其名称与其他细节。您必须手动转换这些对象。<br />要识别这些不匹配项，请按照 AWS Blog 文章[从 SAP ASE 迁移到 Amazon RDS for PostgreSQL 或 Amazon Aurora PostgreSQL 后验证数据库对象](https://aws.amazon.com/blogs/database/validate-database-objects-after-migrating-from-sap-ase-to-amazon-rds-for-postgresql-or-amazon-aurora-postgresql/) | 数据库管理员 | 

### 分析 AWS DMS 迁移
<a name="analyze-the-aws-dms-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 验证源数据库和目标数据库的版本。 | 检查 SAP ASE 的数据库版本是否与 AWS DMS 兼容。<br />有关更多信息，请参阅 AWS DMS 文档中的 [AWS DMS 来源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.title)和 [AWS DMS 目标](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html)。 | 数据库管理员 | 
| 确定存储类型和容量的要求。 | 根据源数据库的大小，为目标数据库选择适当的存储容量。 | 数据库管理员、系统管理员 | 
| 选择复制实例的实例类型、容量以及其他功能。 | 选择满足需求的实例类型、容量、存储特性和网络特性。<br />有关指导，请参阅 AWS DMS 文档中的[为迁移选择正确的 AWS DMS 复制实例](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html)。 | 数据库管理员、系统管理员 | 
| 识别网络访问安全要求。 | 确定源数据库和目标数据库的网络访问安全要求。<br />按照 AWS DMS 文档中的[为复制实例设置网络](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html)中的指导进行操作。 | 数据库管理员、系统管理员 | 

### 迁移数据
<a name="migrate-the-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 通过在 AWS DMS 中创建迁移任务以迁移数据。 | 要迁移数据，请创建任务并按照 [AWS DMS 文档](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html)说明进行操作。<br />建议使用最新版本的 AWS DMS，以获得最全面的版本和功能支持。 | 数据库管理员 | 
| 验证数据。 | 要验证数据是否准确地从源数据库迁移到目标数据库，请遵循AWS DMS文档中提供的[数据验证指南](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html)。 | 数据库管理员 | 

### 迁移应用程序
<a name="migrate-the-application"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 确定应用程序迁移策略。 | 从将应用程序迁移至云端的[七种策略 (7R)](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html) 中选择一种。 | 数据库管理员、应用程序所有者、系统管理员 | 
| 遵循应用程序迁移策略。 | 完成应用程序团队确定的数据库任务，包括更新目标数据库的 DNS 连接详细信息，以及更新动态查询。  | 数据库管理员、应用程序所有者、系统管理员 | 

### 割接至目标数据库
<a name="cut-over-to-the-target-database"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将应用程序客户端切换至新基础设施。 | 将连接从源数据库切换到目标数据库。<br />有关更多信息，*请参阅关系数据库*迁移策略的[割接](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/cut-over.html)部分 | 数据库管理员、应用程序所有者、系统管理员 | 

### 关闭项目
<a name="close-the-project"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 关闭临时 AWS 资源。 | 终止所有迁移任务、复制实例、端点以及其他 AWS SCT 和 AWS DMS 资源。<br />有关更多信息，请参阅 [AWS DMS 文档](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Deleting)。 | 数据库管理员、系统管理员 | 
| 审核和验证项目文档。 | 验证项目文档中的所有步骤，确保所有任务已成功完成。 | 数据库管理员、应用程序所有者、系统管理员 | 
| 关闭项目。 | 关闭迁移项目并提供任何反馈。 | 数据库管理员、应用程序所有者、系统管理员 | 

## 相关资源
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-resources"></a>

**参考**
+ [在 Amazon RDS 中为 PostgreSQL 数据库实例启用加密连接](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) (AWS Prescriptive Guidance)
+ [使用 pg\_transport 在两个 Amazon RDS 数据库实例之间传输 PostgreSQL 数据库](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg_transport.html) (AWS Prescriptive Guidance)
+ [Amazon Aurora 定价](https://aws.amazon.com/rds/aurora/pricing/)
+ [Amazon Aurora PostgreSQL-Compatible Edition 的最佳实践](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraPostgreSQL.BestPractices.html) (Amazon Aurora 文档)
+ [AWS SCT 文档](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [AWS DMS 文档](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [使用 SAP ASE 数据库作为 AWS DMS 源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)

**教程和视频**
+ [AWS Database Migration Service 入门](https://aws.amazon.com/dms/getting-started/)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U)（视频）