View a markdown version of this page

上传 DDL 文件(离线工作流程) - AWS 转换

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

上传 DDL 文件(离线工作流程)

在此工作流程中,T AWS ransform 完全根据上传的 DDL 文件对您的架构进行现代化改造,无需直接连接到您的数据库。您可以针对 SQL Server 运行提供的提取脚本,上传生成的架构文件,然后 Trans AWS form 发现、评估、转换该架构并将其部署到亚马逊 Aurora PostgreSQL。如果您的数据库无法直接连接,或者需要在授予网络访问权限之前进行可行性评估和架构转换,请选择此工作流程。

重要

离线工作流程仅转换和部署您的架构。它不迁移真实数据。如果可用,您可以生成综合测试数据来验证目标。如果您需要迁移真实数据,请使用 AWS DMS 控制台创建新的数据迁移项目。

离线工作流程的先决条件

  • 支持的 SQL Server 版本(2008 年 R2 到 2022 年,所有版本)。

  • PowerShell 7 或更高版本来运行提取脚本。 PowerShell 已预先安装在 Windows 上。在 macOS 或 Linux 上,安装 PowerShell 7+ 并使用pwsh运行脚本。请参阅微软安装指南。

  • 该sqlcmd实用程序在 PATH 上可用。请参见 sqlcmd 实用程序。

  • 至少具有和VIEW ANY DEFINITION权限的 SQL Server 身份验证登录名(用户名VIEW SERVER STATE和密码)。该脚本不支持 Windows 或域身份验证。

  • 启用了 IAM 身份中心或 IAM 身份验证的后续阶段(创建 Aurora PostgreSQL 目标和部署转换后的架构)的 AWS 账户。

  • 架构分析和转换阶段不需要入站或出站数据库连接。 AWS

工作流程步骤

  1. 上传 DDL 文件 — T AWS ransform 为聊天中的提取脚本提供了下载按钮。下载脚本并在您的 SQL 服务器上运行该脚本。(可选)使用逗号分隔的包含列表(不区分大小写)将提取限制到特定数据库。该脚本生成带有时间戳.zip的 SQL DDL 文件。使用聊天上传按钮上传.zip(或单个.sql文件)。

  2. Discovery — T AWS ransform 解析上传的文件并对按数据库分组的数据库对象(表、存储过程、视图、触发器、索引、约束、序列等)进行编目。您可以查看每个数据库的摘要,然后选择要评估的数据库。如果某些语句无法解析,T AWS ransform 会报告问题并允许您继续处理已解析的对象、选择特定的数据库或上传更正的文件。

  3. 评估 — T AWS ransform 评估所选数据库的转换可行性,并生成一份可下载的报告,其中包含执行摘要、每个数据库的对象摘要和工作量 (LOE) 估计值。自定义 LOE 分数、上传其他文件或继续转换。

  4. 架构转换 — T AWS ransform 将 SQL 服务器架构(包括 T-SQL 存储过程)转换为 Aurora PostgreSQL,一次只能转换一个数据库。单个数据库会自动转换;对于多个数据库,您可以选择要转换哪个数据库。数据库可以独立并行转换。

  5. 目标配置 — 对于每个转换后的数据库,T AWS ransform 会在您的账户中创建或重复使用亚马逊 Aurora PostgreSQL 集群。 AWS 您可以通过引导式提示选择网络和目标配置。

  6. 架构部署 — T AWS ransform 将转换后的架构应用于 Aurora 集群。部署后,修复聊天或 IDE 中的剩余对象,生成综合测试数据(如果可用),或完成。

  7. 应用程序代码现代化(可选)— T AWS ransform 可以更新相关的.NET 6+ 应用程序以与 Aurora PostgreSQL 配合使用。该服务更新源代码中的数据库连接,修改实体框架中的 ORM 代码,并在人工监督的统一工作流程中与 Aurora PostgreSQL 兼容。 ADO.NET 使用 AWS CodeConnections 和的个人访问令牌 (PAT) 连接您的源代码存储库 GitHub GitLab,或者为包含源代码的 zip 文件提供 S3 URI。

注意

亚马逊 Aurora PostgreSQL 是该工作流程唯一支持的目标引擎。

离线工作流程的服务限制

以下默认限制适用于离线工作流程。每个账户可以配置一些限额;请联系您的 AWS 账户团队申请提高。

限制 默认 适用于
每个任务的上传大小 1,024 MB (1 GB),任务中所有上传的累积数据 上传 DDL 文件
每月转换的数据库 每个账户 10 个 架构转换
每个数据库的存储过程 250 架构转换
并行架构转换 一次 5 个数据库 架构转换
并行运行的作业 5 每个 账户
  • 上传大小限制是每个任务的累积预算。如果您重置输入设置,则预算将被清除(这会丢弃已上传的文件,并在同一工作中重新运行发现和评估)。

  • 当您选择 5 个以上的数据库进行转换时,其他数据库将排入队列,并在运行转换完成时自动启动。

  • 评估永远不会受到每个数据库存储过程的限制的阻碍;只影响架构转换。

对离线工作流程进行故障排除

提取脚本

  • pwsh: command not found(macOS/Linux) — 未安装 PowerShell 7+。安装并运行pwsh ./ExtractDatabaseMetadata.ps1。

  • 引用错误 sqlcmd -该sqlcmd实用程序不在 PATH 上。安装它并确保它在 PATH 上。

  • 登录或权限错误 -使用带有VIEW SERVER STATE和的 SQL Server 身份验证登录名VIEW ANY DEFINITION。 Windows/domain 不支持身份验证。

  • 仅导出部分数据库 — 包含列表缩小了范围。 Re-run 没有它,或者指定正确的以逗号分隔的数据库名称。

上传

  • 上传被拒绝,并显示大小信息 -超出了每个任务的上传预算。上传一个较小的文件,或要求代理重置输入设置以清除同一工作中的预算。向代理商询问当前的剩余预算,而不是估计。

  • 文件未被接受 — 上传脚本.zip生成的文件或单个.sql文件。将多个文件压缩到一个存档中。

Discovery

  • 检测到 SQL 语法问题 -下载问题报告。无错误部分中的对象仍处于编目状态。选择继续处理已解析的对象、选择特定的数据库或上传更正的文件。

  • 按通用名称分组的对象 -解析器找不到USE [Database]语句。出现提示时,提供正确的数据库名称。

  • 未找到对象 -文件不包含任何CREATE语句,或者全部解析失败。 Re-upload 有效的 DDL。

评测

  • LOE 估算值偏离了 ——选择自定义 LOE 分数、编辑模板并重新上传以重新生成评估。

  • 遗漏的对象 -选择上传其他 SQL 文件;自动重新运行发现和评估。

架构转换

  • 数据库转换失败 -T AWS ransform 会报告原因。回复要求重试;该数据库的转换重新启动。

  • 响应发送到错误的数据库 -当多个数据库等待输入时,请指定您的消息所针对的数据库。您可以使用对特定数据库进行寻址@DatabaseName:。

目标配置和部署

  • 无法创建 Aurora 集群 — 完成指导性凭证和联网提示,并确保该账户有权创建 Aurora PostgreSQL。

  • 某些对象未部署 -使用部署后选项修复聊天或 IDE 中的剩余对象,然后重新部署。