選択パーティションの復元処理で使用するキーワード - Teradata Tools and Utilities

Teradata Archive/Recovery Utilityリファレンス

Product
Teradata Tools and Utilities
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2018-09-07
dita:mapPath
ja-JP/byt1512701979771.ditamap
dita:ditavalPath
ja-JP/byt1512701979771.ditaval
dita:id
B035-2412
Product Category
Teradata Tools and Utilities

選択パーティション アーカイブを復元する処理では、次のオプションを使用できます。

  • 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;