2019年11月8日 - 警告: ミラーリングおよびジャーナルリストアでデータ整合性の問題が発生する
対象バージョン: 各項目をご参照ください
HeatlhShare製品については文末の別表に掲載しています
対象プラットフォーム: すべてのプラットフォーム
ミラーリングおよびジャーナルのリストアに関連して、データ整合性の致命的な問題を引き起こすいくつかの重大な欠陥を修正しました。
これらの問題は短時間で特定および修正されたため、インターシステムズはそれらをひとつのパッケージに統合することにより、アップグレードプロセスを簡素化しました
InterSystems IRIS、IRIS for Health、Health Connect、Cache、Ensemble、HeathShare、すべての製品で本問題が発生します。また、たとえ問題が発生しても、発生したことに気づかない可能性もあります。
そのため以下をお読みいただき、危険度と障害の回避策をご確認いただきますようお願いいたします。
不明点がございましたら、サポートセンターまでご連絡ください。
以下(1)-(5)をご確認ください。説明内で記述されるログは、全てcconsole.log (Cache、Ensemble、HealthSahre)および messages.log(InterSystems IRIS、IRIS for Health)に出力されるものです。
(1)
対象バージョン: Cache/Ensemble : 2017.2、2018.1
InterSystems IRIS : すべてのバージョン
本Mailの下部 [別表] のリストに記載されている全ての
HealthShare製品
[発生する問題]ミラーリング機能
インスタンス起動時にフェイルオーバー・メンバがプライマリに昇格する際ミラーデータが適用されない
[問題の詳細]
ミラーフェールオーバーメンバが起動するときに、フェールオーバーパートナーがシャットダウンしており、そのパートナーから
プライマリーになるためのジャーナルデータを取得する必要がある場合、このジャーナル適用が通知なく失敗する可能性があります。
以下のログがミラー・メンバが、起動時にプライマリに昇格するために他のミラー・メンバからジャーナルデータを取得した場合に出力されます。
11/01/19-13:51:59:109 (13062) 0 Mirror manager for <ミラー名> starting
11/01/19-13:51:59:774 (13062) 0 Retrieving journal file #<#> for mirror
<ミラー名> from <他のミラー・メンバのアドレス>
… (ジャーナル取得とデータ適用が続く)
11/01/19-14:06:53:165 (13062) 1 Becoming primary mirror server
お客様のシステムがこの問題の影響を受けた場合、ログに載っているいくつかのジャーナルが、実際にはデータベースに適用されていない可能性があります。
この問題を回避するには、両方のフェイルオーバー・メンバを停止した際は、最初に直前にプライマリとして起動していたメンバを起動し、その後でバックアップとして起動していたメンバを起動するようにしてください。
(2)
対象バージョン: Cache/Ensemble : 2017.2、2018.1
InterSystems IRIS : すべてのバージョン
本Mailの下部 [別表] のリストに記載されている全ての
HealthShare製品
[発生する問題]ミラーリング機能
非同期メンバでデジャーナルが停止した後、ミラーデータが適用されない
[問題の詳細]
システムが以下の条件を満たす場合、この問題が発生する可能性があります。
(A) ミラーリングの非同期メンバが、2^32(約40億)以上のレコードを1つのセッションでデジャーナルしている
(B) そのデジャーナル処理を手動で停止した
ここでデジャーナル処理を再開したとき、いくつかのジャーナル・レコードが適用されない可能性があります。以下のログがデジャーナル処理を手動で停止した場合に出力されます。
11/01/19-17:43:06:754 (436) 1 Dejournaling for <ミラー名> shutting down
and set to manual restart required
この問題を回避するには、非同期メンバでデジャーナル処理を停止する前に、ミラーリングを停止&再開してください。
(3)
対象バージョン: Cache/Ensemble : 2018.1.2
InterSystems IRIS : 2018.1 以外
本Mailの下部 [別表] のリストに記載されている全ての
HealthShare製品
[発生する問題]バックアップリストア機能
オンライン・バックアップをリストア(^DBREST)直後にジャーナルをリストアすると、ジャーナル・レコードがリストアされない
[問題の詳細]
これは、オンライン・バックアップ機能でデータベースをリストアし、かつ、その処理に続けてジャーナルをリストアしたとき固有の問題です。リストアの詳細情報については InterSystems IRISドキュメント「データ整合性ガイド」内の「オンライン・バックアップ・ユーティリティ」あるいはCache/Ensemble ドキュメント「Cacheデータ整合性ガイド」内の「Cacheオンライン・バックアップ」をご覧ください。
この問題は、バックアップのリストアに続いてジャーナルをリストアした際、ジャーナル・レコードが適用されない、というものです。%SYSネームスペース内に ^SYS("JOURNAL","RESTORE")グローバルが存在し、そこにリストア時のタイムスタンプと "StartAddress" ノードが同時に存在していれば、この問題が発生している可能性があります。
例えば次のようなグローバルです。
^SYS("RESTORE","JOURNAL","20191101 16:55:01","Files",1,"StartAddress")
=9374648
上記グローバルに "StartAddress" を含んだエントリが存在しなければ、そのシステムではこの問題は発生していません。
この問題を回避するには、オンライン・バックアップからリストアする際はデータベースのリストア処理の一環ではジャーナルをリストアせず、バックアップをリストア後に、改めて ^JRNRESTO でジャーナルをリストアしてください。また、ジャーナル・マーカーは使わないようにしてください。
(4)
対象バージョン:
Cache/Ensemble : すべてのバージョン(2018.1.2で発生の可能性が著しく高い)
InterSystems IRIS : 2018.1以外のすべてのバージョン
本Mailの下部 [別表] のリストに記載されている全てのHealthShare製品
[発生する問題]ミラーリング機能
一部のデータベースだけをミラーリングでキャッチアップすると、ジャーナルレコードが間違って適用される
[問題の詳細]
ミラーリングのキャッチアップ処理の対象が、全てのデータベースではなく一部のデータベースであった場合、ジャーナル内の古いレコードがミラーリングのアクティブなデータベースに適用されてしまい、その結果、最新のアプリケーションデータを誤って上書きしてしまう可能性があります。もしキャッチアップ処理が実行された場合、以下のログが存在します。
11/01/19-13:01:55:057 (17752) 0 Mirror <ミラー名> catchup started for
1 database.
… (キャッチアップ中に発生するその他イベント)
11/01/19-13:01:55:207 (17752) 0 Mirror Catchup completed for database
<データベース・フォルダ名>
この問題を回避するには、一部のデータベースのキャッチアップを実行する前に、ミラー・メンバをプライマリから一旦切断し、キャッチアップを実行してください。
一部のデータベースのキャッチアップをしたいミラーメンバで以下の手順を行います。
1) ミラーの切断
2) 一部のデータベースのキャッチアップ
3) ミラーの接続
(5) その他
ミラーリング、シャドウイング、ジャーナル・リストアに関連して、以下の問題がごく稀に発生します。それぞれの発生条件を満たしている場合でも、発生頻度は非常に稀です。各問題の詳細を知りたい場合は、Cache/Ensemble 2018.1.3 のリリースノート および IRIS 2019.1.1 のリリースノートを確認いただくか、サポートセンターまでご連絡ください。また、対象バージョンは各項目をご覧ください。
- ミラーリング停止処理 および インスタンス停止に伴ったミラーリングのシャットダウンに10秒以上かかる場合、上記(2)と同じ障害が発生する可能性があります。(通常、ミラーリングのシャットダウンは1秒以内に終わります)対象バージョンは、(2)と同じです。
- ミラーリングのデジャーナルで、ジャーナル・レコードが通知なく間違って適用される、もしくは、エラーで終了する可能性があります。またこれら問題の痕跡は残りません。対象バージョンは、すべてのバージョンです。
- ジャーナル・リストアで、ジャーナル・レコードが通知なく間違って適用される、もしくは、エラーで終了する可能性があります。またこれら問題の痕跡は残りません。対象バージョンは、(1)(2)と同じです。
- 並行デジャーナリングが有効の場合、ミラーリングが誤ったデータベースチェックポイントを格納している可能性があります。この為、デジャーナル手動停止中にシステムがクラッシュしたりチェックポイントが記録された場合、デジャーナル再開時にいくつかのジャーナル・レコードが適用されません。対象バージョンは、(1)(2)と同じです。
- プライマリが強制終了したことを受け、バックアップ・ミラー・メンバがプライマリに昇格するためにジャーナル・レコードの一部を適用する際、その適用が失敗することがあります。対象バージョンは、すべてのバージョンです。
- 様々な理由でデジャーナルが停止した際、ジャーナル・リストア、ミラーリング、シャドウイングにおいて、(2)と同じ問題が発生する可能性があります。対象バージョンは、32bitプラットフォームのすべてのバージョンです。
- 特定のデータベースのデジャーナル中に(
や 等の)エラーが発生した際、別のデータベースを誤って無効にしてしまう可能性があります。また上記レコードでジャーナル適用が失敗しているにも関わらず、デジャーナル処理は引き続き行われてしまいます。対象バージョンは、(1)(2)と同じです。 - ミラー・データベースのキャッチアップ処理で、前回のキャッチアップ処理が何らかの理由で失敗したデータベース場合、次のキャッチアップ処理でいくつかのジャーナル・レコードの適応がスキップされる可能性があります。対象バージョンは、すべてのバージョンです。
[現在のデータ整合性の検証方法]
DataCheck を実行することで、ミラー・メンバ間のグローバルの整合性を確認することができます。しかし、これは今回の問題が過去に発生していないことを保証するものではありません。しかし DataCheck では、今回の問題が過去に発生したかを確認することはできません。例えば、もし DataCheck の結果データが一致していると確認できたとしても、それは現時点のデータ整合性が取れているにすぎません。問題発生後にグローバルが更新されてしまうと、過去に問題が発生したか分からなくなるからです。
DataCheckに関する詳細な情報は、ドキュメント「データ整合性」もしくは「Cacheデータ整合性」内の「複数のシステムでのデータ整合性」をご覧ください。
[解決方法]
この問題は以下の修正IDで解決します。
SML2776, SML2781, SML2782, SML2783, SML2785, JO2990, JO3117,
JO3137, JO3140, JO3141, RJF391, RJF392, HYY2362, HYY2364, HYY2373
この修正は Cache/Ensemble 2018.1.3、InterSystems IRIS 2019.1.1、2019.3 を含めた、今後リリース予定のすべての製品に含まれる予定です。
また、お客様のご要望により、修正を現在お使いの製品に対するパッチとして個別に作成してご提供することが可能です。お使いのシステムに対するパッチが必要な場合は、下記バージョン情報とライセンスキー情報をご確認の上、
インターシステムズカスタマーサポートセンターまでお知らせ下さい。尚、パッチはフルキット(製品同様のインストールKit)としてのみ提供されます。
[別表]
HealthShare製品の対象バージョンについて
(1)(2)の対象バージョンは以下の通りです。
Information Exchange 15.03, 2018.1
Unified Care Record 2019.1
Patient Index 15.03, 2018.1, 2019.1
Health Insight 15.03, 2018.1, 2019.1
Provider Directory 2019.1
Personal Community 12, 2018.1, 2019.1
Health Connect 15.03 (Cache/Ensemble 2017.2、2018.1ベース)
Health Connect 2019.1
(3)の対象バージョンは以下の通りです。
Unified Care Record 2019.1
Patient Index 2019.1
Health Insight 2019.1
Provider Directory 2019.1
Personal Community 2019.1
Health Connect 15.03 (Cache/Ensemble 2018.1.2ベース)
Health Connect 2019.1
(4)の対象バージョンは、すべてのバージョンです。特に(3)のバージョンについては問題が発生しやすくなっています。