記事
· 16 hr 前 4m read

整合性チェックの種類と方法

これは InterSystems FAQ サイトの記事です。
 

整合性チェックを行う場合、管理ポータルやタスクマネージャーから行う方法と、ターミナルから ^Integrity ユーティリティを使用して行う方法があります。

こちらのトピックでは、それぞれの違いをご説明します。
 


管理ポータル、整合性チェックタスク、
および SYS.Database の IntegrityCheck メソッドから行う方法


こちらの方法は、選択した複数のデータベースや、1 つのデータベースに格納された選択可能な複数のグローバルを対象に整合性をチェックを行います。

管理ポータル
[システムオペレーション] > [データベース] 整合性チェック・ボタン
※チェックを行いたいネームスペース、必要に応じてグローバルを選択し、実行・ボタンをクリック

整合性チェックタスク
[システムオペレーション] > [タスクマネージャー] > [タスクスケジュール] 整合性チェック・タスク 


SYS.Database クラスの IntegrityCheck メソッド:

%SYS>do ##class(SYS.Database).IntegrityCheck($LB("c:\intersystems\iris\mgr\user\"))  // DB指定
%SYS>do ##class(SYS.Database).IntegrityCheck()      // 全データベース

 

これらの方法では、エラーが検出されたすべてのグローバルを自動的に再テストします。
誤検出対策のための再チェックを行うため、余分に時間がかかる場合があります。

2回目のパス以降でもエラーが検出された場合、エラーメッセージが出力されます。

詳細は以下のドキュメントをご覧ください。
整合性チェックの誤検出


メリット:誤検出対策のための自動再チェックを行える、グローバル単位でチェックを行える(※管理ポータル)
デメリット:エラー検出の際には再チェックを行うため、余分な時間がかかる場合がある
 


^Integrity ユーティリティを使用して行う方法


こちらの方法は、ターミナルより手動でチェックを行えます。複数データベースを指定することも可能です。

管理ポータル等で行う上記方法と異なり、誤検出対策のための再チェックは行いません。

つまり、1 回目のパスでエラーが検出されたグローバルの再チェックは行わないため、エラーが報告されたグローバルをご自身で再チェックして誤検出を排除することが重要になります。

実行手順は、ターミナルを開き、%SYS ネームスペースに切り替えて、do ^Integrity と入力します。

また、^Integrity エントリポイントを用いることで、プログラムによる使用も可能です。
こちらの方法は、使用する並列処理の最大数を指定することが可能なため、整合性チェックのパフォーマンスを調整することが可能です(プロセス数の既定は8)。
以下の ^Integrity エントリポイント(CheckList^Integrity)を使用して行います。
 

Do CheckList^Integrity(outputglobal,dirlist,stopafteranyerror,listofglolist,maxproc,partialcheck)

outputglobal:結果を格納するグローバル
dirlist:チェックするすべてのディレクトリの $LIST 
stopafteranyerror:エラー発生時の整合性チェックの動作
                            (1:エラー検出でディレクトリのチェック停止、0:既定値。エラー発生時にチェック続行)
listofglolist:グローバル名を指定した $LIST を複数含む $LIST
maxproc:使用する並列処理の最大数(既定値は8)
partialcheck:既定値 0 (この値は予期しない問題が発生した場合のフォールバックとしてのみ提供)

 

 

// 以下は、5 つのプロセスを使って 3 つのデータベースをチェックしている例
set dblist=$listbuild(“/data/db1/”,”/data/db2/”,”/data/db3/”)
set sc=$$CheckList^Integrity(,dblist,,,5)
do Display^Integrity()
kill ^IRIS.TempIntegrityOutput(+$job)


メリット:エントリポイントを用いる場合、maxprocを指定することでパフォーマンスの調整が可能、
     再チェックを行わないので余分なチェックは行わない(時間短縮)、結果をファイルやターミナルに即座に出力
デメリット:自動再チェックは行わないためエラーの場合は独自に再チェックを行う必要がある、グローバルの選択はできない


enlightened【ご参考】
整合性チェック: 高速化と低速化
整合性チェックのパフォーマンスの調整

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください