将 SAP ASE 数据库作为 Amazon DMS 源 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 SAP ASE 数据库作为 Amazon DMS 源

您可以使用 Amazon DMS 从 SAP Adaptive Server Enterprise (ASE) 数据库(以前称为 Sybase)中迁移数据。使用 SAP ASE 数据库作为源,您可以将数据迁移到其他受支持的任何 Amazon DMS 目标数据库。

有关 Amazon DMS 支持作为源的 SAP ASE 版本的信息,请参阅 Amazon DMS 的源

有关使用 SAP ASE 数据库和 Amazon DMS 的其他详细信息,请参阅以下章节。

将 SAP ASE 数据库作为 Amazon DMS 源的先决条件

要将 SAP ASE 数据库作为 Amazon DMS 源,请执行以下操作:

  • 使用 sp_setreptable 命令为表启用 SAP ASE 复制。有关更多信息,请参阅 Sybase Infocenter 存档

  • 在 SAP ASE 数据库上禁用 RepAgent。有关更多信息,请参阅在主数据库中停止和禁用 RepAgent 线程

  • 要复制到为非拉丁字符(例如,中文)配置的 Windows EC2 实例中的 SAP ASE 15.7 版本,请在目标计算机上安装 SAP ASE 15.7 SP121。

注意

对于持续的更改数据捕获 (CDC) 复制,DMS 会运行 dbcc logtransferdbcc log,以从事务日志中读取数据。

将 SAP ASE 作为 Amazon DMS 源的限制

将 SAP ASE 数据库作为 Amazon DMS 源时,存在以下限制:

  • 对于每个 SAP ASE 数据库,您只能运行一个带有持续复制或 CDC 的 Amazon DMS 任务。您可以并行运行多个仅完全加载的任务。

  • 您不能重命名表。例如,下面的命令将失败。

    sp_rename 'Sales.SalesRegion', 'SalesReg;
  • 您不能重命名列。例如,下面的命令将失败。

    sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
  • 在复制到目标数据库时,将截断位于二进制数据类型字符串末尾的零值。例如,源表中的 0x0000000000000000000000000100000100000000 在目标表中变为 0x00000000000000000000000001000001

  • 如果数据库默认设置为不允许 NULL 值,则 Amazon DMS 使用不允许 NULL 值的列创建目标表。因此,如果完整加载或 CDC 复制任务包含空值,则 Amazon DMS 将引发错误。您可以执行以下命令以允许在源数据库中包含 NULL 值,从而防止出现这些错误。

    sp_dboption database_name, 'allow nulls by default', 'true' go use database_name CHECKPOINT go
  • 不支持 reorg rebuild 索引命令。

  • Amazon DMS 不支持集群或使用 MSA(多站点可用性)/温备用作为源。

  • 在映射规则中使用 AR_H_TIMESTAMP 转换标头表达式时,不会捕获已添加列的毫秒数。

  • 在 CDC 期间运行合并操作将导致不可恢复的错误。要使目标恢复同步,请运行完全加载。

  • 使用数据行锁定方案的表不支持回滚触发器事件。

  • 从源 SAP 数据库中删除任务范围内的表后,Amazon DMS 无法恢复复制任务。如果 DMS 复制任务已停止并执行了任何 DML 操作(INSERT、UPDATE、DELETE),然后删除了表,则必须重新启动复制任务。

将 SAP ASE 作为 Amazon DMS 源所需的权限

要在 Amazon DMS 任务中使用 SAP ASE 数据库作为源,您需要授予权限。为 Amazon DMS 数据库定义中指定的用户帐户授予 SAP ASE 数据库中的以下权限:

  • sa_role

  • replication_role

  • sybase_ts_role

  • 默认情况下,如果需要拥有运行 sp_setreptable 存储过程的权限,Amazon DMS 会启用 SAP ASE 复制选项。如果要直接从数据库端点而不是通过 Amazon DMS 自身在表上运行 sp_setreptable,则可以使用 enableReplication 额外连接属性。有关更多信息,请参阅使用 SAP ASE 作为 Amazon DMS 源时的端点设置

删除截断点

当任务开始后,Amazon DMS 在 syslogshold 系统视图中建立 $replication_truncation_point 条目,指示复制过程正在进行。在 Amazon DMS 工作的同时,它会根据已经复制到目标的数据量,按固定间隔放置复制截断点。

建立 $replication_truncation_point 条目之后,Amazon DMS 使任务保持运行状态,以防止数据库日志变得过大。如果要永久停止 Amazon DMS 任务,请通过发布以下命令来删除复制截断点:

dbcc settrunc('ltm','ignore')

删除截断点之后,将无法继续 Amazon DMS 任务。日志将继续在检查点自动截断 (在设置了自动截断时)。

使用 SAP ASE 作为 Amazon DMS 源时的端点设置

您可以使用端点设置来配置 SAP ASE 源数据库,这与使用额外连接属性类似。您可以在使用 Amazon DMS 控制台创建源端点时指定端点设置,或者在 Amazon CLI 中使用符合 --sybase-settings '{"EndpointSetting": "value", ...}' JSON 语法的 create-endpoint 命令指定端点设置。

下表显示了将 SAP ASE 用作源时您可以使用的端点设置。

名称 描述
Charset

将此属性设置为与国际字符集相对应的 SAP ASE 名称。

默认值:iso_1

示例:--sybase-settings '{"Charset": "utf8"}'

有效值:

  • acsii_8

  • big5hk

  • cp437

  • cp850

  • cp852

  • cp852

  • cp855

  • cp857

  • cp858

  • cp860

  • cp864

  • cp866

  • cp869

  • cp874

  • cp932

  • cp936

  • cp950

  • cp1250

  • cp1251

  • cp1252

  • cp1253

  • cp1254

  • cp1255

  • cp1256

  • cp1257

  • cp1258

  • deckanji

  • euccns

  • eucgb

  • eucjis

  • eucksc

  • gb18030

  • greek8

  • iso_1

  • iso88592

  • iso88595

  • iso88596

  • iso88597

  • iso88598

  • iso88599

  • iso15

  • kz1048

  • koi8

  • roman8

  • iso88599

  • sjis

  • tis620

  • turkish8

  • utf8

有关 SAP ASE 数据库中支持的字符集的任何其他问题,请参阅 Adaptive Server Enterprise:支持的字符集

EnableReplication

如果要从数据库端而不是通过 Amazon DMS 在表上启用 sp_setreptable,请设置此属性。

默认值:true

有效值:truefalse

示例:--sybase-settings '{"EnableReplication": false}'

EncryptPassword

如果您在源数据库中启用了 "net password encryption reqd",请设置此属性。

默认值:0

有效值:012

示例:--sybase-settings '{"EncryptPassword": 1}'

有关这些参数值的更多信息,请参阅 Adaptive Server Enterprise:使用 EncryptPassword 连接字符串属性

Provider

如果要为 ASE 15.7 及更高版本使用传输层安全性协议 (TLS) 1.2,请设置此属性。请注意,Amazon 需要 TLS 1.2 或更高版本,建议使用 1.3 版本。

默认值:Adaptive Server Enterprise

有效值:Adaptive Server Enterprise 16.03.06

示例:--sybase-settings '{"Provider": "Adaptive Server Enterprise 16.03.06"}'

SAP ASE 的源数据类型

有关使用 Amazon DMS 时支持的 SAP ASE 源数据类型以及来自 Amazon DMS 数据类型的默认映射的列表,请参阅下表。Amazon DMS 不支持具有用户定义的类型 (UDT) 数据类型的列的 SAP ASE 源表。具有此数据类型的复制列将创建为 NULL。

有关如何查看目标中映射的数据类型的信息,请参阅数据迁移的目标有关您的目标终端节点的部分。

有关 Amazon DMS 数据类型的其他信息,请参阅Amazon Database Migration Service 的数据类型

SAP ASE 数据类型

Amazon DMS 数据类型

BIGINT

INT8

UNSIGNED BIGINT

UINT8

INT

INT4

UNSIGNED INT

UINT4

SMALLINT

INT2

UNSIGNED SMALLINT

UINT2

TINYINT

UINT1

DECIMAL

NUMERIC

NUMERIC

NUMERIC

FLOAT

REAL8

DOUBLE

REAL8

REAL

REAL4

MONEY

NUMERIC

SMALLMONEY

NUMERIC

DATETIME

DATETIME

BIGDATETIME

DATETIME(6)

SMALLDATETIME

DATETIME

DATE

DATE

TIME

TIME

BIGTIME

TIME

CHAR

STRING

UNICHAR

WSTRING

NCHAR

WSTRING

VARCHAR

STRING

UNIVARCHAR

WSTRING

NVARCHAR

WSTRING

BINARY

BYTES

VARBINARY

BYTES

BIT

BOOLEAN

TEXT

CLOB

UNITEXT

NCLOB

IMAGE

BLOB