rcvmanagerには、Teradata Databaseシステムの再始動中、またはアボートされたオンライン トランザクション中に、指定したテーブルのロールバックのキャンセルやスキップを実行するメカニズムが備わっています。実行に時間がかかるトランザクションや不要なテーブルのロールバックをキャンセルすると、Teradata Databaseシステム リソースの可用性が改善され、クラッシュ後のTeradata Databaseシステムの起動時間が短縮されます。
テーブルに対してCANCEL ROLLBACK ON TABLEコマンドを実行すると、Teradata Databaseは、関連したテーブル ヘッダーを無効とマークします。トランザクションの中の指定したテーブルに関するロールバックのみがキャンセルされます。トランザクションの残りの部分のロールバック処理は影響を受けません。
- テーブルの復元よりテーブルのロールバックに長い時間がかかる可能性が高い場合。
- テーブルの重要性が低い場合(一時テーブルなど)。
テーブルに対するロールバックの一般的なプロセスは、次のとおりです。
- ロールバックに長い時間がかかっている。
- ロールバックよりも短い時間で復元できる大きなテーブルを見つける。
- LIST ROLLBACK TABLESを実行して、どのテーブルがロールバック中であるかを調べる。
- CANCEL ROLLBACK ON TABLEを実行する。
- DELETE ALLを実行してテーブルを復元する。
テーブルを即時に復元しないのは、そのテーブルが不要な場合のみです。DELETE ALLは即時に実行する必要があります。CANCEL ROLLBACK ON TABLEを実行する前に、無効なテーブルをどのように扱うかを決めておく必要があります。また、その処理を即時に行なって、Teradata Databaseシステムをオンラインに復帰させる必要があります。
- テーブルを削除して再作成する場合。
- アーカイブ バックアップからテーブルを復元する場合。
- テーブルに関連したDLLが失われないようにするために、そのテーブルに対してDELETE ALL操作を実行する場合。DELETE ALLを実行すると、部分的にロールバックされた行が削除され、テーブルが使用できる状態になります。
テーブルに対するロールバックをキャンセルする前に、CANCEL ROLLBACK ON TABLEを参照してください。
テーブルに対するロールバックをキャンセルするには、次のようにします。
- rcvmanagerを開始する。
- コマンド プロンプトで、次のコマンドを入力する。
LIST ROLLBACK TABLES;
rcvmanagerによって、ロールバック中のテーブルの名前と詳細が表示されます。
- コマンド プロンプトで、次のコマンドを入力する。
CANCEL ROLLBACK ON TABLE nnnn:mmmm, nnnn:mmmm, ...;
手順2で表示されたロールバック リストに、指定されたテーブルIDが含まれているはずです。
rcvmanagerによって、次のように表示されます。
Type the password for user DBC or press the Enter key to return:
DBCパスワードを指定する必要があるのは、rcvmanagerセッションでCANCEL ROLLBACK ON TABLEコマンドを初めて使用する場合のみです。それ以降は、このコマンドを使用するときにDBCパスワードは要求されません。 - ユーザーDBCのパスワードを入力するか、Enterキーを押す。
不正なパスワードまたは他の理由のためにログオンに失敗した場合は、次のメッセージが表示されます。
*** Logon failed ***
Teradata Databaseは、RcvManagerのコマンド プロンプトに戻ります。この場合、ステップ2に戻ります。
Teradata Databaseシステムへのログオンに成功すると、次のメッセージが表示されます。
Rollback will be cancelled for: mmmm:nnnn "DBname"."TableName" Confirm y/n ?
- Yと入力して確認する。
テーブルの取り出し
ロールバックがキャンセルされた複数のテーブルに対して、単一のテーブルを取得する操作を実行することができます。それを実行するには、LOCKINGリクエスト修飾子をREAD OVERRIDEオプションと組み合わせて使用します。これらのテーブルに対しては、更新操作(UPDATE、INSERT、DELETE、およびMERGEリクエスト)は実行できません。詳細については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>のLOCKING Modifierを参照してください。