

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

# 使用 AWS DMS 将 Oracle 数据库迁移至 Amazon DynamoDB
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms"></a>

*Rambabu Karnena，Amazon Web Services*

## Summary
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-summary"></a>

此模式将指导您完成以下步骤：使用 AWS Database Migration Service ([AWS DMS](https://aws.amazon.com/dms/)) 将 Oracle 数据库迁移至[Amazon DynamoDB](https://aws.amazon.com/dynamodb/)。其涵盖了三类源数据库：
+ 本地 Oracle 数据库
+ 亚马逊弹性计算云 ([亚马](https://aws.amazon.com/ec2/)逊 EC2) 上的 Oracle 数据库
+ 适用于 Oracle 数据库实例的 Amazon Relational Database Service ([Amazon RDS](https://aws.amazon.com/rds/))

在此概念验证中，此模式侧重于从 Amazon RDS for Oracle 数据库实例迁移。

## 先决条件和限制
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 连接至 Amazon RDS for Oracle 数据库的应用程序
+ 在源 Amazon RDS for Oracle 数据库中创建的、包含主键和示例数据的表

**限制**
+ 不考虑迁移 Oracle 数据库对象，例如过程、函数、包和触发器，因为 Amazon DynamoDB 不支持上述数据库对象。

**产品版本**
+ 此模式适用于 AWS DMS 支持的所有版本的 Oracle 数据库。有关更多信息，请参阅 [Oracle 数据库作为 AWS DMS 的源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)以及 [Amazon DynamoDB 数据库作为 AWS DMS 的目标](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html)。建议使用最新版本的 AWS DMS，以获得最全面的版本和功能支持。

## 架构
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-architecture"></a>

**源技术堆栈**
+ 适用于 Oracle 数据库实例的 Amazon RDS EC2、亚马逊上的 Oracle 或本地 Oracle 数据库

**目标技术堆栈**
+ Amazon DynamoDB

**AWS 数据迁移架构**

![\[数据从 AWS DMS 上的 Oracle 数据库迁移至 Amazon DynamoDB。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/463fc7d4-ec8d-473b-8c7f-1df31800ee03/images/180e7340-3887-455d-a591-b5850e22770a.png)


## 工具
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 可帮助您将数据存储迁移到 Amazon Web Services Cloud，或者在云和本地设置的组合之间迁移。
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) 是一项完全托管式 NoSQL 数据库服务，可提供快速、可预测、可扩展的性能。
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 可帮助您在 Amazon Web Services Cloud 中设置、操作和扩展关系数据库。此模式使用了 Amazon RDS for Oracle。

## 操作说明
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-epics"></a>

### 计划迁移
<a name="plan-the-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 VPC。 | 在 Amazon Web Services account 中，创建虚拟私有云（VPC）和私有子网。 | 系统管理员 | 
| 创建安全组和网络访问控制列表。 | 有关更多信息，请参阅 [AWS 文档](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。 | 系统管理员 | 
| 配置并启动 Amazon RDS for Oracle 数据库实例。 | 有关更多信息，请参阅 [AWS 文档](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)。 | 数据库管理员、系统管理员 | 

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


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 为访问 DynamoDB 创建 IAM 角色。 | 在 AWS Identity and Access Management (IAM) 控制台中，创建角色，附加策略 `AmazonDynamoDBFullAccess to it`，然后选择 AWS DMS 作为服务。 | 系统管理员 | 
| 为迁移创建 AWS DMS 复制实例。 | 复制实例应与源数据库位于同一可用区和同一 VPC 。 | 系统管理员 | 
| 在 AWS DMS 中创建源端点和目标端点 | 若要创建源数据库端点，有两个选项供您选择：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms.html)若要创建目标数据库端点，请从先前 DynamoDB 访问任务中选择 Amazon 资源名称（ARN）的角色。 | 系统管理员 | 
| 创建将源 Oracle 数据库表加载至 DynamoDB 的 AWS DMS 任务。 | 从前述步骤中选择源和目标端点名称以及复制实例。该类型可完全加载。选择 Oracle 架构并指定 **%**，以选择所有表。 | 系统管理员 | 
| 验证 DynamoDB 中的表格。 | 若要查看迁移结果，请从 DynamoDB 控制台的左侧导航窗格中选择**表格**。 | 数据库管理员 | 

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


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 修改应用程序代码。 | 若要连接至 DynamoDB 并从中检索数据，请更新应用程序代码。 | 应用程序所有者，数据库管理员，系统管理员 | 

### 割接
<a name="cut-over"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将应用程序客户端切换至使用 DynamoDB。 |  | 数据库管理员、应用程序所有者、系统管理员 | 

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


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 关闭 AWS 资源。 | 例如，关闭 Amazon RDS for Oracle 实例、DynamoDB 和 AWS DMS 复制实例。 | 数据库管理员、系统管理员 | 
| 收集指标。 | 指标包括迁移时间、手动工作和工具执行工作的百分比以及成本节约。 | 数据库管理员、应用程序所有者、系统管理员 | 

## 相关资源
<a name="migrate-an-oracle-database-to-amazon-dynamodb-using-aws-dms-resources"></a>
+ [AWS Database Migration Service 和 Amazon DynamoDB：您需要了解的内容](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-amazon-dynamodb-what-you-need-to-know/)（博客文章）
+ [将 Oracle 数据库作为 AWS DMS 的源](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [将 Amazon DynamoDB 数据库作为 AWS Database Migration Service 的目标](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html)
+ [从 RDBMS 迁移至 Amazon DynamoDB 的最佳实践](https://docs.aws.amazon.com/whitepapers/latest/best-practices-for-migrating-from-rdbms-to-dynamodb/welcome.html)（白皮书）