本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用从 SAP Adaptive Server Enterprise (ASE) 数据库(以前称为 Sybase)迁移数据。 AWS DMS使用 SAP ASE 数据库作为源,您可以将数据迁移到任何其他支持的 AWS DMS 目标数据库。
有关 AWS DMS 支持作为源的 SAP ASE 版本的信息,请参阅的来源 AWS DMS。
有关使用 SAP ASE 数据库和的更多详细信息 AWS DMS,请参阅以下各节。
主题
使用 SAP ASE 数据库作为源的先决条件 AWS DMS
要将 SAP ASE 数据库作为其来源 AWS DMS,请执行以下操作:
-
使用
sp_setreptable
命令为表启用 SAP ASE 复制。有关更多信息,请参阅 Sybase Infocenter 存档。 -
在 SAP ASE 数据库上禁用
RepAgent
。有关更多信息,请参阅停止和禁用主数据库中的 RepAgent 线程。 -
要在配置为非拉丁字符(例如中文)的 Windows EC2 实例上复制到 SAP ASE 15.7 版,请在目标计算机 SP121上安装 SAP ASE 15.7。
注意
对于持续的更改数据捕获(CDC)复制,DMS 会运行 dbcc
logtransfer
和 dbcc log
,以从事务日志中读取数据。
使用 SAP ASE 作为来源的限制 AWS DMS
将 SAP ASE 数据库作为 AWS DMS源时,存在以下限制:
-
对于每个 SAP ASE 数据库,您只能使用持续复制或 CDC 运行 AWS DMS 一项任务。您可以并行运行多个 full-load-only任务。
-
您不能重命名表。例如,下面的命令将失败。
sp_rename 'Sales.SalesRegion', 'SalesReg;
-
您不能重命名列。例如,下面的命令将失败。
sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
-
在复制到目标数据库时,将截断位于二进制数据类型字符串末尾的零值。例如,源表中的
0x0000000000000000000000000100000100000000
在目标表中变为0x00000000000000000000000001000001
。 -
如果数据库的默认值设置为不允许 NULL 值,则使用不允许 NULL 值的列 AWS DMS 创建目标表。因此,如果满载或 CDC 复制任务包含空值,则 AWS DMS 会引发错误。您可以执行以下命令以允许在源数据库中包含 NULL 值,从而防止出现这些错误。
sp_dboption
database_name
, 'allow nulls by default', 'true' go usedatabase_name
CHECKPOINT go -
不支持
reorg rebuild
索引命令。 -
AWS DMS 不支持群集或使用 MSA(多站点可用性)/热备用作为源。
-
在映射规则中使用
AR_H_TIMESTAMP
转换标头表达式时,不会捕获已添加列的毫秒数。 -
在 CDC 期间运行合并操作将导致不可恢复的错误。要使目标恢复同步,请运行完全加载。
-
使用数据行锁定方案的表不支持回滚触发器事件。
-
AWS DMS 从源 SAP 数据库中删除任务范围内的表后,无法恢复复制任务。如果 DMS 复制任务已停止并执行了任何 DML 操作(INSERT、UPDATE、DELETE),然后删除了表,则必须重新启动复制任务。
使用 SAP ASE 作为来源所需的权限 AWS DMS
要在 AWS DMS 任务中使用 SAP ASE 数据库作为源,您需要授予权限。向 AWS DMS 数据库定义中指定的用户帐户授予在 SAP ASE 数据库中的以下权限:
-
sa_role
-
replication_role
-
sybase_ts_role
-
默认情况下,如果需要拥有运行
sp_setreptable
存储过程的权限,则 AWS DMS 启用 SAP ASE 复制选项。如果要直接从数据库端点而不是通过其 AWS DMS 自身在表sp_setreptable
上运行,则可以使用 eenableReplication
xtra 连接属性。有关更多信息,请参阅 使用 SAP ASE 作为来源时的端点设置 AWS DMS。
删除截断点
任务启动时,会在syslogshold
系统视图中 AWS DMS 建立一个$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 控制台创建源端点时指定设置,或者使用中带有 --sybase-settings '{"
JSON 语法的EndpointSetting"
:
"value"
, ...
}'create-endpoint
AWS CLI命令来指定设置。
下表显示了将 SAP ASE 用作源时您可以使用的端点设置。
名称 | 描述 |
---|---|
Charset |
将此属性设置为与国际字符集相对应的 SAP ASE 名称。 默认值: 示例: 有效值:
有关 SAP ASE 数据库中支持的字符集的任何其他问题,请参阅 Adaptive Server Enterprise:支持的字符集 |
EnableReplication |
如果要从数据库端而不是直至表 默认值: 有效值: 示例: |
EncryptPassword |
如果您在源数据库中启用了 默认值: 有效值: 示例: 有关这些参数值的更多信息,请参阅 Adaptive Server Enterprise:使用 EncryptPassword 连接字符串属性 |
Provider |
如果要为 ASE 15.7 及更高版本使用传输层安全性协议(TLS)1.2,请设置此属性。请注意,这 AWS 需要 TLS 版本 1.2 或更高版本,建议使用 1.3 版。 默认值: 有效值: 示例: |
SAP ASE 的源数据类型
有关使用时支持的 SAP ASE 源数据类型列表 AWS DMS 以及 AWS DMS 数据类型的默认映射,请参阅下表。 AWS DMS 不支持包含用户定义类型 (UDT) 数据类型列的 SAP ASE 源表。具有此数据类型的复制列将创建为 NULL。
有关如何查看目标中映射的数据类型的信息,请参阅数据迁移的目标有关您的目标终端节点的部分。
有关 AWS DMS 数据类型的更多信息,请参见Database Migration Servic AWS e 的数据类型。
SAP ASE 数据类型 |
AWS 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 |