- 再作成の対象となるAMPがTable Rebuild実行中にオフラインかオンラインかにかかわらず、同じ クラスタ内の他のすべてのAMPはオンライン状態でなければなりません。他のクラスタ内のAMPは、オフラインであっても問題ありません。
- スパース マップ(またはシステム内のすべてのAMPのサブセットのみを含む連続マップ)を使用するテーブルは、必ずしもシステムのすべてのAMPに分散されるわけではありません。再作成用に指定されたテーブルが、REBUILDコマンドで指定されたAMP上に存在しない場合、テーブル再作成によって次のメッセージが発行されます。
Unable to rebuild table tablename due to table not in rebuilt AMP
連続マップとスパース マップの詳細については、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。 Vantageでは、一部のファイル システム エラーについて、影響を受ける特定のデータ サブテーブルやインデックス サブテーブル、またはデータ サブテーブルやインデックス サブテーブルの行の連続した範囲(“領域”)を分離することができます。 その場合、Vantageでは、影響を受けるサブテーブルまたは領域だけをダウンとマークします。 これにより、ダウンしているサブテーブルまたは行にはアクセスする必要がないトランザクションを、データベースのクラッシュや再始動を伴わずに実行できるため、システムのパフォーマンスと可用性が向上します。
通常の再作成プロセスでは、ダウンしている領域に関する情報がテーブル ヘッダーから削除されます。
すべてのテーブルを再作成する前に
すべてのテーブルを再作成する前に、以下のことを実行してください。
- Vproc Managerユーティリティを使用して、再作成するAMPのVprocStateをFATALに設定する。
- データベースを再起動します。この手順は、再作成するAMPの状態が最後のデータベースの再始動より前にFATALであった場合には、必要ありません。
- Vproc Managerユーティリティを使用して、再作成するAMPをブートする。
ブートの状態を示すメッセージがシステム コンソールに表示されます。正常にブートされた場合、このAMPはALL TABLES再作成の用意ができています。
BOOTコマンドは、すべてのテーブルの再作成に備えてAMPのディスクを再初期設定し、指定されたAMP上のDBSパーティションを始動します。これは、vprocのVprocStateがFATAL、ConfigStatusがDownの状態になっているときにのみ該当します。初期設定を行なうためには、確認のための入力が必要です。有効なVprocIdsは、システムによって異なりますが、0~30719または0~16383のいずれかの範囲の10進数です。
末尾に“x”を追加することにより、16進数を指定することもできます(例えば、0x、3FFx)。
- Table Rebuildユーティリティを始動して、ALL TABLES再作成をこのAMPに対して実行する。
- 再作成が完了したら、Vproc Managerユーティリティを使用して、このAMPのVprocStateをONLINEに設定する。Table Rebuildユーティリティは、完了時に、このAMPのVprocStateをUTILITYからOFFLINEに自動的に設定します。
- データベースを再起動します。
1つまたはすべてのテーブルの再作成
AMPのデータがすべて消失したため再作成する必要がある場合、またはそのAMPのデータベースDBCを再作成する必要がある場合は、Table Rebuildを実行して、必要な情報を復元できます。データベースDBCが再作成されている間、再作成の対象のAMPはオフラインでなければなりません。一方、AMP上の他のデータベース、または単一のテーブルを再作成するときには、AMPはオンラインまたはオフラインのいずれの状態でもかまいません。
すべてのデータベースを再作成した後、Vantageを再始動することにより、再作成されたテーブルを更新し、データが再作成されたAMPをオンライン処理に復帰させる必要があります。
Table Rebuildのバックグラウンドでの実行
LOG INTO logdbase.logtblオプションを指定すると、Table Rebuildはバックグラウンドで実行します。複数のテーブル再作成操作をバックグラウンドとフォアグラウンド(対話モード)の両方で同時に実行できます。バックグラウンドの再作成の完了メッセージが、システム コンソール、およびLOG INTOオプションで指定したユーザー定義のテーブルに送られます。
LOG INTOオプションで指定されるテーブルは、あらかじめ次のように作成済みでなければなりません。
CREATE SET TABLE logDB.LogTbl, FALLBACK ( MsgDate CHAR(8), /* format: 'yy/mm/dd' */ MsgTime CHAR(8), /* format: 'hh:mm:ss' */ MsgAMP CHAR(6), /* format: 'nnnn' */ MsgCode CHAR(1), /* see below */ MsgText VARCHAR(600) CHARACTER SET UNICODE) /* message text */ PRIMARY INDEX (MsgDate, MsgTime);
列 | 内容 |
---|---|
MsgDateおよびMsgTime | メッセージが生成された時点のシステムの日付と時刻。これらの列が、ログ テーブルの非固有プライマリ インデックスとなります。 |
MsgAMP | 再作成を実行するAMPの4桁のvproc番号。 |
MsgCode | 再作成メッセージのタイプを示す単一文字のコード。下記参照。 |
MsgText | 再作成メッセージのテキスト。 |
MsgCodeは、以下の値のうちのいずれかです。
値 | 意味 |
---|---|
‘ ’ | 通常のメッセージ |
‘D’ | データベース再作成のメッセージ |
‘E’ | エラー メッセージ |
‘J’ | テーブル再作成のメッセージ(ジャーナル) |
‘N’ | テーブル再作成のメッセージ(非フォールバック テーブル) |
‘R’ | テーブル再作成のメッセージ(回復に使用するテーブル) |
‘S’ | 再作成操作の始動/再始動 |