从 SAP ASE 迁移到 Amazon

从 SAP ASE 迁移到 Amazon EC2 上的 SAP ASE:使用 AWS DMS 和 SAP ASE 原生方法

关键要点

  • 本文介绍从本地 SAP ASE 数据库迁移到 Amazon EC2 上 SAP ASE 的多种方法,主要包括使用 AWS 数据库迁移服务(AWS DMS)和 SAP ASE 原生功能。
  • 迁移选项基于数据大小、业务相关性和合规性等因素,提供灵活性和便捷的数据迁移体验。
  • 在选择迁移策略时,需考虑数据库大小和应用需求,以确保低延迟和较高的可用性。

一些客户将 SAP ASE(原称 Sybase)作为其主要数据库引擎来运行工作负载,通常希望在 AWS 云中继续使用 SAPASE,采用自带许可(BYOL)模式。这种方法为他们提供了更大的灵活性、高可用性和强大的归档解决方案,同时能够在未来的战略蓝图中保留现代化的前景。

本文将提供从本地 SAP ASE 数据库迁移到 Amazon Elastic Compute Cloud(EC2)上 SAP ASE的不同选项,主要基于数据大小、应用停机时间和数据合规性。这些迁移方法包括使用 AWS 数据库迁移服务(DMS)和 SAP ASE 原生特性。

解决方案概述

在开始迁移之旅时,您可能会面临与数据库大小、业务关键性、工作负载需求、数据合规性和数据迁移相关的不同挑战。AWS DMS是快速、安全地迁移数据库工作负载的理想选择,可以实现最小的停机时间和零数据丢失。

我们将探讨三种不同的数据迁移选项,包括 AWS DMS 和 SAP ASE 原生特性,如 、 和 Bulk Copy Program (bcpm)。这些选项提供灵活性,同时您可以充分利用自己在本地数据库上熟悉的 SAP ASE 原生功能。

迁移策略用例数据库大小
AWS DMS业务关键应用,最低停机,低延迟,CDC 变化数百 GB 到 TB
Dump and Load非关键应用,放宽 RTO/RPO 要求几百 GB(100-300 GB)
BCP高延迟,较低的应用依赖性几十 GB(< 100 GB)

前提条件

您应准备以下前提条件:

  • 一个有效的 AWS 账户
  • 已安装 SAP ASE 的 EC2 实例
  • 一个用于存储备份和 bcp 文件的 存储桶
  • 具有 Sybase sa 角色权限的用户用于 DMS,以及 dbo 角色用于 bcp、dump 和 load 迁移方法
  • 已安装可连接到 Sybase ASE 服务器的工具
  • 在相同 VPC 中创建源数据库、复制实例和目标数据库

使用 AWS DMS 作为 SAP ASE 的源和目标

AWS DMS 支持 和 数据迁移。AWSDMS 支持完全加载和变更数据捕获(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 的持续复制,您应完成以下步骤。

检查源数据库的复制代理配置状态:
确定数据库是否已配置为使用复制代理功能,请执行以下命令:

sql exec sp_config_rep_agent

如果数据库未配置为使用复制代理,您可以继续建立日志传输管理器(LTM)的截断点。
如果已配置复制代理,请使用以下命令禁用线程。

sql use pubs2 go exec sp_stop_rep_agent pubs2 go sp_config_rep_agent pubs2, 'disable', 'preserve secondary truncpt' go

在源数据库上建立日志传输管理器(LTM)截断点:

要为 创建检查点,请连接到 Sybase ASE 服务器,打开一个新查询窗口,执行以下命令。

sql dbcc settrunc('ltm','valid')

以下截屏显示 LTM 截断点已建立。

![LTM删除)

在源数据库上启用复制:

要启用复制,请完成以下步骤:

  1. 检查源数据库中所有表的当前复制状态,运行以下命令:

sql sp_setreptable

  1. 启用源数据库中表的复制,执行以下命令:

sql sp_setreptable <<table_name>>, 'true';

可以使用前面的命令启用需复制到目标数据库的所有表的复制。

以下截屏显示在 pubs2 数据库中启用了 authors 表的复制。

删除)

使用以下命令验证表的复制是否启用:

sql sp_setreptable

删除)

创建 AWS DMS 复制实例:

要设定从 SAP ASE 源数据库到目标数据库的持续复制,请按照

中的步骤创建 AWS DMS 复制实例。

创建源端点:

现在您需要创建源端点并使用在上一步中创建的复制实例测试连接:

  1. 在 AWS DMS 控制台中,选择导航窗格中的 Endpoints(端点)
  2. 选择 Create endpoint(创建端点)
  3. Endpoint type(端点类型) 中,选择 Source endpoint(源端点)
  4. Endpoint identifier(端点标识符) 中,输入端点名称。
  5. Source engine(源引擎) 中,选择 SAP Sybase ASE
    以下截屏显示了详细配置。

删除)

  1. Access to endpoint database options(访问端点数据库选项) 中,选择您首选的方法以认证 SAP ASE 源数据库:使用 Secrets Manager 或手动认证。对于本文,我们使用手动认证,选择 Provide access information manually(手动提供访问信息)
  2. Server name(服务器名称) 中,输入源数据库服务器的名称(地址)或 IP 地址。
  3. 输入源数据库服务器的端口、用户名、密码和数据库名称。
  4. Secure Socket Layer (SSL) mode(安全套接层模式) 启用 SSL 建立 DMS 到源数据库服务器的安全连接。在本文中,我们选择 none(无)
  5. 选择 Create endpoint(创建端点)
    以下截屏显示了配置详情。

删除)

创建目标端点:

接下来,您创建目标端点,并使用在上一步中创建的复制实例测试连接。

  1. 在 AWS DMS 控制台中,选择导航窗格中的 Endpoints(端点)
  2. 选择 Create endpoint(创建端点)
  3. Endpoint type(端点类型) 中,选择 Target endpoint(目标端点)
  4. Endpoint identifier(端点标识符) 中,输入端点名称。
  5. Target engine(目标引擎) 中,选择 SAP Sybase ASE
  6. 对于 Access to endpoint database options(访问端点数据库选项) ,选择 Provide access information manually(手动提供访问信息)
  7. 输入服务器名称、端口、用户名、密码和源数据库服务器的数据库名称。
  8. 对于 Secure Socket Layer (SSL) mode(安全套接层模式) ,选择 none(无)
  9. 选择 Create endpoint(创建端点)。

以下截屏显示配置详情。

删除)

创建 AWS DMS 数据库迁移任务:

要创建数据库迁移任务,使用复制实例和源、目标端点,完成文档中的步骤:

  1. 在 AWS DMS 控制台中,选择导航窗格中的 Database migration tasks(数据库迁移任务)
  2. 选择 Create task(创建任务)
  3. Task identifier(任务标识符) 中,输入一个唯一名称。
  4. 选择您的复制实例、源数据库端点和目标数据库端点。
  5. 对于 Migration type(迁移类型) ,选择 Migrate existing data and replicate ongoing changes(迁移现有数据并复制持续变化)
  6. 对于 Target table preparation mode(目标表准备模式) ,选择 Do nothing(不做任何操作)
  7. 对于 Stop task after full load completes(完成完全加载后停止任务) ,选择 Don’t stop(不停止)
  8. 对于 LOB column setting(LOB 列设置) ,选择 Limited LOB mode(限制 LOB 模式) 。在限制 LOB 模式下,您可以设置支持 DMS 接受的最大 LOB 大小。
  9. 对于 Data validation(数据验证) ,选择 Turn off(关闭) ,因为在 SAP ASE 端点下(截至本文写作时)不支持此选项。
  10. Advanced task settings(高级任务设置) 部分检查选项并根据需要输入值。
  11. Table mappings(表映射) 部分,选择 Add new selection rule(添加新选择规则)
  12. 对于 Schema name(模式名称)Table name(表名) 输入 %,以包含源数据库中的所有模式和表。对于本文,我们设置复制 authors
  13. 默认情况下,Premigration assessment(迁移前评估) 被选中,以检查任务开始之前是否存在潜在的复制问题。对于本文,请取消选中该选项。
  14. 选择 Manually later(稍后手动) 作为 Migration task startup configuration(迁移任务启动配置)
  15. 选择 Create task(创建任务)

启动迁移任务:

在启动迁移任务之前,请确保禁用或删除目标数据库中的任何约束和触发器(如果有)。

要启动迁移任务,请在 DMS 控制台的导航窗格中选择 Database migration task(数据库迁移任务) ,选择在前面的步骤中创建的任务。从 Actions(操作) 菜单中选择 Restart/Resume(重新启动/继续)

以下截屏显示所选任务。

删除)

有关更多详细信息,请参考文档获取 。

总结

如果您有需要持续数据复制的业务关键应用程序,要求低延迟和接近实时的复制,并且拥有高恢复时间目标(RTO),我们建议使用 AWS DMS。

请注意,在使用 SAP ASE 作为 AWS DMS 的源和目标时存在一些限制。更多信息,请参考以下内容:

SAP ASE 原生功能

SAP ASE 提供诸如 dump 和 load 或 bcp 的原生功能,可用于同构数据迁移,以节省成本和时间。将本地 SAP ASE 数据库迁移到托管在 Amazon EC2 上的 SAP ASE 是同构迁移。因此,我们可以利用 SAP ASE 原生功能进行数据迁移,这是经济高效的解决方案。

以下迁移架构中包含一个 S3 存储桶,用于存储从本地数据库中提取的转储文件。我们使用 S3 存储桶中的转储文件来恢复新的数据库。

SAP ASE 原生功能:Dump 和 Load

是 SAP ASE 的备份和恢复命令。Dump 命令制作数据和事务日志的完整副本,作为转储文件。该转储文件由 load 命令读取以恢复数据库。

从源数据库转储(完全数据库备份)

进行源数据库的完整备份,请完成以下步骤:

  1. 使用 或任何支持的 SQL 编辑器工具登录源 SAP ASE 数据库服务器。以下命令使用 isql:

bash isql -U<login_name> -S<server_name> -P<password> -w 1024 -s "|"

  1. 运行以下 SQL 命令对用户数据库进行完全转储到指定的本地路径和文件名称:

sql Use master go dump database <user_database_name> to '<backup_file_name>' go

在以下代码中,我们对数据库 pubs2 进行了备份:

sql Use master go dump database pubs2 to '/opt/sap/db_backup/pubs2_bk.dmp' go

我们需要将创建的备份文件复制到 S3 存储桶。在实际情况下,这些文件是在本地创建的。您需要通过使用 、公共互联网或 [AWS Site-to-Site

Leave a Reply

Required fields are marked *