迁移数据
使用自动数据迁移功能可执行从源到目标 Db2® 实例的完整系统迁移,包括卸载,传输和装入目标主机上的数据。
在 4.1 版本之前,可以使用 Optim™ High Performance Unload 来重新分区数据,方法是使用在 TARGET KEYS 或 TARGET TABLE 子句中指定的重新分区规则。 在此方法中,将在单独的文件中卸载重新分区的数据,每个目标数据库分区一个文件。 但是,无法在相关目标数据库分区所在的主机上生成相应的输出文件。 因此,在迁移方案中,卸载并重新分区数据后,仍需要在相应的机器上传输输出文件并将其装入到目标实例上。 通过使用自动数据迁移功能,您可以完成在单个操作中迁移数据所需的所有步骤。
要使用数据迁移功能,您需要在 Optim High Performance Unload 在源系统和目标系统上。 Optim High Performance Unload 源( S1、 S2 和 S3 ,如下图所示)执行卸载和重新分配。 然后, Optim High Performance Unload 通过网络将输出流发送到 Optim High Performance Unload 目标机器上的守护进程(下图中的 T1 和 T2 )。 目标守护程序为目标系统上的每个数据库分区创建单个命名管道,并开始装入数据。 守护进程将来自每个源数据库分区的多个数据流合并为单个数据流, Optim High Performance Unload 守护进程将来自每个源数据库分区的多个数据流合并为单个数据流, Optim High Performance Unload 写入指定管道。 因此, Optim High Performance Unload 同时进行卸载和装载。图 1. 自动数据迁移


自动数据迁移语法关键字
要使用 Optim High Performance Unload 自动数据迁移功能,您需要创建一个控制文件并对其进行修改:
- 在 UNLOAD 块的开头使用 MIGRATE 关键字而不是 UNLOAD 关键字。
- 您可以指定整个数据库,整个表空间或与 MIGRATE 块相关的 SELECT 块中指定的表列表的迁移。
- 使用 TARGET environment 和 WORKING IN 子句来定义临时文件的目标系统规范和位置。
- 可以使用 UMASK 子句来覆盖目标系统上的系统许可权。 umask 选项也可用于命令行和配置文件 db2hpu.cfg中。
数据迁移期间的输出格式规范
迁移数据时,不需要输出格式规范。 如果未显式指定 FORMAT 子句,那么用于生成返回的临时文件的缺省格式为 DEL 输出格式。 您还可以显式指定 FORMAT 子句以选择下列其中一种格式:
- 迁移
- 迁移格式的特殊关键字。 此时, MIGRATION 格式的工作方式与 DEL 格式相同。
- DEL
- 缺省迁移格式。
- 定界
- 除非要自动迁移的字符串数据中有行定界符 (行尾字符) ,否则请勿将 DELIMITER 格式用于数据迁移。 在这种情况下,仅当在相应的装入命令中指定了 DELPRIORITYCHAR 修饰符时,才能装入相应的定界文件。 生成相应装入命令的唯一方法是使用定界格式和相应的 DELPRIORITYCHAR 修饰符。 由于定界格式提供了更多使用修饰符的功能,因此为了系统迁移目的,应尽可能避免使用此格式。
- IXF
- 使用它可确保迁移浮点值,而不会丢失针对单分区数据库的精度。
- ASC
- 使用它可确保迁移浮点值时不会丢失 DPF 数据库的精度。
注意: 如果字符串数据中有字符定界字符,那么必须使用 DOUBLE DELIM ON 选项来成功迁移数据。 对于 DEL 格式,字符定界符为双引号 ("),如果字符串数据中有双引号,那么必须使用 DOUBLE DELIM ON 选项才能成功迁移。