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

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

将适用于 Linux、Unix 和 Windows 数据库的 IBM Db2 (Db2 LUW) 作为 Amazon DMS 的源

您可以使用 Amazon Database Migration Service (Amazon DMS) 将数据从适用于 Linux、Unix 和 Windows 数据库的 IBM Db2 (Db2 LUW) 迁移到任何受支持的目标数据库。Amazon DMS 支持以下 Db2 LUW 版本作为迁移源:

  • 9.7 版,所有修复包都受支持

  • 10.1 版,所有修复包都受支持

  • 10.5 版,所有修复包(修复包 5 除外)都受支持

  • 11.1 版,所有修复包都受支持

  • 版本 11.5,仅支持 Fix Pack 0 的模组 (0-7)

可以使用安全套接字层 (SSL) 加密 Db2 LUW 终端节点与复制实例之间的连接。有关将 SSL 用于 Db2 LUW 终端节点的更多信息,请参阅将 SSL 与 Amazon Database Migration Service 配合使用

将 Db2 LUW 作为 Amazon DMS 源时的先决条件

需要先满足以下先决条件,然后才能将 Db2 LUW 数据库作为源。

要启用持续复制(也称为更改数据捕获 (CDC)),请执行以下操作:

  • 为了捕获更改,Amazon DMS 要求将数据库设置为可恢复。如果其中一个或两个数据库配置参数LOGARCHMETH1和都设置为,则数据库LOGARCHMETH2是可恢复的ON

    如果您的数据库是可恢复的,则Amazon DMS可以在需要时访问 Db2ARCHIVE LOG

  • 确保 DB2 事务日志可用,并留出足够的保留期以供处理Amazon DMS。

  • DB2 需要SYSADMDBADM授权才能提取事务日志记录。向用户账户授予以下权限:

    • SYSADM 或者 DBADM

    • DATAACCESS

  • 使用 IBM DB2 for LUW 版本 9.7 作为源时,按如下方式设置额外的连接属性 (ECA):CurrentLSN

    CurrentLSN=LSN其中LSN指定要在其中启动复制的日志序列号(LSN)。或者,CurrentLSN=scan

将 Db2 LUW 作为 Amazon DMS 源时的限制

Amazon DMS 不支持集群化数据库。但是,您可以为集群的每个终端节点定义一个单独的 Db2 LUW。

在使用持续复制 (CDC) 时,以下限制将适用:

  • 在截断具有多个分区的表时,Amazon DMS 控制台中显示的 DDL 事件数将等于分区数。这是因为 Db2 LUW 为每个分区记录一个单独的 DDL。

  • 已分区表上不支持以下 DDL 操作:

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DETACH PARTITION

    • ALTER TABLE ATTACH PARTITION

  • Amazon DMS不支持从 DB2 高可用性灾难恢复 (HADR) 备用实例进行持续复制迁移。待机不可访问。

  • 不支持 DECFLOAT 数据类型。因此,在持续复制期间,将忽略对 DECFLOAT 列所做的更改。

  • 不支持 RENAME COLUMN 语句。

  • 在执行对多维集群化 (MDC) 表的更新时,每个更新将在 Amazon DMS 控制台中显示为 INSERT + DELETE。

  • 如果未启用任务设置 Include LOB columns in replication (在复制中包含 LOB 列),则将在持续复制期间暂停任何具有 LOB 列的表。

  • 对于 Db2 LUW 版本 10.5 及更高版本,包含存储数据的可变长度字符串列 out-of-row 将被忽略。此限制仅适用于为具有 VARCHAR 和 VARGRAPHIC 等数据类型的列使用扩展行大小创建的表。要解决此限制,请将表格移动到页面大小更大的表格空间。有关更多信息,请参阅如果我想更改 DB2 表空间的页面大小该怎么办

  • 对于正在进行的复制,DMS 不支持迁移 DB2 LOAD 实用程序在页面级别加载的数据。相反,请使用使用 SQL 插入的 IMPORT 实用程序。有关更多信息,请参阅导入实用程序和加载实用程序之间的区别

  • 在复制任务运行时,只有在使用 DATA CAPTURE CHANGE 属性创建表时,DMS 才会捕获 CREATE TABLE DDL。

  • DMS 不支持 DB2 数据库分区功能 (DPF)。

将 Db2 LUW 作为 Amazon DMS 源时的额外连接属性

您可以使用额外的连接属性配置 Db2 LUW 源。在创建源终端节点时,您可以指定这些设置。如果您具有多个连接属性设置,请用分号将它们彼此分开,并且不需要额外的空格(例如,oneSetting;thenAnother)。

下表显示了将 Db2 LUW 作为源时可以使用的额外连接属性。

名称 描述

CurrentLSN

对于持续复制 (CDC),请使用 CurrentLSN 指定要在其中启动复制的日志序列号 (LSN)。

MaxKBytesPerRead

每次读取的最大字节数,以 NUMBER 值表示。默认值为 64 KB。

SetDataCaptureChanges

启用持续复制 (CDC) 作为 BOOLEAN 值。默认值为 true。

StartFromContext

对于持续复制(CDC)StartFromContext,请指定要在其中启动复制的日志下限。 StartFromContext接受不同形式的值。有效值包括:

  • timestamp(世界标准时间)。例如:

    StartFromContext=timestamp:2021-09-21T13:00:00
  • NOW

    对于 IBM DB2 LUW 版本 10.5 及更高版本,现在与 currentlsn=Scan 结合使用,从最新的 LSO 启动任务。例如:

    CurrentLSN=scan;StartFromContext=NOW
  • 一个特定的 LRI。例如:

    StartFromContext=0100000000000022CC000000000004FB13

要确定日志文件的 LRI/LSN 范围,请按以下示例所示运行db2flsn命令。

db2flsn -db SAMPLE -lrirange 2

输出类似于以下内容。

S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to 000000000000000100000000000022CC000000000004FB13

在该输出中,日志文件为 S0000002 .LOG,StartFromContextLRI 值是范围末尾的 34 字节。

0100000000000022CC000000000004FB13

IBM Db2 LUW 的源数据类型

将 Db2 LUW 作为 Amazon DMS 源的数据迁移支持大多数 Db2 LUW 数据类型。下表列出了使用 Amazon DMS 时支持的 Db2 LUW 源数据类型以及来自 Amazon DMS 数据类型的默认映射。有关 Db2 LUW 数据类型的更多信息,请参阅 Db2 LUW 文档

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

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

Db2 LUW 数据类型

Amazon DMS 数据类型

INTEGER

INT4

SMALLINT

INT2

BIGINT

INT8

DECIMAL (p,s)

NUMERIC (p,s)

FLOAT

REAL8

DOUBLE

REAL8

REAL

REAL4

DECFLOAT (p)

如果精度为 16,则为 REAL8;如果精度为 34,则为 STRING

GRAPHIC (n)

WSTRING,用于长度大于 0 且小于或等于 127 个双字节字符的固定长度图形字符串

VARGRAPHIC (n)

WSTRING,用于长度大于 0 且小于或等于 16352 个双字节字符的可变长度图形字符串

LONG VARGRAPHIC (n)

CLOB,用于长度大于 0 且小于或等于 16352 个双字节字符的可变长度图形字符串

CHARACTER (n)

STRING,用于长度大于 0 且小于或等于 255 个双字节字符的固定长度字符串

VARCHAR (n)

STRING,用于长度大于 0 且小于或等于 32704 个双字节字符的可变长度字符串

LONG VARCHAR (n)

CLOB,用于长度大于 0 且小于或等于 32704 个双字节字符的可变长度字符串

CHAR (n) FOR BIT DATA

BYTES

VARCHAR (n) FOR BIT DATA

BYTES

LONG VARCHAR FOR BIT DATA

BYTES

DATE

DATE

TIME

TIME

TIMESTAMP

DATETIME

BLOB (n)

BLOB

最大长度为 2147483647 个字节

CLOB (n)

CLOB

最大长度为 2147483647 个字节

DBCLOB (n)

CLOB

最大长度为 1073741824 个双字节字符

XML

CLOB