選択パーティション アーカイブを復元する処理では、次のオプションを使用できます。
- PARTITIONS WHERE
- LOG WHERE
- ERRORDB/ERRORTABLES
- ALL PARTITIONS
- QUALIFIED PARTITIONS
以下の節では、PPIテーブルのパーティションを選択するオプションの使用方法について説明します。
PARTITIONS WHEREキーワード
PARTITIONS WHEREオプションは、復元するパーティションを条件式に定義するために使用します。 PARTITIONS WHEREには、以下の制約が適用されます。
- 処理対象が、個々のテーブルである(データベースではない)こと。
- ソース テーブルとターゲット テーブルに、PARTITIONS BY式が定義されていること。
- 復元が、全AMPレベルの復元であること(ディクショナリ、クラスタ、ジャーナルの復元ではないこと)。
- 対象となるテーブルが、RESTOREで指定されたデータベースに属している場合は、そのテーブルが(EXCLUDE TABLESを使用して)データベース レベル オブジェクトから除外され、個別に指定されていること。
- 条件式で指定された名前は、指定されているテーブル内にあります。(テーブルを使用すると、ターゲット テーブル内で指定されていないデータベース、テーブル、またはビューへのエイリアスと参照がエラーになります。)条件式内の参照列のみが、テーブルのパーティション列またはシステム派生列のPARTITIONになることを推奨します。他の列への参照はパーティション排除の役に立たず、意図したよりも多くのパーティションを誤って修飾する可能性があります。
LOG WHEREキーワード
PARTITIONS WHEREオプションで復元が必要なすべての行が選択されない場合には、LOG WHEREオプションを使用します。 このオプションを使用すると、Teradataで生成されたエラー テーブルには、PARTITIONS WHERE条件式で指定されたパーティションに含まれず、かつLOG WHERE条件式に一致するすべてのアーカイブ済み行が挿入されます。
このオプションは、オブジェクトに対してPARTITIONS WHEREも指定している場合にのみ使用してください。 LOG WHEREの記述がない場合、デフォルトでは、復元するパーティションのローで、エラーがあったもののみがエラー テーブルに記録されます。
ERRORDB/ERRORTABLESキーワード
ERRORDBオプションとERRORTABLESオプションは互いに排他的で、1つのオブジェクトに対してどちらか1つのみを指定できます。 ERRORDBまたはERRORTABLESを使用する場合は、PARTITIONS WHEREまたはALL PARTITIONSオプションを指定する必要があります。
- ERRORTABLESを指定してデータベース名を指定しなかった場合、またはERRORTABLESとERRORDBのどちらも指定しなかった場合には、実テーブルと同じデータベースにエラー テーブルが作成されます。
- ERRORTABLESを指定しない場合、エラー テーブルの命名規則は、デフォルトで、基本テーブルの名前の前に"RS_"を追加したものになります。例えば、"DataTable"という名前のテーブルのエラー テーブルは"RS_DataTable"になります。名前は、30バイトを超えると切り捨てられます。
ALL PARTITIONSキーワード
ALL PARTITIONSオプションは、テーブル内のすべてのアーカイブ パーティションを復元する場合に使用します。 以下の制約が適用されます。
- 復元対象が個々のテーブルであるか、またはALL FROM ARCHIVEオプションが指定されていること。
- ソース テーブルとターゲット テーブルに、PARTITIONS BY式が定義されていること。
- 復元が、全AMPレベルの復元であること(ディクショナリ、クラスタ、ジャーナルの復元ではないこと)。
- 対象に対してPARTITIONS WHEREが指定されていないこと。
- バックアップ処理が行なわれたときのパーティションの範囲条件が、明確に定義されていること。 範囲条件が明確に定義されているとは、ソース テーブルのPARTITION BY式が1つのRANGE_N関数で構成され、指定された範囲にNO RANGEまたはUNKNOWNが含まれていないことを言います。 (選択パーティションが明確に定義されているかどうかは、ANALYZEで確認できます。)
条件式が明確に定義されていない場合は、エラーが発生します。 ALL PARTITIONSではなくPARTITIONS WHEREを復元操作で使用する必要があります。
QUALIFIED PARTITIONSキーワード
このオプションは、AMPがダウンしているときに実行された全AMPアーカイブについて、そのアーカイブから選択パーティションを復元した後で特定のAMPアーカイブを復元する場合にのみ使用します。
選択パーティションの復元処理で使用するキーワードの例
次の例は、TransactionHistoryテーブルに含まれる2002年7月の行をすべて復元します。
RESTORE DATA TABLES (SYSDBA.TransactionHistory) (PARTITIONS WHERE (! TransactionDate BETWEEN DATE ‘2002-07-01’ AND DATE ‘2002-07-31’ !) ), RELEASE LOCK, FILE=ARCHIVE;
次の例は、TransactionHistoryテーブルに含まれる2001年7月の行をすべて復元し、2001年8月の行をすべてTransErrorというエラー テーブルに記録します。
RESTORE DATA TABLES (SYSDBA.TransactionHistory) (PARTITIONS WHERE (! TransactionDate BETWEEN DATE ‘2001-07-01’ AND DATE ‘2001-07-31’ !), LOG WHERE (! TransactionDate BETWEEN DATE ‘2001-08-01’ AND DATE ‘2001-08-31’ !), ERRORTABLES SYSDBA.TransError ), RELEASE LOCK, FILE=ARCHIVE;
次の例は、SYSDBAデータベースに含まれるすべてのテーブルのすべてのデータを、TransactionHistoryテーブルを対象としてアーカイブされたすべてのパーティションも含めて復元します。
RESTORE DATA TABLES (SYSDBA) (EXCLUDE TABLES (TransactionHistory)), (SYSDBA.TransactionHistory) (ALL PARTITIONS), RELEASE LOCK, FILE=ARCHIVE;