Teradata ARCにより通常設定される完全な読み取りHUTロックを回避するためには、ローリングHUTロック用のUSE GROUP READ LOCKを指定します 完全な読み取りHUTロックは、全AMPレベルのアーカイブ時にONLINEオプションを使用してオンライン アーカイブを開始するか、またはLOGGING ONLINE ARCHIVE ONを使用して回避することもできます。
GROUPキーワードが指定されている場合、Teradata Databaseは次のことを行ないます。
- テーブル全体にアクセスHUTロックを適用する。
- アーカイブの対象となる行のグループに逐次読み取りHUTロックを適用する。
- 読み取りHUTロックを解除する。
- アーカイブの対象となる次の行グループに読み取りHUTロックを適用する。
GROUPキーワードを使用することによって、使用しない場合に比べて、テーブルの更新操作に対するロックアウト時間が大幅に短縮されます。 ロックされるグループの大きさは約64,000バイトです。
グループ読み取りHUTロックを指定したアーカイブでは、アーカイブ中に、そのテーブルに対してトランザクションによる更新を発生させることが可能です。 更新が発生した場合、アーカイブには、更新後にアーカイブされたデータ行、および更新前にアーカイブされたデータ行が混在することになります。 この場合、アーカイブを完全なものにするためには、トランザクションにより作成された更新後イメージ ジャーナルを共に使用する必要があります。
グループ読み取りHUTロックが使用できるのは、更新後イメージ ジャーナルを備えたテーブルに対してのみです。 すなわち、データベース レベルのオブジェクトをオンラインでバックアップする場合は、データベースのすべてのテーブルに更新後ジャーナル処理を定義する必要があります。 テーブルがデータベース レベルのGROUP READ LOCKアーカイブの一部として除外されている場合、ARCがGROUP READ LOCKオプションを受け入れられるように、更新後ジャーナル操作テーブルをテーブルに定義する必要があります。
変更後イメージ ジャーナルのないテーブルにグループ読み取りHUTロックを指定した場合、Teradata Databaseはテーブルをアーカイブせず、エラー メッセージが出力されます。
GROUPキーワードを指定せず、アーカイブ操作がデータベースを参照する場合、Teradata Databaseは指定したデータベースをロックします。 このHUTロックは、データベースのすべてのデータ テーブルのアーカイブの終了後に解除されます。
ARCHIVEが個々のデータ テーブルをアーカイブする場合、Teradata Databaseは各データ テーブルのアーカイブ前にロックし、テーブルのアーカイブが完了した後にHUTロックを解除します。 なお、HUTロックが解除されるのは、RELEASE LOCKキーワードを指定した場合のみです。