16.20 - 重新启动作业 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
16.20
Published
2021 年 11 月
Content Type
用户指南
Publication ID
B035-4101-107K-CHS
Language
中文 (简体)

Data Mover 可实现表级别重新启动。表级别重新启动会指出在作业失败之前已成功复制所有表行。如果重新启动该作业,Data Mover 不会再次复制表行。但是,如果作业在复制表行期间任何时刻失败,则重新启动该作业时,Data Mover 将再次复制所有表行。

在以下情况下,只能使用 restart 命令重新启动 Data Mover 作业:

  • 作业在运行时失败。使用 statuslist_jobs 命令查看作业时,作业状态为 FAILED。
  • 已使用 stop 命令停止作业。使用 statuslist_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 ARC、Teradata PT API 或 Teradata JDBC 任务。 如果使用 Teradata ARC:
  • 删除其余任何 HUT 锁定,并停止 Data Mover 对作业启动的任何在线存档。
  • 为尚未完成数据传输的表重新传输所有数据。
  • 运行其余作业。

如果使用 Teradata PT API 或 Teradata JDBC:

  • 删除任何剩余的错误、日志或工作表。
  • 如果数据传输尚未完成,则删除后再重新创建暂存表。
  • 如果存在以下所有状况,则删除后再重新创建目标表:
    • 正在执行全表复制。
    • 正在直接加载目标表(而不是加载到暂存表中)。
    • 数据尚未完全传输到目标表中。
  • 为尚未完成数据传输的表重新传输所有数据。
  • 运行其余作业。
RESOLVE_TABLE_AFTER_LOAD 例如从暂存表到目标表中执行 INSERT 或 SELECT 语句以及添加索引和触发器等任务。 完成未完成的任务,然后运行其余作业。
COPY_STATISTICS 复制统计数据的任务。 完成未完成的任务,然后运行其余作业。
MOVE_JOURNAL_DATA 复制日志数据的 Teradata ARC 任务。
  • 移除任何剩余的 HUT 锁定。
  • 为尚未完成日志数据传输的表重新传输所有数据。
  • 运行其余作业。
ROW_COUNT_VALIDATION 每个表中复制的行数,确保源表和目标表中的行数匹配。通常是作业的最后一步。 完成未完成的任务,然后运行其余作业。

其他信息

  • 重新启动功能不包含任何解决导致作业失败的根本问题的逻辑。解决此类问题后再重新启动作业。
  • 对于使用 Teradata ARC 及其在线存档功能的作业,如果作业在 MOVE_DATA_STEP 期间失败,则运行 restart 命令将导致在线存档重新启动。完成后,目标表将反映源表在作业重新启动时间点而不是最初启动作业时间点上的状况。
  • 对于具有失败 DSA 任务的作业,请使用 cleanup 代替重新启动。DSA 不支持重新启动。
  • 执行重新启动时,Data Mover 不会收集任何关于源或目标的新信息,但会按照最初打算运行其余作业。Data Mover 不会让重新启动作业适应任何自最初创建该作业以来可能发生的更改。在某些情况下,如果原始作业计划过期,则可能需要运行 cleanup 命令并创建新的作业。
  • 如果作业使用 Teradata ARC 并在 MOVE_TABLE_DATA 或 MOVE_JOURNAL_DATA 步骤中失败,则会重新生成原始 Teradata ARC 脚本以仅复制未完成的对象。如果 Teradata ARC 脚本包含用户添加的更改,则这些更改不会转入到重新启动 Teradata ARC 脚本中。
  • 重新启动作业时,status 命令输出仅会反映为重新启动作业所执行的工作的状态。