将 SAP ASE 数据库作为 AWS DMS 源 - AWS Database Migration Service

将 SAP ASE 数据库作为 AWS DMS 源

您可以使用 AWS DMS 从 SAP Adaptive Server Enterprise (ASE) 数据库(以前称为 Sybase)迁移数据。使用 SAP ASE 数据库作为源,可以将数据迁移到其他受支持的任何 AWS DMS 目标数据库。AWS DMS 支持 SAP ASE 版本 12.5.3 或更高版本、15、15.5、15.7、16 及更高版本作为源。

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

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

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

  • 使用 sp_setreptable 命令为表启用 SAP ASE 复制。

  • 在 SAP ASE 数据库上禁用 RepAgent

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

  • 使用 charset 附加连接属性指定 SAP ASE 字符集。将此属性设置为与国际字符集相对应的 SAP ASE 名称,如下表所示。例如,要指定 UTF-8,请使用以下设置:charset=utf8;

    字符集

    SAP ASE 名称

    ASCII 8

    acsii_8

    Big 5HK

    big5hk

    CP 437

    cp437

    CP 850

    cp850

    CP 852

    cp852

    CP 855

    cp852

    CP 855

    cp855

    CP 857

    cp857

    CP 858

    cp858

    CP 860

    cp860

    CP 864

    cp864

    CP 866

    cp866

    CP 869

    cp869

    CP 874

    cp874

    CP 932

    cp932

    CP 936

    cp936

    CP 950

    cp950

    CP 1250

    cp1250

    CP 1251

    cp1251

    CP 1252

    cp1252

    CP 1253

    cp1253

    CP 1254

    cp1254

    CP 1255

    cp1255

    CP 1256

    cp1256

    CP 1257

    cp1257

    CP 1258

    cp1258

    DEC Kanji

    deckanji

    EUC-CNS

    euccns

    EUC-GB

    eucgb

    EUC-JIS

    eucjis

    EUC-KSC

    eucksc

    GB 18030

    gb18030

    GREEK8

    greek8

    ISO 8859-1

    iso_1

    ISO 8859-2

    iso88592

    ISO 8859-5

    iso88595

    ISO 8859-6

    iso88596

    ISO 8859-7

    iso88597

    ISO 8859-8

    iso88598

    ISO 8859-9

    iso88599

    ISO 8859-15

    iso15

    哈萨克斯坦西里尔字母

    kz1048

    Koi8

    koi8

    ROMAN8

    roman8

    ROMAN9

    iso88599

    Shift-JIS

    sjis

    TIS 620

    tis620

    TURKISH8

    turkish8

    UTF-8

    utf8

    有关 SAP ASE 数据库中支持的字符集的任何其他问题,请参阅自适应服务器支持的字符集

将 SAP ASE 作为 AWS DMS 源的限制

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

  • 每个 SAP ASE 数据库只能运行一个 AWS DMS 任务。

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

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

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

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

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

  • 不支持集群。

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

要将 SAP ASE 数据库作为 AWS DMS 任务中的源,请在 SAP ASE 数据库中为 AWS DMS 数据库定义中指定的用户账户授予以下权限。

  • sa_role

  • replication_role

  • sybase_ts_role

  • 如果您在创建 SAP ASE 源终端节点时启用 Automatically enable Sybase replication (自动启用 Sybase 复制) 选项(位于 Advanced (高级) 选项卡中),则还必须向 AWS DMS 授予运行存储过程 sp_setreptable 所需的权限。

删除截断点

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

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

dbcc settrunc('ltm','ignore')

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

SAP ASE 的源数据类型

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

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

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

SAP ASE 数据类型

AWS DMS 数据类型

BIGINT

INT8

BINARY

BYTES

BIT

BOOLEAN

CHAR

STRING

DATE

DATE

DATETIME

DATETIME

DECIMAL

NUMERIC

DOUBLE

REAL8

FLOAT

REAL8

IMAGE

BLOB

INT

INT4

MONEY

NUMERIC

NCHAR

WSTRING

NUMERIC

NUMERIC

NVARCHAR

WSTRING

REAL

REAL4

SMALLDATETIME

DATETIME

SMALLINT

INT2

SMALLMONEY

NUMERIC

TEXT

CLOB

TIME

TIME

TINYINT

UINT1

UNICHAR

UNICODE CHARACTER

UNITEXT

NCLOB

UNIVARCHAR

UNICODE

VARBINARY

BYTES

VARCHAR

STRING