はじめに
前回の設定編からの続きとなります。
前回を参照していない方は、↓にて確認して頂けると幸いです。
グローバルチェックの設定が終わったので、今度はいよいよグローバルのチェックを行いたいと思います。
4) Start(チェック実行)
チェックの設定が終わったら、いよいよ実行したいと思います。
「4) Start」を選択して下さい。
1) Create New Configuration
2) Edit Configuration
3) View Details
4) Start
5) Stop
6) Delete Configuration
7) Incoming Connections to this System as a DataCheck Source
Option? [4]
Configuration Name: defragCheck
State: Stopped due to Workflow Stop Phase
Current Phase: 3 - Stop
Workflow Phases:
1 - Check
2 - RecheckDiscrepancies, Iterations=2
3 - Stop
(restart)
Workflow Timeout: 432000
DataCheck will transition to phase #1.
Start Datacheck configuration 'defragCheck'? [y]
Starting...
チェック設定が複数ある場合は、実行するチェックの選択がありますが、今回は1つしか設定していないので、自動で「defragCheck」が選択されています。
スタートするのか聞かれるので、「y」をクリックして下さい。
3) View Details(状況確認)
チェックを開始したら、「3) View Details」で状況の確認を行います。
Option? 3
Configuration Name: defragCheck
1) View Status
2) View Results
3) View Queries
4) View Log
Option?
1) View Status(状況確認)
「1) View Status」を選択すると、チェックの進捗状況を確認することが出来ます。
「Current Phase: 2」とあるので、再チェックフェーズに入っていますね。
ただ、「0 Unmatched」とあるので差異がないと結果が出ています。
そのためPhase 2は即終了です。
チェックシナリオがPhase 1~3で完了のため、チェックが終了しました。
その時のターミナルの状態になります。
チェッククエリが全て一致(Matched)して(1776回)、不一致(Unmatched)だったチェッククエリが0と結果が出ています。
これで、デフラグしたデータベースはグローバル異常が発生していないと確信できました。
確認が終われば、「q」をクリックする事で画面を戻せます。
2) View Results(結果確認)
チェックが完了したら、結果の確認を行います。
全ての結果が一致していれば特に不要だと思いますが、不一致が確認できた時は、不一致グローバルを探す必要があります。
結果を確認するには、「2) View Results」を選択して下さい。
1) View Status
2) View Results
3) View Queries
4) View Log
Option? [2]
1) Active Results (2024-04-22 08:44:46 - 2024-04-22 08:49:06)
Which set would you like to view? [1]
Skip globals that matched between source and destination? No => [Enter]
View detailed subscript ranges? Yes => [Enter]
Device: [ファイルパス入力(D:\Temp\output\datacheck.txt)]
Parameters? "WNS" => [Enter]
チェックは1回しか行っていないので1を選択し、出力先のファイルパスを入力します。
細かい選択はEnterで良いでしょう。
念のため結果を確認してみます。
DataCheck Destination System: defragCheck
Results for check started: 2024-04-22 08:44:46
ended: 2024-04-22 08:49:06
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag10D Matched
^developer.data.Defrag10D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag10I Matched
^developer.data.Defrag10I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag1D Matched
^developer.data.Defrag1D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag1I Matched
^developer.data.Defrag1I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag2D Matched
^developer.data.Defrag2D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag2I Matched
^developer.data.Defrag2I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag3D Matched
^developer.data.Defrag3D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag3I Matched
^developer.data.Defrag3I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag4D Matched
^developer.data.Defrag4D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag4I Matched
^developer.data.Defrag4I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag5D Matched
^developer.data.Defrag5D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag5I Matched
^developer.data.Defrag5I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag6D Matched
^developer.data.Defrag6D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag6I Matched
^developer.data.Defrag6I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag7D Matched
^developer.data.Defrag7D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag7I Matched
^developer.data.Defrag7I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag8D Matched
^developer.data.Defrag8D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag8I Matched
^developer.data.Defrag8I --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag9D Matched
^developer.data.Defrag9D --Matched--> [end]
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag9I Matched
^developer.data.Defrag9I --Matched--> [end]
20 Globals Reported
全てのグローバルで、一致していると結果が出力されましたね。
不一致がどういう表示をするのか確認してみたいと思います。
差異を演出するため下記グローバルを削除して、再度チェックを行ってみたいと思います。
k ^developer.data.Defrag5D(78)
再チェックが完了しました。
「4 Unmatched」とありますが、再チェック分も加算されているので、あまりUnmatched数にビックリしなくても大丈夫です。
初見だとかなりのインパクトですよね(笑
1) View Status
2) View Results
3) View Queries
4) View Log
Option? 2
1) Active Results (2024-04-22 08:54:36 - 2024-04-22 08:59:11)
2) Last Completed Results (2024-04-22 08:44:46 - 2024-04-22 08:49:06)
Which set would you like to view?
結果を確認してみます。
~ 略 ~
D:\IRISDB\SAMPLE-DATA\ ^developer.data.Defrag5D Unmatched
^developer.data.Defrag5D --Matched--> ^developer.data.Defrag5D(64)
^developer.data.Defrag5D(64) --Unmatched--> ^developer.data.Defrag5D(96)
^developer.data.Defrag5D(96) --Matched--> [end]
~ 略 ~
^developer.data.Defrag5D(64 ~ 96)間に、何らかの相違がある事が出力されています。
後は、管理ポータルで目視確認するか、チェック設定を細かくして相違箇所を絞り込んでいき、相違しているグローバルを探していきます。
※今回の相違は、「^developer.data.Defrag5D(78)」を削除したため発生しています。
5) Stop(チェック停止)
端末の高負荷等で、チェックを途中で停止する必要が出てきたときに使用します。
一度停止を行うと次回チェック時に、停止した箇所からの再チェックが可能になります。
↓再スタートを確認するアナウンスが表示されます。
Start Datacheck configuration 'defragCheck'? (yes/no/restart)
ただ、稼働中のシステムの場合、長時間停止し続けると前回のチェックからデータが変動している可能性があるため、最初からやり直した方が良いです。
※ドキュメントにも同様の記述あります
6) Delete Configuration(チェック設定の削除)
不要になった設定を削除する事が出来ます。
もう使わないと判断したらゴミとして残ってしまうので、後々を考えると消しておいた方が良いかもしれません。
1) Create New Configuration
2) Edit Configuration
3) View Details
4) Start
5) Stop
6) Delete Configuration
7) Incoming Connections to this System as a DataCheck Source
Option? [6]
Configuration Name: defragCheck
Delete? No => [y]
案内にそって削除する項目を選択して下さい。
7) Incoming Connections to this System as a DataCheck Source
チェックのソース元として、どんな端末が接続してきたのかを一覧表示します。
セキュリティの一環としての利用だと考えています。
Option? 7
1) List Source Systems
2) View Log
Option? [1]
Name DestinationHost DestinationName State
SOURCE-87CA6A20-E011-4427-AB61-0B44CDA13AE2 127.0.0.1 defragCheckStopped
1 Rows(s) Affected
閉じた環境で運用していたので、このオプションを使ったことが無いですが、お客様の環境で実行する時は、念のため確認した方が良いかもしれません。
おわりに
データチェックが終われば、サービスの「%Service_DataCheck」を無効にした方が良いと思います。
普段、データベース間でのデータチェックを行う機会は少ないと思いますが、シャドウイング・ミラーリング・データコピー等々、元データと一致しているか心配になる時は、是非試してみて下さい。
私も、シャドウイング開始前に、このデータチェックを行って一応の安心を取っています。