CHECKコマンドの例 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ - データベース ユーティリティ

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/qxr1512078764562.ditamap
dita:ditavalPath
ja-JP/qxr1512078764562.ditaval
dita:id
B035-1102
Product Category
Software
Teradata Vantage

この節では、CHECKコマンドのオプションを使用した例をいくつか示します。

例: CHECK ALL TABLES EXCLUDE …

1つ以上のデータベースまたはテーブルをチェックから外すには、CHECK ALL TABLES EXCLUDEを使用します。指定したオブジェクトがシステムに存在しない場合、サマリー レポートの最後のメッセージにオブジェクト名がリストされます。

CheckTableは、以下をチェックします。
  • ディクショナリおよびデータベースDBCをチェックする

    (データベースDBCがEXCLUDEリストにある場合は、チェックされません)

  • 除外リスト以外のデータベースをデータベース名の順序でチェックする

次のテーブルは、レベル1のチェックでのデータベースDBCに基づき、CHECK ALL TABLES EXCLUDE …の各種の例を示しています。

チェックする事柄 入力
データ ディクショナリ、およびDBC、SalesDB1、PurchaseDB1以外のすべてのデータベース CHECK ALL TABLES EXCLUDE DBC, SalesDB1, PurchaseDB1 AT LEVEL ONE;
データ ディクショナリのみ 以下のうちの1つです。
  • CHECK ALL TABLES EXCLUDE % AT LEVEL ONE;
  • CHECK ALL TABLES EXCLUDE %.% AT LEVEL ONE;
db1 、db2 のt2 とt4 を除くすべてのテーブル CHECK ALL TABLES EXCLUDE db1,db2.t2, db2.t4 AT LEVEL THREE;
database1内の、Salesで始まるテーブル名のものを除くすべてのテーブル CHECK ALL TABLES EXCLUDE database1.Sales% AT LEVEL ONE;

例: CHECK ALL TABLES AT LEVEL PENDINGOP

すべてのテーブルをチェックして保留操作があるかどうか判断する場合は、以下を入力します。

CHECK ALL TABLES AT LEVEL PENDINGOP;

次の出力が表示されます。

Check beginning at 11:13:31 11/06/26.

Data dictionary check started at 11:13:31 17/06/26.

...

Table: "PROD"."CUSTOMERS" starting at 11:14:22 17/06/26.
  Map No 1025, Table id 0000H 624BH, Database id 0000H 03FCH, No fallback.
  Table check bypassed due to pending MultiLoad.
  Table Result: Skipped
Table: "PROD"."SHIPMENT" starting at 11:14:24 17/06/26.
  Map No 1025, Table id 0000H 04E1H, No fallback.
  Table check bypassed due to pending Table Rebuild.
...

Summary: 
1,435 table(s) checked.
  420 fallback table(s) checked.
1,015 non-fallback table(s) checked.

    1 table(s) bypassed due to pending MultiLoad.
    1 table(s) bypassed due to pending Table Rebuild.
    0 table(s) failed the check.
    0 Dictionary error(s) were found.

Check completed at 11:14:58 17/06/26.

例: CHECK dbname EXCLUDE …

EXCLUDEの後にリストされるテーブルを除く、指定したデータベースのすべてのテーブルをチェックするには、以下を使用します。

CHECK dbname EXCLUDE ..。

EXCLUDEリストにワイルドカードを使用することができます。例えば、次のようになります。

check all tables exclude mydb% at level two

この場合、mydbで始まる名前のデータベースが除外されます。

次のテーブルは、レベル1のチェックでの、CHECK dbname EXCLUDEの各種の例を示しています。

目的 入力
テーブルt1、t2、t3を除くデータベースdbname1をチェックする CHECK dbname1 EXCLUDE t1, t2, t3 AT LEVEL ONE;
tableで開始して任意の1文字が続くテーブルと、文字列 weeklyを含むテーブルを除き、データベースdbname2をチェックする CHECK dbname2 EXCLUDE table?, %weekly% AT LEVEL ONE;
week1 で開始して任意の1文字が続くテーブルおよびmonthで開始するテーブルを除いたデータベース SalesDBをチェックする CHECK SalesDB EXCLUDE week1?, month% AT LEVEL ONE;

詳細は、名前でのワイルドカード文字の使用を参照してください。テーブルの指定にdbnameが含まれる場合、CheckTableは指定されたデータベースにあるテーブルしか検査しません。

例: NO ERROR LIMIT

MfgDbデータベースでNO ERROR LIMITを指定してレベル2のチェックを実行するには、次のように入力します。

CHECK MfgDb AT LEVEL TWO WITH NO ERROR LIMIT;

次のような出力が表示されます。

Check beginning at 13:08:03 17/04/26.
Table: "MFGDB"."INVENTORY" starting at 13:08:06 17/04/26.
  Map No 1025, Table id 0000H 0C31H, Database id 0000H 03FCH, Fallback.
  Table result: No errors.
Table: "MFGDB"."PARTS" starting at 13:08:07 17/04/26.
  Map No 1025, Table id 0000H 0C33H, Database id 0000H 03FCH, No fallback.
      2753: Primary data row is on wrong AMP.
            AMP 00000
            Row id 0000H 79B6H 9E37H 0000H 0001H
            Expected primary AMP 00001
  Table result: Error(s) reported.
Table: "MFGDB"."RETURNS_TEMP" starting at 13:08:08 17/04/26.
  Map No 1025, Table id 0000H 0C32H, Fallback.
  No errors reported.
Summary:
    3 table(s) checked.
    2 fallback table(s) checked.
    1 non-fallback table(s) checked.
    1 table(s) failed the check.
    0 Dictionary error(s) were found.
Check completed at 13:08:09 17/04/26.

この出力の最初の行はヘッダーです。これは、最初のテーブルがチェックされる直前に表示されます。ヘッダーには、チェックが開始された時刻と日付が以下の形式で示されます。

Check beginning at HH:MM:SS YY/MM/DD

1つ以上のAMPが利用不能な場合には、次のメッセージが表示されます。

The following AMPs are not operational.  As a result, certain checks will not be complete:
 nnnnn   nnnnn... ...

利用できないAMPは、nnnnnの形式で示されます。

次の行には、データベース名、テーブル名、マップ番号、内部ID、データベースID、フォールバック ステータス、および日時が示されています。

Table: “dbname”.“tablename” starting at YY/MM/DD HH:MM:SS
Map No nnnn, Table ID  nnnnH  nnnnH, Database id nnnnH  nnnnH, {Fallback | No fallback}
チェック処理が開始され、CheckTableが矛盾を検出すると、CheckTableはその矛盾に関連したメッセージを表示します。CheckTableは、データベース名と表名に基づいて、テーブルをアルファベット順にチェックします。DBCをチェックすることを指定する場合、CheckTableは、指定したデータベースおよびテーブルの前に必ずDBCをチェックします。CHECK AGAINは、アルファベット順のテーブルの順序付けに対する1つの例外です。テーブルの再チェック処理では、テーブルの順序はエラー ファイル内でそのテーブルが出現する順序で決定されます。

例: SKIPLOCKS

CheckTableはこのオプションを指定すると、テーブルをロックしようとして、すでにロックされていることを検出した場合、それらのテーブルを自動的にスキップします。例えば、次のように入力するとします。

CHECK fb3.t1 at level two SKIPLOCKS IN PARALLEL;

コマンドを実行してfb3.t1がロックされている場合、次の出力が表示されます。

Check Beginning at 07:57:25 17/12/30
Table: "FB3"."T1" skipped at 07:57:26 17/12/30 due to pending lock.
  Map No 1025, Table id 0000H 3E9H, Database id 0000H 041BH.
Summary:
    0 table(s) checked.
    0 fallback table(s) checked.
    0 non-fallback table(s) checked.
    1 table(s) skipped due to pending lock.
    0 table(s) failed the check.
    0 Dictionary error(s) were found.

SKIPLOCKSは、非同時実行モードのロック処理のみに適用されます。

CheckTableでは、RETRY LIMITを1に設定したCONCURRENT MODEを強制適用します。CheckTableで1つのテーブルをロックできない場合、残りのテーブルのチェックの後に再試行を1回行ないます。

例: SERIAL/PARALLEL

SERIALモードでは、CheckTableは、一度に1つのテーブルをチェックします。PARALLELモードでは、CheckTableは、複数のテーブルを同時にチェックします。次のテーブルは、両方のモードの例を示しています。

データベースDB0のテーブルt1、t10、t100、t1000、t11をレベル2でチェックする 入力
SERIALモード CHECK db0.t1% at level two IN SERIAL;
PARALLELモード CHECK db0.t1% at level two IN PARALLEL;

例: シリアル モードの出力

各テーブルは1つずつチェックされ、すべてのテーブル メッセージが1つのテーブル メッセージにグループ化されます。

Table: "DBO1"."T1" starting at 17:08:06 11/04/26.
  Map No 1025, Table id 0000H 0C4EH, Database id 0000H 041BH,
  Header missing on 1 AMP:
  00000
  Further checking skipped because of missing table header(s).
  Table result: Error(s) reported.

処理が完了すると、以下の終了メッセージまたはチェック結果のサマリーが表示されます。

Summary:
    5 table(s) checked.
    3 fallback table(s) checked.
    2 non-fallback table(s) checked.
    3 tables failed check.
    0 Dictionary error(s) were found.
Check completed at 7:57:24 17/12/30.
出力全体は示されません。

例: パラレル モードの出力

各テーブルは、複数のワーカー タスクによって同時に(並行して)チェックされます。各テーブル メッセージはメッセージのグループ化なしで別々に表示され、テーブル メッセージの3つのタイプ(starting、checking、およびending)で表示される場合があります。この結果、これらのメッセージは同時(並行)テーブル チェックのために他のテーブルに関する他のメッセージとともに表示される場合があります。

各メッセージの先頭にはデータベース名およびテーブル名が付いており、出力メッセージに関係するテーブルを識別しやすくなっています。

Check beginning at 07:57:14 17/12/30.
Table: "DB0"."T1" starting at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
Table:"DB0"."T10" starting at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 0D14H, Database id 0000H 041BH, Fallback.
Table:"DB0"."T100" starting at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
Table:"DB0"."T1000" starting at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 12E6H, Database id 0000H 041BH, Fallback.
Table: "DB0"."T10" checking at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
      2741: Table header not found.
            Table id 0000H 0D14H
            Header missing on 1 AMP:
            00000
            Further checking skipped because of missing header(s).
Table: "DB0"."T10" ending at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
  Table Result:  No errors
Table: "DB0"."T1" checking at 07:57:15 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
      2757: Primary data row is missing.
            Fallback AMP 00001, Fallback subtable 2048
            Row id 0000H 8C49H CDABH 0000H 0001H
            Expected primary AMP 00000
Table: "DB0"."T111" starting at 07:57:16 17/12/30.
  Map No 1025, Table id 0000H 12E8H, Database id 0000H 041BH, Fallback.
Table: "DB0"."T1" checking at 07:57:17 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
      2757: Primary data row is missing.
            Fallback AMP 00001, Fallback subtable 2048
            Row id 0000H BD81H 0459H 0000H 0001H
            Expected primary AMP 00000
Table: "DB0"."T100" checking at 07:57:17 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
      2757: Primary data row is missing.
            Fallback AMP 00003, Fallback subtable 2048
            Row id 0000H 1897H 9B57H 0000H 0001H
            Expected primary AMP 00002
Table: "DB0"."T1000" ending at 07:57:18 17/12/30.
  Map No 1025, Table id 0000H 12E6H, Database id 0000H 041BH, Fallback.
  Table Result:  No errors
Table: "DB0"."T1" checking at 07:57:18 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
      2880: Reference index row indexes non existent data row.
            AMP 00000, Primary subtable
            Reference index id 0
            Reference index row id 0000H 8C49H CDABH 0000H 0001H
            Reference index row count exceeds data row count by 1
Table: "DB0"."T1" checking at 07:57:18 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
      2888: Invalid reference index row.
            AMP 00002, Primary subtable
            Reference index id 0
            Reference index row id 0000H 1897H 9B57H 0000H 0001H
Table: "DB0"."T100" checking at 07:57:18 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
      2757: Primary data row is missing.
            Fallback AMP 00003, Fallback subtable 2048
            Row id 0000H 3133H 36AEH 0000H 0001H
            Expected primary AMP 00002
Table: "DB0"."T100" ending at 07:57:19 17/12/30.
  Map No 1025, Table id 0000H 0D6EH, Database id 0000H 041BH, Fallback.
  Table Result:  Error(s) reported.
Table: "DB0"."T1" checking at 07:57:19 17/12/30.
  Map No 1025, Table id 0000H 3F92H, Database id 0000H 041BH, Fallback.
  AMP 00002, Primary subtable
             Reference index id 0
             Reference index row id 0000H 3133H 36AEH 0000H 0001H

例: TABLES=n

次の例では、TABLES=n句オプションを使用しています。このオプションを使用して、PARALLELモードで同時にチェックするテーブルの数を指定します。

check all tables at level one in parallel tables=3;
Check beginning at 10:55:23 17/01/06.
Data dictionary check started at 10:55:23 17/01/06.
F2
>>>> Status: CheckTable running in PARALLEL mode.
      3 CheckTable tasks started.
      3 CheckTable tasks ACTIVE.
      0 CheckTable tasks IDLE.
Task  STATUS 

例: PRIORITY

優先順位レベルは、リソースの使用状況を制御し、パフォーマンスを向上させます。 高いタイムシェア ワークロード グループ(H-WD)内でCheckTableを実行するには、次のように入力します。

CHECK db3 at level two priority=H;

PRIORITYオプションでは、その動作はTASMが有効かどうかによって異なります。

WDAdminMというワークロード内でCheckTableをPARALLELモードで実行するには、次のように入力します。

CHECK eb3, db3, fb3.t1 at level two IN PARALLEL PRIORITY='WDAdminM';

次の例のPRIORITYに指定されたワークロード名が無効であると仮定します。

CHECK eb3, db3, fb3.t1 at level two IN PARALLEL PRIORITY='WDSdminM';

TASMが無効な場合、CheckTableでは、この優先順位の設定が無効であることをエラー メッセージで示し、次のコマンドを待機します。

TASMが有効な場合に無効なワークロード名を指定すると、CheckTableはワークロード管理ポートレットで指定されたデフォルトのワークロード マッピング(ワークロードWD-Defaultなど)を使用します。

例: 同時実行モードと再試行の制限

CheckTableではRETRY LIMITを1に設定してCONCURRENT MODEを上書きするため、ロックされているテーブルに対する最初の試行と1回の再試行が表示されます。CheckTableをRETRY LIMITを1に設定して実行するには、次のように入力します。

check rfc66706.table_1 at level three;

次のように表示されます。

Table: "RFC66706"."TABLE_1" starting at 16:15:32 17/02/09.
  Map No 1025, Table id 0000H 04D3H, Database id 0000H 041BH, Fallback.
  Table check skipped at 16:15:32 17/02/09 due to pending lock.

Table: "RFC66706"."TABLE_1" starting at 16:16:32 17/02/09.
  Map No 1025, Table id 0000H 04D3H, Database id 0000H 041BH, Fallback.
  Table check skipped again at 16:16:32 17/02/09 due to pending lock.
  Table Result: Skipped

例: テーブルのヘッダーの確認

DBC内のすべてのテーブル ヘッダーとすべてのテーブルをチェックするには、次のように入力します。

check dbc at level one;

テーブル ヘッダーをチェックするには、DBC.TVMに対するテーブルの読み取りロックが必要です。DBC内のテーブルごとに、CheckTableはテーブルの読み取りロックを獲得し、そのテーブルをチェックして、テーブル ロックを解除します。これらのロックによりDDL操作がブロックされる可能性があります。ただし、DBCチェックは短時間で実行されます。

例: チェック対象からのデータベースの除外

DBCを除くすべてのデータベースのすべてのテーブルをチェックするには、次のように入力します。

check all tables exclude dbc at level one;

データベースのリストを取得するために、DBC.DBASEに対する表ACESSロックが短時間で獲得されます。このACESSロックでは、競合は最小限に抑えられます。データベースごとに、現在のデータベース内のテーブルのリストを取得するために、DBC.TVMに対する表ACESSロックが短時間で獲得されます。このACESSロックでも、競合は最小限に抑えられます。

現在のデータベース内のテーブルごとに、CheckTableはREADテーブル ロックを獲得し、そのテーブルをチェックして、テーブル ロックを解除します。チェック対象のテーブルに対するWRITEロックまたはEXCLUSIVEロックのいずれかを必要とする操作はブロックされます。大きなテーブルの場合はロック期間が長くなる場合があります。EXCLUDE句を使用すると、アクティブに変更される大きなテーブルをスキップしてブロックを回避できます。

例: 障害サブテーブルとダウン領域のレポート(DOWN ONLY)

レベル1チェックでは、ダウンしているサブテーブルとダウンしている領域が報告されますが、ダウンしている領域は定義されません。

check fiu.onedr at level one down only;
Check beginning.
Table: "FIU"."ONEDR" checking.
  Map No 1025, Table id 0000H 06A1H, Database id 0000H 041BH. Fallback.
      9131:Check was skipped due to detection of error <9130>.
           AMP 00000, Primary Data Subtable 1024 has down region marked.
  Table Result: Error(s) reported
Summary:
    1 table(s) checked.
    1 fallback table(s) checked.
    0 non-fallback table(s) checked.
    1 table(s) skipped due to presence of down regions and/or down subtables.

例: ダウン領域の開始と終了のレポート

レベル2とレベル3チェックでは、ダウンしている領域を定義する開始行と終了行が指定されます。

check fiu.onedr at level three down only;
Check beginning.
Table: "FIU"."ONEDR" checking.
  Map No 1025, Table id 0000H 06A1H, Database id 0000H 041BH, Fallback.
      9131:Check was skipped due to detection of error <9130>.
           AMP 00000, Primary Data Subtable 1024 has down region marked.
           Region #1
             Start Row Id 0000000000000000 CDC4H F1BBH 0000H 0001H
             End Row Id   0000000000000000 DA53H B54CH 0000H 0000H
  Table Result: Error(s) reported
Summary:
    1 table(s) checked.
    1 fallback table(s) checked.
    0 non-fallback table(s) checked.
    1 table(s) skipped due to presence of down regions and/or down subtables.

例: 過剰なダウン領域によりAMPを障害状態としてマーキング

サブテーブルのダウンしている領域の数がDBS制御設定のMaxDownRegionsで定義されたしきい値を超えると、サブテーブルは全AMPでダウンとマークされて、CheckTableによってサブテーブルのダウンが報告されます。次の例では、AMP0のサブテーブルで、複数の領域がMaxDownRegionsで設定された制限値を超え、ダウンしていると想定しています。

check fiu.onedt at level two down only;
Check beginning.
Table: "FIU"."ONEDT" checking.
  Map No 1025, Table id 0000H 06A2H, Database id 0000H 041BH, Fallback.
      9131:Check was skipped due to detection of error <9129>.
           AMP 00001, Primary Data Subtable 1024 is marked down.
           AMP 00000, Primary Data Subtable 1024 is marked down.
  Table Result: Error(s) reported
Summary:
    1 table(s) checked.
    1 fallback table(s) checked.
    0 non-fallback table(s) checked.
    1 table(s) skipped due to presence of down regions and/or down subtables.

例: 前回のCHECKから失敗したテーブルを再チェック(CHECK AGAIN)

前のCHECKコマンドで検出された、障害が発生したテーブルを再チェックするには、次のように入力します。

CHECK AGAIN AT LEVEL TWO;

Level 2チェックを再実行する前に、Level 2を再度指定する必要があります。

CHECK AGAINコマンド ラインでテーブル再チェック処理を使用するには、チェック レベルとCHECKオプションを指定する必要があります。例えば、テーブル再チェックをより高いレベルで実行することができます。

例: 特定のエラー ファイルから失敗したテーブルを再チェック

特定のエラー ファイル内の障害が発生したテーブルを再チェックするには、次のように入力します。

CHECK AGAIN CheckTableErrors20130503164640 AT LEVEL TWO;
CHECK AGAIN /var/tmp/CheckTableErrors20130503164640 AT LEVEL TWO;
CHECK AGAIN '/var/tmp/CheckTableErrors20130503164640' AT LEVEL TWO;
CHECK AGAIN "/var/tmp/CheckTableErrors20130503164640" AT LEVEL TWO;