ミラー環境のアップグレード手順(メジャーバージョン編)
これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメジャーバージョン(例:2024.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。
こちらの手順は、「ミラー環境アップグレード時に計画的なダウンタイムを伴う」ことを前提とした手順になります。
※こちらのドキュメント にあるイメージの、「 Procedure 2: Major Version Upgrades with Planned Downtime」の手順です。
【注意1】
ミラーを構成するすべてのフェイルオーバーおよび DR 非同期メンバーは、同じバージョンの InterSystems IRIS である必要があります。異なるバージョンが許容されるのは、アップグレード中のみです。
アップグレードしたメンバーがプライマリメンバーになると、アップグレードが完了するまで、他のフェイルオーバーメンバーおよび DR 非同期メンバーは使用できません。
【注意2】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。
【注意3】
ミラーリング構成のInterSystems IRISでは、ジャーナルファイルの互換性を保つため、バックアップメンバーを先に、プライマリを後にアップグレードする必要があります。これは、古いバージョンでは新しい形式のジャーナルファイルを正しくリストアできない可能性があるためです。ジャーナルファイルのリストアは、作成元と同じかそれより新しいバージョンでのみ保証されます。
※ジャーナル復元の互換性(アップグレードの影響)
手順は以下のようになります。
もし、DR非同期メンバも構成している場合は、1番初めに停止し(3の前)、最後にアップグレードを行います。
2.非同期DR(システムCとします)を停止する
3.バックアップ(システムBとします)を停止する
4.プライマリ(システムAとします)を停止する
5.システムB をアップグレードし、開始する(プライマリになる)
7.システムA をアップグレードし、開始する(バックアップになる)
※ミラーされたクラスとルーチンは、プライマリ(システムB)と同期されて最新状態となる
8.システムA 上の「ミラーされていない」クラスとルーチンをアップグレードする
9.システムB をシャットダウンする(システムAがプライマリになる)
10.システムBを開始する(システムBはバックアップとして起動する)
11.システムCをアップグレードし、開始する
※ミラーされたクラスとルーチンは、プライマリ(システムA)と同期されて最新状態となる
12.システムC 上の「ミラーされていない」クラスとルーチンをアップグレードする
では、上記手順を補足内容を含めて説明します。
・ミラーへのすべてのユーザーアクセスを禁止する
・ミラーモニタで現在の状態を確認する
※アップグレードプロセス全体を通してミラーモニターを使用し、ミラーメンバーのシャットダウン、フェイルオーバー、または再起動を含むステップを実行した場合は、実行後にミラーモニターが変更を正しく反映していることを確認してください
・プロダクションの自動起動を停止する(その他アプリでも、起動と同時にスタートするものを無効化)
・Linuxの場合は、ISCAgentの停止と自動起動の無効化を行う(詳しくは こちら)
2.非同期DR(システムCとします)を停止する
3.バックアップ(システムBとします)を停止する
4.プライマリ(システムAとします)を停止する
5.システムB をアップグレードし、開始する(プライマリになる)
・クラス&ルーチンの再コンパイル
すべてのネームスペースのクラスを再コンパイル
do$system.OBJ.CompileAllNamespaces("u")全てのネームスペースのルーチンを再コンパイル
do##Class(%Routine).CompileAllNamespaces()
・Webゲートウェイのアップグレード
Webゲートウェイが、アップグレードするInterSystems IRISサーバとは別のマシンにある場合は、その別のマシン上のWebゲートウェイもアップグレードする必要があります。
同じサーバにある場合は、一緒にアップグレードされます。
・%SYSネームスペースのカスタムクラスとルーチンの再コンパイル
すべてのクラスとルーチンをコンパイルする際、%SYSネームスペースはデフォルトでスキップされます。%SYSネームスペース内のカスタムクラスとルーチンも必ず再コンパイルしてください。
set$namespace = "%SYS"do$system.OBJ.CompileAll("u")
do##Class(%Routine).CompileAll()
・その他、必要に応じて。詳細は ドキュメント をご覧ください。
7.システムA をアップグレードし、開始する(バックアップになる)
8.システムA上の「ミラーされていない」クラスとルーチンをアップグレードする(%SYSを含む)
set$namespace = "<namespace>"do$system.OBJ.CompileAll("u")
do##Class(%Routine).CompileAll()
9.システムB をシャットダウンする(システムAがプライマリになる)
10.システムBを開始する(システムBはバックアップとして起動する)
12.システムC 上の「ミラーされていない」クラスとルーチンをアップグレードする(%SYSを含む)
set$namespace = "<namespace>"do$system.OBJ.CompileAll("u")
do##Class(%Routine).CompileAll()詳細は以下のドキュメントをご覧ください。
ミラーのアップグレード
Choosing Mirror Upgrade Procedure
【ご参考】
Cache Mirroring 101:簡単なガイドとよくある質問
ミラーリングの機能について
ミラージャーナルファイルの削除のタイミングと要件
IRISでシャドウイングの代わりにミラーリングを構成する方法
ミラー環境のアップグレード手順(メンテナンスリリースバージョン編)