我想将我的数据库迁移到 Amazon Relational Database Service (Amazon RDS) 或 Amazon Aurora。我怎样才能在最短的停机时间内做到这一点?
简短描述
**注意:**如果您要执行同构迁移,请尽可能使用引擎的本机工具(如 MySQL 转储或 MySQL 复制)。
要使用 AWS DMS 迁移到 Amazon RDS 数据库实例,请执行以下操作:
- 创建复制实例
- 创建目标端点和源端点
- 刷新源端点架构
- 创建迁移任务
- 监控您的迁移任务
您可以将这些步骤用于所有 Amazon RDS 和 Amazon Aurora 引擎类型,包括 Amazon RDS for Oracle 和 Amazon Aurora for MySQL 数据库实例。
解决方法
**注意:**只有在迁移表数据之前必要时,AWS DMS 才会在目标上创建带有主键的表。要生成完整的目标架构,请使用 AWS Schema Conversion Tool (AWS SCT)。有关详细信息,请参阅转换架构。
(可选)使用 Amazon CloudWatch 开启日志记录
Amazon CloudWatch 日志可以在迁移时提醒您注意潜在的问题。有关详细信息,请参阅使用 Amazon CloudWatch 监控复制任务。
创建复制实例
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Replication Instances(复制实例)。
- 选择 Create replication instance(创建复制实例)。
- 输入您的复制实例名称、描述、实例类、Amazon Virtual Private Cloud (Amazon VPC) 和多可用区首选项。
**注意:**选择足以满足迁移工作负载的实例类。如果该实例不足以满足您的工作负载,您可以稍后修改复制实例。
- 在 Advanced(高级)部分中,选择您的 VPC 安全组,或选择默认选项。
- 选择 Create replication instance(创建复制实例)。
创建目标端点和源端点
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Endpoints(端点)。
- 选择 Create endpoint(创建端点)以创建源数据库和目标数据库。
- 对于 Endpoint type(端点类型),选择 Source(源)。
- 输入端点的引擎特定信息。
- 选择 Run Test(运行测试)。
- 测试完成后,选择 Save(保存)。
- 重复步骤 3-6,但对于 Endpoint type(端点类型),选择 Target(目标)。
注意: 对目标和源都完成此步骤。
刷新源端点架构<b></b>
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Endpoints(端点)。
- 选择源端点,然后选择 Refresh schemas(刷新架构)。
- 选择 Refresh schemas(刷新架构)。
**注意:**您必须刷新源,以便在创建 AWS DMS 任务时源架构显示在表映射中。
创建迁移任务
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Database migration tasks(数据库迁移任务)。
- 选择 Create task(创建任务)。
- 指定 Task identifier(任务标识符)、Replication instance(复制实例)、Source database endpoint(源数据库端点)、Target database endpoint(目标数据库端点)和 Migration type(迁移类型)。选择以下迁移类型之一:
仅迁移现有数据 - 使用此迁移类型进行一次性迁移。
迁移现有数据并复制正在进行的更改 - 使用此迁移类型可在最短的停机时间内将大型数据库迁移到 AWS 云。
迁移正在进行的复制更改 - 当您已经迁移了现有数据并希望将源数据库与 AWS 云上托管的目标 MySQL 数据库同步时,请使用此迁移类型。
- 在 Task Settings(任务设置)部分中,根据需要修改任务。
- 从 Table mappings(表映射)部分中,选择 Guided UI(引导式 UI)。
- 选择 Add new selection rule(添加新选择规则),然后指定您的 Schema(架构)和 Table name(表名称)。
**注意:**您可以更改或转换部分或全部选定对象的源架构、表或列名称。为此,请展开 Transformation rules(转换规则)部分。选择 Add new transformation rule(添加新转换规则)。然后选择 Target(目标)、Schema name(架构名称)和 Action(操作)。
- 选择 Create task(创建任务)。
注意:如果您有大型对象 (LOB) 列,请使用受限 LOB 模式。有关详细信息,请参阅在 AWS DMS 任务中为源数据库设置 LOB 支持。
监控您的迁移任务
- 使用 Task Monitoring(任务监控)视图监控迁移任务。您可以查看哪些表已成功迁移以及哪些表正在迁移中。注意以下消息类型:
I - 表示信息性消息
W - 表示警告
E - 表示迁移数据库时发生的错误
- 通过终端连接到源实例和目标实例,验证数据库是否已成功迁移。
迁移 Oracle
当您使用 Oracle 作为源数据库时,AWS DMS 会将表迁移到指定的目标端点用户。您可以使用转换规则更改 Oracle 目标的架构。有关详细信息,请参阅更改 Oracle 目标的用户和架构。
迁移到 MySQL/PostgreSQL/SQL Server
在迁移过程中,架构和表将迁移到目标上的相同名称。如果要将表迁移到目标上的其他架构/表,请创建映射规则以指定目标数据库上的新架构/表。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "test",
"table-name": "%"
},
"rule-action": "include"
}, {
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "rename",
"rule-target": "schema",
"object-locator": {
"schema-name": "test"
},
"value": "newtest"
}
]
}
检查日志以确认没有错误。
在切换到新的目标数据库之前,监控延迟并比较源数据库和目标数据库上的数据量。有关详细信息,请参阅 AWS Database Migration Service 中的迁移任务故障排除。
相关信息
AWS Database Migration Service 的工作原理
Database Migration step-by-step walkthroughs
Sources for data migration
Targets for data migration