一些客户将 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) |
您应准备以下前提条件:
sa
角色权限的用户用于 DMS,以及 dbo
角色用于 bcp、dump 和 load 迁移方法AWS DMS 支持 和 数据迁移。AWSDMS 支持完全加载和变更数据捕获(CDC)方法(当 SAP ASE 为源时用于单个任务)以高效迁移历史数据和持续变化的数据,从本地迁移至 AWS 云。
以下架构展示了使用 AWS DMS 将 SAP ASE 数据迁移到 AWS 云的过程。
删除)
通过以下步骤解释我们的用例,我们在 Amazon EC2 上运行源 SAP ASE 数据库,如下图所示。
您需要为相应的数据库创建源和目标连接,以告知 AWS DMS从哪里提取数据(源数据库)以及将数据加载到哪里(目标数据库)。然后,您创建一个在此服务器上运行的任务,以将数据从源迁移到目标。
删除)
该解决方案具有以下关键组件:
要执行完全加载并设定从 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删除)
在源数据库上启用复制:
要启用复制,请完成以下步骤:
sql sp_setreptable
sql sp_setreptable <<table_name>>, 'true';
可以使用前面的命令启用需复制到目标数据库的所有表的复制。
以下截屏显示在 pubs2
数据库中启用了 authors
表的复制。
删除)
使用以下命令验证表的复制是否启用:
sql sp_setreptable
删除)
创建 AWS DMS 复制实例:
要设定从 SAP ASE 源数据库到目标数据库的持续复制,请按照
中的步骤创建 AWS DMS 复制实例。
创建源端点:
现在您需要创建源端点并使用在上一步中创建的复制实例测试连接:
删除)
删除)
创建目标端点:
接下来,您创建目标端点,并使用在上一步中创建的复制实例测试连接。
以下截屏显示配置详情。
删除)
创建 AWS DMS 数据库迁移任务:
要创建数据库迁移任务,使用复制实例和源、目标端点,完成文档中的步骤:
authors
表启动迁移任务:
在启动迁移任务之前,请确保禁用或删除目标数据库中的任何约束和触发器(如果有)。
要启动迁移任务,请在 DMS 控制台的导航窗格中选择 Database migration task(数据库迁移任务) ,选择在前面的步骤中创建的任务。从 Actions(操作) 菜单中选择 Restart/Resume(重新启动/继续) 。
以下截屏显示所选任务。
删除)
有关更多详细信息,请参考文档获取 。
如果您有需要持续数据复制的业务关键应用程序,要求低延迟和接近实时的复制,并且拥有高恢复时间目标(RTO),我们建议使用 AWS DMS。
请注意,在使用 SAP ASE 作为 AWS DMS 的源和目标时存在一些限制。更多信息,请参考以下内容:
SAP ASE 提供诸如 dump 和 load 或 bcp 的原生功能,可用于同构数据迁移,以节省成本和时间。将本地 SAP ASE 数据库迁移到托管在 Amazon EC2 上的 SAP ASE 是同构迁移。因此,我们可以利用 SAP ASE 原生功能进行数据迁移,这是经济高效的解决方案。
以下迁移架构中包含一个 S3 存储桶,用于存储从本地数据库中提取的转储文件。我们使用 S3 存储桶中的转储文件来恢复新的数据库。
和
是 SAP ASE 的备份和恢复命令。Dump 命令制作数据和事务日志的完整副本,作为转储文件。该转储文件由 load 命令读取以恢复数据库。
进行源数据库的完整备份,请完成以下步骤:
bash isql -U<login_name> -S<server_name> -P<password> -w 1024 -s "|"
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