17.10 - 使用上の注意 - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

次のテーブルに、RELEASE MLOAD文を使用する場合の考慮事項を記載します。

RELEASE MLOADの使用上の注意
対象 使用上の注意
ロック ターゲット テーブルを解放するには、Teradata MultiLoadリリース機能は最初に、指定されたテーブルごとに排他ロックを取得する必要があります。しかしこれは不可能です。指定されたテーブルのいずれかにデータベース ロックまたはTeradata MultiLoad書き込みロックが配置されている場合、RELEASE MLOAD文は失敗します。

Teradata MultiLoadは通常、ターゲット テーブルに書き込みロックを配置します。

  • インポート タスクの取得フェーズの終盤で、データ収集が完了しデータのソート操作が開始されるとき
  • DELETE文がデータベースに送信されるとき、削除タスクの予備フェーズで

Teradata MultiLoadタスクがこれらの重要な時点に到達する前にRELEASE MLOAD文が実行されると、ユーティリティがターゲット テーブルに書き込みロックを配置できる前に、リリース機能が完了します。

返されるメッセージ リリース完了メッセージは、指定されたすべてのテーブルがリリース可能で、リリース機能がエラーなしで完了したことを示します。

リリース機能は、リリース不能なテーブルを検出すると、特定されたテーブルとそれをリリースできなかった理由を示すエラー メッセージで終了します。

取得フェーズのエラー状態には以下があります。
  • テーブルが存在しない
  • テーブルに他のロックがある
  • テーブルはTeradata MultiLoadターゲット テーブルでない
  • 要求するユーザーに必要な権限がない
    アプリケーション フェーズのエラー状態には、取得フェーズのすべてのエラー状態と以下があります。
    • テーブルにフォールバックがある
    • テーブルにNUSIがある
    • テーブルに永久ジャーナルがある
    • テーブルがアプリケーション フェーズにない
    この場合、以下のいずれかを行ないます。
    • 別のRELEASE MLOAD文を実行し、リリース可能なテーブルのみを指定する
    • エラー状態に基づいて修正措置を実施し、別のRELEASE MLOAD文を実行する
アプリケーション ロックの解除 RELEASE MLOAD文のIN APPLYオプションは、次のいずれかの条件を満たすターゲット テーブルのアプリケーション ロックを解除します。
  • テーブルに変更が加えられていない
  • テーブルは空で永久ジャーナルがない
  • テーブルにフォールバック、NUSI、永久ジャーナルのいずれもない

これらの条件がどれも満たされず、テーブルに永久ジャーナルがない場合、Teradata MultiLoadはアプリケーション ロックを復元ロック(Teradata MultiLoadの再起動を阻止する)に変更し、次のテーブル アクセスを許可します。

  • DELETE ALL
  • DROP FALLBACK
  • DROP INDEX
  • DROP TABLE
  • アクセス ロックをともなうSELECT
テーブルに永久ジャーナルが定義されている場合、ターゲット テーブルを削除するのが唯一のオプションです。ターゲット テーブルがレプリケーション グループに属し、変更データ キャプチャがアクティブの場合(例えば、レプリケーション グループのステータスがDefinedでもTerminatedでもない)、次の手順を実行してテーブルを削除する必要があります。
  1. レプリケーション グループを中断ステータスにします。
  2. ALTER REPLICATION GROUP文を使用して、レプリケーション グループからテーブルを削除します。
  3. テーブルを削除します。
ターゲット テーブルにフォールバックがある場合のアプリケーション ロック解除 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文を使用できます。
  • 挿入
  • 更新
  • 削除
テーブルの要件 指定されたすべてのテーブルは、Teradata MultiLoadタスクに関与している必要があります。指定されたテーブルがTeradata MultiLoadタスクに関与しない場合、データベースはRELEASE MLOAD文を拒否します。