バルク データ ロード(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ロックは、以下のどのイベントが発生した後も保持されます。
ロックが1つしかないため、ユーザーに実行依頼された他のジョブが、事前にHUTロックされたオブジェクトにアクセスし続けても、HUTロックされた一連のデータベース オブジェクトに対するRELEASE LOCKコマンドは、既存のHUTロックをすべて解放します。 他のオブジェクトの実行中にHUTロックを解放する際の警告については、<Teradata® Archive/Recovery Utilityリファレンス、B035-2412>を参照してください。このようなアクションは一貫性のないアーカイブの原因となります。 |
ユーザー レベル。ロックは、ユーザーがオブジェクトで実行しているどのARCHIVE操作にも適用されます。 HUTロックは、データベース オブジェクトに1度に1つだけ設定できます。設定されたロックによって、このユーザーのARCHIVE操作で、ロックを保持するデータベース オブジェクト セットにアクセスできるようになります。その一方で、他のユーザーは、このオブジェクト セットの競合するHUTロックを取得できなくなります。 HUTロックは、競合するトランザクション ロックがオブジェクト セットに設定されるのをブロックします。これは、そのロックが同じユーザーによって要求された場合も同様です。 |