この節では、CHECKコマンドのオプションを使用した例をいくつか示します。
例: CHECK ALL TABLES EXCLUDE
1つ以上のデータベースまたはテーブルをチェックから外すには、CHECK ALL TABLES EXCLUDEを使用します。指定したオブジェクトがシステムに存在しない場合、サマリー レポートの最後のメッセージにオブジェクト名がリストされます。
- ディクショナリおよびデータベースDBCをチェックする
(データベースDBCがEXCLUDEリストにある場合は、チェックされません)
- 除外リスト以外のデータベースをデータベース名の順序でチェックする
次のテーブルは、レベル1のチェックでのデータベースDBCに基づき、CHECK ALL TABLES EXCLUDEの各種の例を示しています。
チェックする事柄 | 入力 |
---|---|
データ ディクショナリ、およびDBC、SalesDB1、PurchaseDB1以外のすべてのデータベース | CHECK ALL TABLES EXCLUDE DBC, SalesDB1, PurchaseDB1 AT LEVEL ONE; |
データ ディクショナリのみ | 以下のうちの1つです。
|
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 EXCLUDEEXCLUDEリストにワイルドカードを使用することができます。例えば、次のようになります。
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/DD1つ以上の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}
例: 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;
例: ディクショナリ チェックのみ
ディクショナリ チェックのみを開始するには、次のコマンドを実行します。
check all tables at level one in parallel scope dictionary; Running Reading Check beginning at 12:16:41 20/04/20. Checktable will run from Host: 0 Session: 0,61128 System Map check started at 12:16:41 20/04/20. No errors reported for System Map check. Data dictionary check started at 12:16:41 20/04/20. No errors reported for Data Dictionary check. Summary: 0 table(s) checked. 0 fallback table(s) checked. 0 non-fallback table(s) checked. 0 table(s) failed the check. 0 Dictionary error(s) were found. 0 System Map error(s) were found. Check completed at 12:16:43 20/04/20.
例: ユーザー テーブルのチェックのみ
ユーザー テーブルのチェックのみを開始するには、次のコマンドを実行します。
check all tables at level one in parallel scope user; Running Check beginning at 12:16:18 20/04/20. Reading Checktable will run from Host: 0 Session: 0,55914 Checktable will run from Host: 0 Session: 0,55915 Checktable will run from Host: 0 Session: 0,55916 Checktable will run from Host: 0 Session: 0,55917 Checktable will run from Host: 0 Session: 0,55918 Checktable will run from Host: 0 Session: 0,55919 Table: "DBC"."ACCLOGRULETBL" starting at 12:16:19 20/04/20. Map No 2, Table id 0000H 0159H, Database id 0000H 0001H, Fallback. Table: "DBC"."ACCESSRIGHTS" starting at 12:16:19 20/04/20. Map No 2, Table id 0000H 0131H, Database id 0000H 0001H, Fallback. ... Table: "TD_SYSXML"."XSLT_SHRED_BATCH" ending at 12:16:26 20/04/20. Map No 2, Table id 0000H 08F0H, Database id 0000H 03F2H, Fallback. Table Result: No errors Summary: 1,193 table(s) checked. 1,174 fallback table(s) checked. 19 non-fallback table(s) checked. 4 no primary-index table(s) checked. 16 table(s) bypassed due to being unhashed. 0 table(s) failed the check. Check completed at 12:16:26 20/04/20.
例: ディクショナリとユーザー テーブルのチェック
ディクショナリとユーザー テーブルのチェックを開始するには、次のコマンドを実行します。
Check all tables at level one in parallel scope all; Reading Check beginning at 12:19:34 20/04/20. Checktable will run from Host: 0 Session: 0,63954 System Map check started at 12:19:34 20/04/20. No errors reported for System Map check. Data dictionary check started at 12:19:34 20/04/20. No errors reported for Data Dictionary check. Checktable will run from Host: 0 Session: 1,1244 Checktable will run from Host: 0 Session: 1,1245 Checktable will run from Host: 0 Session: 1,1246 Checktable will run from Host: 0 Session: 1,1247 Checktable will run from Host: 0 Session: 1,1248 Table: "DBC"."ACCLOGRULETBL" starting at 12:19:36 20/04/20. Map No 2, Table id 0000H 0159H, Database id 0000H 0001H, Fallback. Table: "DBC"."ACCLOGTBL_TD15" starting at 12:19:36 20/04/20. Map No 2, Table id 0000H 0146H, Database id 0000H 0001H, Fallback. ... Table: "TD_SYSXML"."XSLT_SHRED_BATCH" ending at 12:19:43 20/04/20. Map No 2, Table id 0000H 08F0H, Database id 0000H 03F2H, Fallback. Table Result: No errors Summary: 1,193 table(s) checked. 1,174 fallback table(s) checked. 19 non-fallback table(s) checked. 4 no primary-index table(s) checked. 16 table(s) bypassed due to being unhashed. 0 table(s) failed the check. 0 Dictionary error(s) were found. 0 System Map error(s) were found. Check completed at 12:19:43 20/04/20.