投稿者

Developer Support Engineer at InterSystems Japan
記事 Megumi Kakechi · 9月 4, 2025 5m read

ミラー環境のアップグレード手順(メジャーバージョン編)

これは 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の前)、最後にアップグレードを行います。
 


1.事前準備

2.非同期DR(システムCとします)を停止する

3.バックアップ(システムBとします)を停止する

4.プライマリ(システムAとします)を停止する

5.システムB をアップグレードし、開始する(プライマリになる)

6.システムB 上のクラスとルーチンをアップグレードする

7.システムA をアップグレードし、開始する(バックアップになる)
  ※ミラーされたクラスとルーチンは、プライマリ(システムB)と同期されて最新状態となる

8.システムA 上の「ミラーされていない」クラスとルーチンをアップグレードする

9.システムB をシャットダウンする(システムAがプライマリになる)

10.システムBを開始する(システムBはバックアップとして起動する)

11.システムCをアップグレードし、開始する
   ※ミラーされたクラスとルーチンは、プライマリ(システムA)と同期されて最新状態となる

12.システムC 上の「ミラーされていない」クラスとルーチンをアップグレードする



では、上記手順を補足内容を含めて説明します。

1.事前準備

・ミラーへのすべてのユーザーアクセスを禁止する
・ミラーモニタで現在の状態を確認する
 ※アップグレードプロセス全体を通してミラーモニターを使用し、ミラーメンバーのシャットダウン、フェイルオーバー、または再起動を含むステップを実行した場合は、実行後にミラーモニターが変更を正しく反映していることを確認してください 
  
・プロダクションの自動起動を停止する(その他アプリでも、起動と同時にスタートするものを無効化)
・Linuxの場合は、ISCAgentの停止と自動起動の無効化を行う(詳しくは こちら


2.非同期DR(システムCとします)を停止する

3.バックアップ(システムBとします)を停止する

4.プライマリ(システムAとします)を停止する


5.システムB をアップグレードし、開始する(プライマリになる)

     

6.システム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はバックアップとして起動する)

  


11.システムCをアップグレードし、開始する

 
12.システムC 上の「ミラーされていない」クラスとルーチンをアップグレードする(%SYSを含む)

set$namespace = "<namespace>"do$system.OBJ.CompileAll("u")
do##Class(%Routine).CompileAll()

詳細は以下のドキュメントをご覧ください。

ミラーのアップグレード
Choosing Mirror Upgrade Procedure
 

enlightened【ご参考】
Cache Mirroring 101:簡単なガイドとよくある質問  
ミラーリングの機能について
ミラージャーナルファイルの削除のタイミングと要件
IRISでシャドウイングの代わりにミラーリングを構成する方法
ミラー環境のアップグレード手順(メンテナンスリリースバージョン編)