一些客户将 SAP ASE原称 Sybase作为其主要数据库引擎来运行工作负载,通常希望在 AWS 云中继续使用 SAP ASE,采用自带许可BYOL模式。这种方法为他们提供了更大的灵活性、高可用性和强大的归档解决方案,同时能够在未来的战略蓝图中保留现代化的前景。
本文将提供从本地 SAP ASE 数据库迁移到 Amazon Elastic Compute CloudEC2上 SAP ASE 的不同选项,主要基于数据大小、应用停机时间和数据合规性。这些迁移方法包括使用 AWS 数据库迁移服务DMS和 SAP ASE 原生特性。
在开始迁移之旅时,您可能会面临与数据库大小、业务关键性、工作负载需求、数据合规性和数据迁移相关的不同挑战。AWS DMS 是快速、安全地迁移数据库工作负载的理想选择,可以实现最小的停机时间和零数据丢失。
我们将探讨三种不同的数据迁移选项,包括 AWS DMS 和 SAP ASE 原生特性,如 dump、load 和 Bulk Copy Program (bcpm)。这些选项提供灵活性,同时您可以充分利用自己在本地数据库上熟悉的 SAP ASE 原生功能。
迁移策略用例数据库大小AWS DMS业务关键应用,最低停机,低延迟,CDC 变化数百 GB 到 TBDump and Load非关键应用,放宽 RTO/RPO 要求几百 GB100300 GBBCP高延迟,较低的应用依赖性几十 GBlt 100 GB您应准备以下前提条件:
一个有效的 AWS 账户已安装 SAP ASE 的 EC2 实例AWS DMS 复制实例一个用于存储备份和 bcp 文件的 Amazon S3 存储桶具有 Sybase sa 角色权限的用户用于 DMS,以及 dbo 角色用于 bcp、dump 和 load 迁移方法已安装可连接到 Sybase ASE 服务器的工具在相同 VPC 中创建源数据库、复制实例和目标数据库AWS DMS 支持 同构 和 异构 数据迁移。AWS DMS 支持完全加载和变更数据捕获CDC方法当 SAP ASE 为源时用于单个任务以高效迁移历史数据和持续变化的数据,从本地迁移至 AWS 云。
以下架构展示了使用 AWS DMS 将 SAP ASE 数据迁移到 AWS 云的过程。

通过以下步骤解释我们的用例,我们在 Amazon EC2 上运行源 SAP ASE 数据库,如下图所示。
您需要为相应的数据库创建源和目标连接,以告知 AWS DMS 从哪里提取数据源数据库以及将数据加载到哪里目标数据库。然后,您创建一个在此服务器上运行的任务,以将数据从源迁移到目标。
该解决方案具有以下关键组件:
源数据库 SAP ASE 安装并配置在 EC2 实例上运行复制实例 我们使用 AWS DMS 复制实例目标数据库 另一 SAP ASE 数据库在 Amazon EC2 上运行要执行完全加载并设定从 SAP ASE 的持续复制,您应完成以下步骤。
检查源数据库的复制代理配置状态:确定数据库是否已配置为使用复制代理功能,请执行以下命令:
sqlexec spconfigrepagent
如果数据库未配置为使用复制代理,您可以继续建立日志传输管理器LTM的截断点。如果已配置复制代理,请使用以下命令禁用线程。
sqluse pubs2goexec spstoprepagent pubs2gospconfigrepagent pubs2 disable preserve secondary truncptgo
在源数据库上建立日志传输管理器LTM截断点:
要为 LTM 截断 创建检查点,请连接到 Sybase ASE 服务器,打开一个新查询窗口,执行以下命令。
sqldbcc settrunc(ltmvalid)
以下截屏显示 LTM 截断点已建立。
在源数据库上启用复制:
要启用复制,请完成以下步骤:
检查源数据库中所有表的当前复制状态,运行以下命令:sqlspsetreptable
启用源数据库中表的复制,执行以下命令:sqlspsetreptable ltlttablenamegtgt true
可以使用前面的命令启用需复制到目标数据库的所有表的复制。
以下截屏显示在 pubs2 数据库中启用了 authors 表的复制。
使用以下命令验证表的复制是否启用:
sqlspsetreptable
创建 AWS DMS 复制实例:
要设定从 SAP ASE 源数据库到目标数据库的持续复制,请按照 文档 中的步骤创建 AWS DMS 复制实例。
创建源端点:
现在您需要创建源端点并使用在上一步中创建的复制实例测试连接:
在 AWS DMS 控制台中,选择导航窗格中的 Endpoints端点。选择 Create endpoint创建端点。在 Endpoint type端点类型 中,选择 Source endpoint源端点。在 Endpoint identifier端点标识符 中,输入端点名称。在 Source engine源引擎 中,选择 SAP Sybase ASE。以下截屏显示了详细配置。在 Access to endpoint database options访问端点数据库选项 中,选择您首选的方法以认证 SAP ASE 源数据库:使用 Secrets Manager 或手动认证。对于本文,我们使用手动认证,选择 Provide access information manually手动提供访问信息。在 Server name服务器名称 中,输入源数据库服务器的名称地址或 IP 地址。输入源数据库服务器的端口、用户名、密码和数据库名称。Secure Socket Layer (SSL) mode安全套接层模式 启用 SSL 建立 DMS 到源数据库服务器的安全连接。在本文中,我们选择 none无。选择 Create endpoint创建端点。以下截屏显示了配置详情。创建目标端点:
接下来,您创建目标端点,并使用在上一步中创建的复制实例测试连接。
在 AWS DMS 控制台中,选择导航窗格中的 Endpoints端点。选择 Create endpoint创建端点。在 Endpoint type端点类型 中,选择 Target endpoint目标端点。在 Endpoint identifier端点标识符 中,输入端点名称。在 Target engine目标引擎 中,选择 SAP Sybase ASE。对于 Access to endpoint database options访问端点数据库选项,选择 Provide access information manually手动提供访问信息。输入服务器名称、端口、用户名、密码和源数据库服务器的数据库名称。对于 Secure Socket Layer (SSL) mode安全套接层模式,选择 none无。选择 Create endpoint创建端点。以下截屏显示配置详情。
创建 AWS DMS 数据库迁移任务:
要创建数据库迁移任务,使用复制实例和源、目标端点,完成文档中的步骤:
在 AWS DMS 控制台中,选择导航窗格中的 Database migration tasks数据库迁移任务。选择 Create task创建任务。在 Task identifier任务标识符 中,输入一个唯一名称。选择您的复制实例、源数据库端点和目标数据库端点。对于 Migration type迁移类型,选择 Migrate existing data and replicate ongoing changes迁移现有数据并复制持续变化。对于 Target table preparation mode目标表准备模式,选择 Do nothing不做任何操作。对于 Stop task after full load completes完成完全加载后停止任务,选择 Don’t stop不停止。对于 LOB column settingLOB 列设置,选择 Limited LOB mode限制 LOB 模式。在限制 LOB 模式下,您可以设置支持 DMS 接受的最大 LOB 大小。对于 Data validation数据验证,选择 Turn off关闭,因为在 SAP ASE 端点下截至本文写作时不支持此选项。在 Advanced task settings高级任务设置 部分检查选项并根据需要输入值。在 Table mappings表映射 部分,选择 Add new selection rule添加新选择规则。对于 Schema name模式名称 和 Table name表名 输入 ,以包含源数据库中的所有模式和表。对于本文,我们设置复制 authors 表默认情况下,Premigration assessment迁移前评估 被选中,以检查任务开始之前是否存在潜在的复制问题。对于本文,请取消选中该选项。选择 Manually later稍后手动 作为 Migration task startup configuration迁移任务启动配置。选择 Create task创建任务。启动迁移任务:
在启动迁移任务之前,请确保禁用或删除目标数据库中的任何约束和触发器如果有。
要启动迁移任务,请在 DMS 控制台的导航窗格中选择 Database migration task数据库迁移任务,选择在前面的步骤中创建的任务。从 Actions操作 菜单中选择 Restart/Resume重新启动/继续。
以下截屏显示所选任务。
有关更多详细信息,请参考文档获取 监控 AWS DMS 任务。
如果您有需要持续数据复制的业务关键应用程序,要求低延迟和接近实时的复制,并且拥有高恢复时间目标RTO,我们建议使用 AWS DMS。
请注意,在使用 SAP ASE 作为 AWS DMS 的源和目标时存在一些限制。更多信息,请参考以下内容:
作为 AWS DMS 源使用 SAP ASE 的限制作为 AWS DMS 目标使用 SAP ASE 数据库的限制SAP ASE 提供诸如 dump 和 load 或 bcp 的原生功能,可用于同构数据迁移,以节省成本和时间。将本地 SAP ASE 数据库迁移到托管在 Amazon EC2 上的 SAP ASE 是同构迁移。因此,我们可以利用 SAP ASE 原生功能进行数据迁移,这是经济高效的解决方案。
以下迁移架构中包含一个 S3 存储桶,用于存储从本地数据库中提取的转储文件。我们使用 S3 存储桶中的转储文件来恢复新的数据库。
Dump 和 load 是 SAP ASE 的备份和恢复命令。Dump 命令制作数据和事务日志的完整副本,作为转储文件。该转储文件由 load 命令读取以恢复数据库。
进行源数据库的完整备份,请完成以下步骤:
使用 isql 或任何支持的 SQL 编辑器工具登录源 SAP ASE 数据库服务器。以下命令使用 isql:bashisql Ultloginnamegt Sltservernamegt Pltpasswordgt w 1024 s
一元加速器下载运行以下 SQL 命令对用户数据库进行完全转储到指定的本地路径和文件名称:sqlUse mastergodump database ltuserdatabasenamegt to ltbackupfilenamegtgo
在以下代码中,我们对数据库 pubs2 进行了备份:
sqlUse mastergodump database pubs2 to /opt/sap/dbbackup/pubs2bkdmpgo
我们需要将创建的备份文件复制到 S3 存储桶。在实际情况下,这些文件是在本地创建的。您需要通过使用 AWS Direct Connect、公共互联网或 [AWS SitetoSite