我想将数据库迁移至 Amazon Relational Database Service (Amazon RDS) 或 Amazon Aurora。我怎样才能以最少的停机时间做到这一点?
简短描述
注意:如果您执行同构迁移,请尽可能使用引擎的原生工具(例如 MySQL dump 或 MySQL replication)。
要使用 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 logs 可以提醒您迁移时的潜在问题。有关更多信息,请参阅 使用 Amazon CloudWatch 监控复制任务。
创建复制实例
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Replication Instances(复制实例)。
- 选择创建复制实例。
- 输入您的复制实例名称、描述、实例类、Amazon Virtual Private Cloud (Amazon VPC) 和多可用区首选项。
注意:-选择足够运行您的迁移工作负载的实例类。如果实例不足以满足您的工作负载,您可以稍后修改复制实例。
- 从 Advanced(高级)部分,选择您的 VPC 安全组,或选择默认选项。
- 选择 Create replication instance(创建复制实例)。
创建目标和源端点
- 打开 AWS DMS 控制台,在导航窗格中选择 Endpoints(端点)。
- 选择创建终端节点来创建源数据库和目标数据库。
- 对于端点类型,选择源。
- 输入端点的引擎特定信息。
- 选择 Run Test(运行测试)。
- 测试完成后,选择 Save (保存)。
- 重复第 3–6 步,但对于 Endpoint type(端点类型),选择 Target(目标)。
注意:为 target(目标)和 source(源)完成此步骤。
刷新源端点架构<b></b>
- 打开 AWS DMS 控制台,在导航窗格中选择 Endpoints(端点)。
- 选择源端点,然后选择刷新架构。
- 选择刷新架构。
注意:您必须刷新源,以使源架构在您创建 AWS DMS 任务时显示在表映射中。
创建迁移任务
- 打开 AWS DMS 控制台,然后从导航窗格中选择 Database migration tasks(数据库迁移任务)。
- 选择 Create task(创建任务)。
- 指定 Task identifier(任务标识符)、Replication instance(复制实例)、Source database endpoint(源数据库终端节点)、Target database endpoint(目标数据库终端节点)和 Migration type(迁移类型)。选择以下迁移类型之一:
Migrate existing data only (仅迁移现有数据) – 对一次性迁移使用此迁移类型。
迁移现有数据并复制正在进行的更改 – 使用此迁移类型可将大型数据库迁移到 AWS Cloud 且停机时间最短。
Migrate ongoing replication changes(迁移正在进行的复制更改)– 在您已迁移了现有数据并希望源数据库与 AWS Cloud 中托管的目标 MySQL 数据库同步时,使用此迁移类型。
- 从 Task Settings(任务设置)部分,根据需要修改任务。
- 从 Table mappings(表映射)部分中,选择 Guided UI(引导用户界面)。
- 选择 Add new selection rule(添加新选择规则),然后指定您的 Schema(架构)和 Table name(表名称)。
注意:您可以更改或转换部分或全部选定对象的源架构、表或列名。为此,请展开 Transformation rules(转换规则)部分。选择 Add new transformation rule(添加新转换规则)。然后选择目标、架构名称和操作。
- 选择 Create task(创建任务)。
注意:如果您具有大对象 (LOB) 列,那么请使用 Limited LOB Mode(有限 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 分步演练
数据迁移的源
数据迁移的目标