17.00 - 17.05 - クライアント ユーティリティのロック - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLリクエストおよびトランザクション処理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
ユーザー ガイド
Publication ID
B035-1142-170K-JPN
Language
日本語 (日本)

バルク データ ロード(FastLoad、MultiLoad、BTEQ)、バルク データ エクスポート(FastExport、BTEQ)、ストリーム データ ロード(Teradata Parallel Data Pump)、データ ロードとデータ エクスポートの両方(Teradata Parallel Transporter)、およびテーブルとデータベースのアーカイブ、回復、または復元(Archive/Recovery)などのタスクを実行するTeradata Tools and Utilitiesプログラムは、データベース リソースに、さまざまなレベルおよび重大度でロックを設定します。ロック レベルと重大度の詳細については、ロック レベルについておよびロックの重大度についてを参照してください。Archive/Recoveryユーティリティによって設定されるHUTロックの詳細については、<Teradata® Archive/Recovery Utilityリファレンス、B035-2412>を参照してください。

Teradata Tools and Utilitiesによってデータベースのリソースに設定されるロック

クライアント ユーティリティは、データベースのリソースに、以下に示すような基本的なタイプのロックを設定します。
  • 標準的なデータベース ロック

    Archive/Recoveryを除く、すべてのクライアント データのロード ユーティリティおよびエクスポート ユーティリティは、標準的なデータベース トランザクション ロックを使用します(デ-タベ-ス ロック、2フェーズ ロック、および逐次性を参照)。

    クライアント ユーティリティがデータベースのリソースに設定および解放するさまざまなデータベース ロックについては、以下のTeradata Tools and Utilitiesのマニュアルを参照してください。

    • Basic Teradata®Queryリファレンス、B035-2414
    • Teradata® FastExportリファレンス、B035-2410

      Teradata Parallel Transporterは、EXPORT演算子にFastExportプロトコルを使用します(詳細は<Teradata® Parallel Transporterリファレンス、B035-2436>を参照)。

    • Teradata® FastLoadリファレンス、B035-2411

      Teradata Parallel Transporterは、LOAD演算子にFastLoadプロトコルを使用します(詳細は<Teradata® Parallel Transporterリファレンス、B035-2436>を参照)。

    • Teradata® MultiLoadリファレンス、B035-2409

      Teradata Parallel Transporterは、UPDATE演算子にMultiLoadプロトコルを使用します(詳細は<Teradata® Parallel Transporterリファレンス、B035-2436>を参照)。

    • Teradata® Parallel Data Pumpリファレンス、B035-3021

      Teradata Parallel Transporterは、STREAM演算子にTeradata Parallel Transporterプロトコルを使用します(詳細は<Teradata® Parallel Transporterリファレンス、B035-2436>を参照)。

    • Teradata® Parallel Transporterリファレンス、B035-2436
  • ホスト ユーティリティ(HUT)ロック

    HUTロックは、Archive/Recoveryユーティリティおよび関連するさまざまなコマンドによって設定されるロックです。データベース ロックとは異なり、HUTロックは、ARCHIVEジョブ、RESTOREジョブ、ROLLBACKジョブ、またはROLLFORWARDジョブでRELEASE LOCKコマンドを指定するか、実行依頼するArchive/Recovery関連のコマンドでRELEASE LOCKオプションを指定して、明示的に除去する必要があります。これは、システムがHUTロックを自動的に解放せず、コマンド アボート後、ジョブ終了後、またはシステム再始動後も維持されるためです。

    HUTロックとデータベース ロックのもう1つの違いは、アーカイブ操作では、HUTロックはアーカイブ対象のAMPセットのテーブルまたはデータベース(または両方)にのみ設定されますが、データベース トランザクション テーブル レベルおよびデータベース レベルのロックは、システムのすべてのAMPのオブジェクトに設定されるという点です。

    最後に、HUTロックは、ジョブやトランザクションにではなく、Archive/Recoveryジョブを実行依頼するユーザーに関連付けられますが、データベース ロックは常にトランザクションに明示的に関連付けられます。

    HUTロックの詳細については、<Teradata® Archive/Recovery Utilityリファレンス、B035-2412>を参照してください。

HUTロックのデータベース トランザクション ロックとの相互作用について

HUT ACCESSロック、HUT READロック、HUT GROUP READロック、およびHUT EXCLUSIVEロックは、同じ重大度のデータベース ロックが他のデータベース ロックと相互作用するのとまったく同じ方法で、データベースによって設定されたロックと相互作用します。

ユーザーの視点から見ると、HUTロックとデータベース トランザクション ロックの間の重要な違いは、期間とスコープの2つだけです。

ロックのタイプ 期間 スコープ
データベース トランザクション トランザクションの実行依頼またはロールバックにかかる時間のみ保持します。

データベース トランザクション ロックは、ロックを設定するトランザクションがコミットまたはロールバックするとすぐに、自動的に解放されます。

セッション レベル。ロックは、トランザクションのロックを実行中のセッションによって実行依頼されたリクエストに適用されます。

同じセットのオブジェクトに対して実行中の別のセッションは、同じユーザーのもとで実行されている場合でも、独自のロックを設定する必要があります。

HUT HUTロックは、明示的なRELEASE LOCKコマンドを発行した場合、またはロックを設定するバッチ ロック操作が正常に完了し、RELEASE LOCKコマンドを指定する場合のみ解放されます。
HUTロックは、以下のどのイベントが発生した後も保持されます。
  • HUTロックを設定したユーティリティ コマンドが失敗する。
  • HUTロックが設定されたARCHIVEジョブが終了する。
  • Teradata Databaseが再始動される。

ロックが1つしかないため、ユーザーに実行依頼された他のジョブが、事前にHUTロックされたオブジェクトにアクセスし続けても、HUTロックされた一連のデータベース オブジェクトに対するRELEASE LOCKコマンドは、既存のHUTロックをすべて解放します。

他のオブジェクトの実行中にHUTロックを解放する際の警告については、<Teradata® Archive/Recovery Utilityリファレンス、B035-2412>を参照してください。このようなアクションは一貫性のないアーカイブの原因となります。

ユーザー レベル。ロックは、ユーザーがオブジェクトで実行しているどのARCHIVE操作にも適用されます。

HUTロックは、データベース オブジェクトに1度に1つだけ設定できます。設定されたロックによって、このユーザーのARCHIVE操作で、ロックを保持するデータベース オブジェクト セットにアクセスできるようになります。その一方で、他のユーザーは、このオブジェクト セットの競合するHUTロックを取得できなくなります。

HUTロックは、競合するトランザクション ロックがオブジェクト セットに設定されるのをブロックします。これは、そのロックが同じユーザーによって要求された場合も同様です。