View a markdown version of this page

离线源和虚拟目标的虚拟模式 - AWS Database Migration Service

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

离线源和虚拟目标的虚拟模式

AWS Database Migration Service (DMS) 为架构转换中的数据提供者提供虚拟模式虚拟模式支持两种用例:

  • 离线源-无需连接到源数据库即可从导出的脚本文件转换架构。当无法直接连接到源数据库时,请使用此选项。离线源的@@ 虚拟模式目前可用于微软 SQL Server 源数据库。

  • 虚拟目标-无需配置目标数据库即可转换架构。在配置目标基础架构之前,您可以评估兼容性、转换和查看架构代码以及测试不同的目标选项。虚拟模式适用于所有支持的目标数据库。有关支持的目标数据库的更多信息,请参阅在 DMS 架构转换中创建和设置目标数据提供程序

在虚拟模式下创建数据提供器

要在虚拟模式下创建数据提供器,请在创建数据提供器页面上打开虚拟模式。有关更多信息,请参阅 为 DMS 架构转换创建数据提供器

在虚拟模式下使用数据提供商

在迁移项目中以虚拟模式使用数据提供器
  1. 创建新的迁移项目,或者选择现有迁移项目,然后选择 M odify

  2. 对于源数据提供器或目标数据提供器,请选择已开启虚拟模式的数据提供器。

  3. 对于 S ecret,选择任何现有的有效密钥。

    注意

    创建或修改迁移项目时,您可以为所有数据提供商(包括开启虚拟模式的数据提供商)指定 Secret 和 IAM 角色。对于虚拟模式下的数据提供者,这些凭据不用于连接到数据库。

  4. 对于 IAM 角色,请选择对密钥具有读取权限的 IAM 角色。

  5. 选择保存更改

  6. 选择架构转换选项卡。

  7. 选择启动架构转换。等到项目开始。

架构转换在虚拟模式下使用数据提供程序的方式与使用直接连接的方式相同。DMS 架构转换禁用需要数据库连接的操作。

对于脱机源,可以在源树的 “数据库” 节点上使用 “从数据库刷新”。此操作会清除对象树并从 S3 存储桶中的数据定义语言 (DDL) 脚本中重新加载元数据。

对于虚拟目标,使用目标树上的 “另存为 SQL” 来导出转换后的架构代码。

离线来源

为源数据提供器开启虚拟模式时,无需连接到源数据库即可转换导出的脚本文件中的架构。当无法直接连接到源数据库时,请使用此选项。您提供描述源数据库对象的 DDL 脚本。在开始之前,请确保满足以下要求。

离线来源的先决条件

支持的源数据库方言
  • 从微软 SQL Server 导出的 DDL 脚本

    注意

    您可以使用 SQL Server Management Studio (SSMS) 或 SQL Server 管理对象 (SMO) 导出数据库对象。有关更多信息,请参阅 导出 SQL 服务器数据库对象

DDL 脚本要求
  • 每个数据库对象都存储为单独的.sql文件,采用 Unicode 编码。

  • 包括一个单独的.sql文件,其中包含每个数据库的CREATE DATABASE语句。

  • 每个目标文件都以一条USE [database_name]语句开头,该语句标识该对象属于哪个源数据库。

  • 每个文件都包含数据库对象的一条CREATE语句。

  • 脚本中引用的数据库对象使用架构限定的名称(例如)。dbo.TableName如果未指定架构,dbo则使用。

  • 文件中的任何ALTERDROP语句都将被跳过。

注意

导出时,SQL Server 可能会在主语句旁边在同一个文件中包含其他CREATE语句。DMS 架构转换处理以下内容:

  • CREATE INDEX— 表上定义的索引

  • CREATE TRIGGER— 与表关联的触发器

  • ALTER TABLE ... ADD DEFAULT-列的默认值

  • ALTER TABLE ... ADD CONSTRAINT DEFAULT— 命名的默认约束

  • ALTER TABLE ... ALTER COLUMN ... NOT FOR REPLICATION— 列复制设置

文件中的所有其他 ALTER and DROP 语句都将被跳过。

S3 文件夹结构

DMS 架构转换会扫描您指定的 S3 路径下的所有文件夹。它搜索.sql文件以加载数据库对象。S3 路径可以指向存储桶或存储桶中的任何前缀。每个文件中的USE [database_name]语句标识该对象的源数据库。

将每个数据库的脚本存储在单独的文件夹中,以避免文件名和对象名冲突。

S3 存储桶配置
  • 将 DDL 脚本上传到 Amazon S3 存储桶。

  • 创建允许 DMS 服务委托人 (dms.amazonaws.com) 代入该角色的 IAM 角色,并将授予策略s3:GetObjects3:ListBucket权限范围限定到您的 S3 存储桶。有关更多信息,请参阅 为离线源配置 S3 访问权限

虚拟目标

目标数据提供@@ 器中的虚拟模式允许您在不配置目标数据库的情况下执行架构转换。准备好迁移时,可以切换到直接数据库连接。

将目标数据提供者从虚拟模式切换到直接数据库连接

准备好继续迁移时,请修改数据提供程序以清除虚拟模式并使用直接数据库连接。

重要

关闭虚拟模式并保存数据提供程序后,您无法将其重新打开。您必须在关联的迁移项目中提供数据提供商的数据库连接详细信息以及有效的密钥和 IAM 角色。

要从中切换 虚拟模式 到直接数据库连接
  1. 登录 AWS 管理控制台,然后打开 AWS DMS 控制台。

  2. 在导航窗格中,选择数据提供程序。然后选择要修改的数据提供器。

  3. 在 “关联的迁移项目” 部分,查看使用此数据提供器的所有迁移项目。

  4. 选择第一个关联的项目。

  5. 选择架构转换选项卡。

  6. 选中详细信息部分 - 状态选项。

  7. 如果状态为打开关闭架构转换按钮未灰显,请选择该按钮并等待项目关闭。

  8. 对其余的所有关联迁移项目重复之前的步骤。

  9. 确认没有其余打开的项目。

  10. 返回到数据提供程序并选择修改

  11. 关闭虚拟模式

  12. 输入数据库的连接设置。连接参数取决于数据库引擎。有关更多信息,请参阅创建数据提供程序

  13. 选择保存更改

    注意

    保存更改后,无法重新开启虚拟模式

  14. 返回 AWS DMS 控制台。

  15. 在导航窗格中,选择迁移项目。然后选择要更改其数据提供程序的迁移项目。

  16. 选择 Modify(修改)。

  17. 对于 S ec ret,选择包含数据库凭据的密钥。

  18. 对于 IAM 角色,选择用于读取密钥的 IAM 角色。检查此处指定的 IAM 角色是否正确,是否被授予对连接证书密钥的读取权限,并且可用于 AWS DMS 架构转换服务。

  19. 选择保存更改

  20. 选择架构转换选项卡。

  21. 选择启动架构转换。等待项目启动。

转换数据提供程序后首次启动项目时,可以查看转换结果。您只能执行以下操作:

  • 在节点架构上 - 从数据库刷新。

  • 在数据库对象上 - 应用更改,然后另存为 SQL。

应用” 操作会将转换后的对象应用于数据库。

从数据库刷新操作会从真实数据库加载数据库对象。所有未保存的转换对象都将丢失。