失敗したUpdateオペレータの回復 - Parallel Transporter

Teradata® Parallel Transporter ユーザー ガイド

Product
Parallel Transporter
Release Number
16.20
Published
2019年9月
Language
日本語
Last Update
2020-01-29
dita:mapPath
ja-JP/uah1527114222342.ditamap
dita:ditavalPath
ja-JP/uah1527114222342.ditaval
dita:id
B035-2445
Product Category
Teradata Tools and Utilities

Updateオペレータ ジョブの以下の段階で失敗が発生する可能性があります。

  • 取得フェーズの前
  • 取得フェーズ中
  • アプリケーション フェーズ中
  • アプリケーション フェーズの後

取得フェーズの前

取得フェーズの前に、Updateオペレータは以下を行ないます。

  • ジョブの属性の値を検証する
  • Teradata Databaseにログオンする
  • コマンドをTeradata Databaseに送信して、作業テーブルを作成する
  • DML文をTeradata Databaseに送信する

修正処置:TPTジョブは、エラー メッセージを表示します。 エラーを修正し、ジョブを再実行してください。

取得フェーズ中またはアプリケーション フェーズ中

取得フェーズ中、Updateオペレータは以下を行ないます。

  • コマンドをTeradata Databaseに送信し、取得フェーズを開始する
  • データをTeradata Databaseに送信する データは作業テーブルにロードされる
  • コマンドをTeradata Databaseに送信して、取得フェーズを終了する

取得フェーズで、Teradata Databaseはターゲット テーブルにMultiLoadロックを置きます。

アプリケーション フェーズ中、Updateオペレータは以下を行ないます。

  • コマンドをTeradata Databaseに送信し、アプリケーション フェーズを開始する。
  • コマンドをTeradata Databaseに送信し、アプリケーション フェーズを終了する。

アプリケーション フェーズで、Teradata Databaseは作業テーブルを使用してターゲット テーブルのDML文を実行します。 アプリケーション フェーズが完了すると、Teradata Databaseはターゲット テーブルのロックを解除します。

取得フェーズまたはアプリケーション フェーズで失敗が発生すると、ロードは一時停止状態になります。 一時停止状態とは、Teradata Databaseが、失敗が修正された後にロードが再開されるのを待機していることです。 取得フェーズで失敗が発生したとき、ターゲット テーブルにアクセスすることができます。アプリケーション フェーズで失敗が発生したときはターゲット テーブルにアクセスすることはできません。

修正処置:TPTジョブは、エラー メッセージを表示します。 エラーを修正し、ジョブを再実行してください。

エラーを修正できず、ロードを一時停止状態でなくする場合、以下の手順に従います。

  1. BTEQなどのユーティリティを使用します。
  2. Teradata Databaseにログオンします。
  3. 以下のコマンドを指定順序で入力します。
    RELEASE MLOAD <Target Table 1>;
    DROP TABLE <Work Table 1>;
    DROP TABLE <Error Table 1>;
    DROP TABLE <Error Table 2>;
    DROP TABLE <Log Table>;

    ターゲット テーブル名、作業テーブル名、エラー テーブル名、ログ テーブル名が失敗した元のロード ジョブにあります。

    RELEASE MLOADコマンドはターゲット テーブルのMultiLoadロックを解除します。

    元のロード ジョブに複数のターゲット テーブルがある場合、その他のターゲット テーブル、作業テーブル、エラー テーブルに対しステップ3のコマンドを繰り返します。

    ログ テーブルは一度だけ削除する必要があります。

    ターゲット テーブルはその内容がわかっている場合を除き、削除しないでください。 TPT Updateオペレータは通常、入力されたテーブルのロードに使用されます。 ターゲット テーブルを削除すると、重要なデータの多くが失われる可能性があります。
  4. ターゲット テーブルが選択可能であることを検証します。

    BTEQなどのユーティリティを使用して、ターゲット テーブルを選択します。

    ターゲット テーブルを選択するためのサンプル要求を以下に示します。

    SELECT COUNT(*) FROM <MyTargetTable>;

    行数を取得する必要があります。つまり、ロードは一時停止状態ではなくなりました。

    結果は以下のTeradata Databaseエラーを返しません。

    RDBMS 2652: Operation not allowed: <table name> is begin Loaded

    元のロード ジョブに複数のターゲット テーブルがある場合、その他のターゲット テーブルに対しサンプル要求を繰り返します。

ターゲット テーブルがフォールバックしたときにアプリケーションのロックを解除するには、次の手順に従ってMultiLoadロックを完全に解除します。
  1. RELEASE MLOAD <table_name > IN APPLY文を使用して、アプリケーションのロックを復元ロックに変更します。
    • このクエリーはフォールバックが存在するため、エラー7745 Mloadテーブルtable_nameをリリースできませんを返します。
    • ただし、アプリケーションのロックは復元ロックに変更されます。
  2. DELETE <table_name> ALLを使用して、テーブル内のすべての行を削除します。
  3. RELEASE MLOAD < table_name > IN APPLYを使用して、テーブルを解放します。

    このクエリーは、MLOADロックを完全に削除します。テーブルはこの時点から解放されます。

  4. 必要に応じて、MultiLoadスクリプトを修正します。
  5. MultiLoadジョブを最初から実行します。

RELEASE MLOADコマンドの詳細については、RELEASE MLOADを参照してください。

アプリケーション フェーズの後

アプリケーション フェーズの後、Updateオペレータは以下を行ないます。

作業テーブル、エラー テーブル、ログ テーブルを削除する(ユーザーが削除しないように要求した場合を除く)。

  • Teradata Databaseからセッションをログオフする

修正処置:

  1. BTEQなどのユーティリティを使用して、作業テーブル、エラー テーブル、またはログ テーブルを削除します。 ユーザーが削除を要求しなかった場合、このステップはスキップします。
  2. セッションがTeradata Databaseに残っている場合、システム管理者にセッションの削除を依頼するか、20分待ちます。 20分後、セッションはTeradata Databaseゲートウェイによってログオフされます。

    ジョブを再実行する必要はありません。