Data Mover 可实现表级别重新启动。表级别重新启动会指出在作业失败之前已成功复制所有表行。如果重新启动该作业,Data Mover 不会再次复制表行。但是,如果作业在复制表行期间任何时刻失败,则重新启动该作业时,Data Mover 将再次复制所有表行。
在以下情况下,只能使用 restart 命令重新启动 Data Mover 作业:
- 作业在运行时失败。使用 status 或 list_jobs 命令查看作业时,作业状态为 FAILED。
- 已使用 stop 命令停止作业。使用 status 或 list_jobs 命令查看作业时,作业状态为 USER_CANCELED。
在这两种情况下,都不要在重新启动作业之前运行 cleanup 命令,否则该作业执行的所有工作都将丢失。此外,请先解决导致作业失败的问题,然后再重新启动该作业。
解决问题后,您可以使用 datamove restart -job_name <job name> 命令重新启动作业。
重新启动操作
重新启动作业时,Data Mover 会采取不同的操作,具体取决于作业在哪一个步骤失败。下表对重新启动操作进行了介绍:
步骤 | 说明 | 重新启动期间的 Data Mover 操作 |
---|---|---|
CLEAN_UP | 添加以重新启动作业。任务为清理失败的作业过程残存。 | 再次运行整个重新启动作业。 |
MOVE_DEFINITION_BEFORE_LOAD 或 MOVE_DEF_AND_SRC_STG_DATA |
任务为设置暂存表。 | 执行完未完成的设置任务,然后运行其余作业。 |
MOVE_TABLE_DATA | 用于复制表的 Teradata PT API 或 Teradata JDBC 任务。 |
|
RESOLVE_TABLE_AFTER_LOAD | 例如从暂存表到目标表中执行 INSERT 或 SELECT 语句以及添加索引和触发器等任务。 | 完成未完成的任务,然后运行其余作业。 |
COPY_STATISTICS | 复制统计数据的任务。 | 完成未完成的任务,然后运行其余作业。 |
ROW_COUNT_VALIDATION | 每个表中复制的行数,确保源表和目标表中的行数匹配。通常是作业的最后一步。 | 完成未完成的任务,然后运行其余作业。 |
其他信息
- 重新启动功能不包含任何解决导致作业失败的根本问题的逻辑。解决此类问题后再重新启动作业。
- 对于具有失败 DSA 任务的作业,请使用 cleanup 代替重新启动。DSA 不支持重新启动。
- 执行重新启动时,Data Mover 不会收集任何关于源或目标的新信息,但会按照最初打算运行其余作业。Data Mover 不会让重新启动作业适应任何自最初创建该作业以来可能发生的更改。在某些情况下,如果原始作业计划过期,则可能需要运行 cleanup 命令并创建新的作业。
- 重新启动作业时,status 命令输出仅会反映为重新启动作业所执行的工作的状态。