ミラーのアップグレード
このセクションでは、InterSystems IRIS インスタンス、アプリケーション、またはその両方を InterSystems IRIS ミラーのメンバ上でアップグレードする手順を示します。
"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章に記載されているように、ミラーのすべてのフェイルオーバー・メンバと DR 非同期メンバが同じ InterSystems IRIS バージョンである必要がありますが、アップグレード中だけは異なるバージョンであってもかまいません。アップグレード対象のメンバがプライマリになったら、このアップグレードが完了するまで、他方のフェイルオーバー・メンバおよびすべての DR 非同期メンバを使用できません (特に、これらをプライマリにすることはできません)。
ミラーリングでは、レポート非同期メンバがフェイルオーバー・メンバと同じ InterSystems IRIS バージョンである必要はありませんが、アプリケーションの機能で同じバージョンが要求される場合があります。詳細は、"高可用性ガイド" の “ミラーリング” の章の "InterSystems IRIS インスタンスの互換性" を参照してください。
4 つのミラー・アップグレード・パスの中から選択できます。どの手順を実行する必要があるかは、以下の "ミラーのアップグレード手順の選択" のセクションの各要素を参照して決定してください。これら 4 つの手順は、以下の "ミラーのアップグレード手順" のセクションに記載されています。
ミラーのアップグレードに関する以下の 2 つのセクションも参照してください。
-
"ミラーのアップグレードの用語" では、ミラーのアップグレード手順で使用されるいくつかの用語を定義します。
-
"アップグレード時のミラー・メンバの追加" では、ミラーにメンバを追加すべきタイミングについて説明します。
systemd をサポートする Linux システムでは、systemctl コマンドまたは /etc/init.d/ISCAgent スクリプトを使用して ISCAgent を管理できますが、どちらか一方の方法を選択して、その方法のみを使用する必要があります。ISCAgent を停止する際には、常に、それを開始した方法を使用する必要があります。詳細は、"InterSystems 高可用性ガイド" の “ミラーリング” の章の "Linux システムでの ISCAgent の開始" を参照してください。
こういった Linux システムで InterSystems IRIS をアップグレードすると、実行されている ISCAgent は、systemd を使用して自動的に再起動されます。ISCAgent の管理に /etc/init.d/ISCAgent スクリプトを使用している場合は、このエージェントが自動的に再起動されないように、エージェントを停止してからアップグレードを実行し、アップグレードの後に、このスクリプトを使用してエージェントを再起動します。
ミラーのアップグレード手順の選択
ミラーのアップグレードに適した手順を選択する際に考慮すべき主な要素は、以下の 2 つです。
-
InterSystems IRIS のインストール済みバージョンのメンテナンス・リリースにアップグレードするのか、または InterSystems IRIS の新規メジャー・バージョンにアップグレードするのか。
-
アップグレードにミラーリング・データベースへの変更が含まれるか。
メンテナンス・リリースにアップグレードする場合に、アプリケーション・アップグレードは行わないときは、2 番目の質問を考慮する必要はありません。常に、"メンテナンス・リリース・アップグレード" の簡単な手順を使用できます。この手順では、計画的フェイルオーバーの実行に要する時間のみ、ミラーは使用できない状態になります。
ただし、InterSystems IRIS のメジャー・バージョン間でアップグレードする場合、アプリケーション・アップグレードを実行する場合、またはその両方を行う場合は、アップグレードにミラーリング・データベースの変更が含まれる可能性があります。このような変更は、アプリケーション・アクセスが無効化されている間に、アップグレード手順の一部として、機能しているプライマリ・フェイルオーバー・メンバ上で行う必要があります。このため、アップグレードでは、ミラーリング・データベースの変更を行わない場合よりも長いダウンタイムが必要になります (その後、変更はバックアップ・メンバおよび非同期メンバ上でミラーによって複製されます)。
メジャー・アップグレードの後に、インスタンス上のすべてのアプリケーション・ネームスペース内のクラスをすべてリコンパイルすることをお勧めします。一部のルーチンも、リコンパイルが必要です。実行するアプリケーション・アップグレードで、アプリケーション・データの変更が必要になることがあります。いずれの状況においても、アップグレードによって、ミラーリングされたデータベースが変更されることがあります。
メジャー・リリースにアップグレードする場合、アプリケーション・アップグレードを実行する場合、またはその両方を行う場合は、以下のいずれかの条件に該当するかどうかを判断する必要があります。
-
クラスとルーチンは、ミラーリングされたデータベースに保存されます。これには、アプリケーション・データも格納されています。クラスは、プライマリ上でリコンパイルする必要があります (アプリケーションがアップグレードされていない場合でも)。ルーチンについては、プライマリでのリコンパイルをお勧めします。
-
アプリケーション・アップグレードに伴って、ミラーリングされたデータベース内のデータをアップグレードする必要がある場合。これらの変更は、プライマリ上で実行する必要があります。
すべての相互運用プロダクションにはミラーリングされたアプリケーション・コードがあるため、相互運用プロダクションでミラーリングされている環境には、これらの条件が常に適用されます。
メジャー・アップグレードまたはアプリケーション・アップグレード、あるいはその両方がこれらのいずれかの条件を満たす場合は、"メジャー・バージョン・アップグレード (ミラーリングされたデータベースの変更あり)" の手順を使用します。この手順では、計画的フェイルオーバーを実行し、ミラーリングされたデータベースに必要な変更を加える時間のみ、ミラーは使用できない状態になります。
アップグレードに、ここに挙げられているミラーリングされたデータベースの変更が含まれない場合は、"メジャー・バージョン・アップグレード (ミラーリングされたデータベースの変更なし)" の手順を検討してください。この手順では、計画的フェイルオーバーの実行に要する時間のみ、ミラーは使用できない状態になります。
計画的メンテナンスの時間が十分にあり、ミラーのダウンタイムを最小限に抑えるかどうかが重大な問題ではない場合は、代わりに "メジャー・バージョン・アップグレード (計画的ダウンタイムあり)" の簡単な手順を使用することができます。
メジャー・アップグレードの場合、ミラーの InterSystems IRIS インスタンス、アプリケーション・コード、またはその両方のアップグレードに、各手順の一般的な順序が適用されます。アップグレードする対象に合わせて、個々のステップを調整します。
状況によっては、特定の手順で追加のステップや詳細が必要になることがあります。これでもまだどの手順が適しているのかわからない場合や、記載されている特定の手順が適切かどうかわからない場合は、インターシステムズのサポート窓口Opens in a new tab (WRC) にお問い合わせください。
アップグレード時のミラー・メンバの追加
ミラーにメンバを追加する計画がある場合、このセクションで説明するいずれかのアップグレードの実行計画を立てるまでメンバの追加を延期できます。新規バージョンのメンバをアップグレード時に追加することで、後からアップグレードを行う必要がなくなります。直ちに処理を続行し、説明どおりにアップグレードを完了させるのであれば、アップグレード中いつでも、新規バージョンのメンバをミラーに追加することができます。ただし、制約事項が 1 つあり、新規バージョンのメンバがプライマリになったら、そのメンバは、他のすべてのメンバがアップグレードされるまでプライマリであり続ける必要があります。
新規ハードウェアにミラーを移行する場合は、アップグレード中に新規メンバを追加すると非常に効果的です。いずれかのフェイルオーバー・メンバをアップグレードしてからフェイルオーバーするのではなく、ターゲット・システムに新規バージョンの新規インスタンスをインストールし、そのインスタンスを DR 非同期メンバとしてミラーに追加し、バックアップに昇格させてからフェイルオーバーすることで、ミラー・プライマリを新規システムに移行することができます。この手法を繰り返して、残りのフェイルオーバー・メンバを移行することができます。この手法を説明するため、このセクションの手順には、既存のバックアップをアップグレードする代わりに、新規バージョンの新規バックアップを追加するステップが含まれます。
ミラーのアップグレードの用語
このセクションの手順では、以下の用語が使用されています。
インスタンスのすべてのアプリケーション・ネームスペース内のクラスをすべてリコンパイルします。これは、InterSystems IRIS メジャー・バージョン・アップグレード ("アップグレード後のタスク" を参照) またはアプリケーション・アップグレード、あるいはその両方の後に行う必要があります。状況によっては、以下の 1 つ以上の操作が必要になることがあります。
-
前述のように、クラスが存在するミラーリングされたデータベースにアプリケーション・データも含まれる場合、これらのクラスは、機能しているプライマリ・フェイルオーバー・メンバ上でローカルにリコンパイルする必要があります (アプリケーション・アップグレードでこれらが変更されるかどうかは関係ありません)。ルーチンが存在する場合は、これらをリコンパイルすることをお勧めします。
-
アプリケーション・データとは別個のミラーリングされないルーチン・データベースに格納されているクラスおよびルーチンは、現在のプライマリかどうかに関係なく、ミラー・メンバ上でリコンパイルできます。
-
別個のミラーリングされないルーチン・データベースに格納されているクラスおよびルーチンは、“プリコンパイル” することもできます。それには、既にターゲット InterSystems IRIS リリースにアップグレードされているシステム上でデータベースのコピーをリコンパイルしてから、アップグレード後に各ミラー・メンバに配布します。
最初はプライマリ・フェイルオーバー・メンバであるミラー・メンバ。
最初はバックアップ・フェイルオーバー・メンバであるミラー・メンバ。
フェイルオーバー・メンバに昇格された、新規 InterSystems IRIS バージョンに新たに追加された DR 非同期メンバ。
^MIRROR ルーチンを使用してフェイルオーバーなしの状態を設定し、フェイルオーバーが発生しないようにします。手順については、"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章の "フェイルオーバー・メンバのメンテナンス時の不要なフェイルオーバーの回避" を参照してください。
iris stop コマンドを使用して、インスタンスを正常にシャットダウンします ("InterSystems IRIS システム管理ガイド" の “InterSystems IRIS 複数インスタンスの使用法” の章の "InterSystems IRIS インスタンスの制御" を参照してください)。
"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章の "DR 非同期メンバのフェイルオーバー・メンバへの昇格" の説明に従って、DR 非同期ミラー・メンバをフェイルオーバー・メンバに昇格させる手順を実行します。
インスタンスの管理ポータルの [ミラー・モニタ] ページで、ミラーとそのメンバの状態を確認します。詳細は、"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章の "ミラー・モニタの使用法" を参照してください。
ミラーのアップグレード手順
4 つのミラー・アップグレード・パスの中から選択できます。どの手順を実行する必要があるかは、"ミラーのアップグレード手順の選択" のセクションの各要素を参照して決定してください。4 つの手順は、以下のとおりです。
最初の 3 つの手順は、可能な限り短いアプリケーション・ダウンタイムで必要なアップグレードを実行できるよう設計されています。これらの手順は、アップグレードのさまざまな状況に対応するために異なります。最後の手順は、やや簡易な手順であり、ダウンタイムの最小化が優先事項でない場合に、任意のタイプのアップグレードに使用できます。
メンテナンス・リリース・アップグレード
InterSystems IRIS の新規メジャー・バージョンではなく InterSystems IRIS のメンテナンス・リリースにアップグレードし、アプリケーションに変更を加えない場合は、以下の手順を使用します。この手順では、計画的フェイルオーバーの実行に要する時間のみ、ミラーは使用できない状態になります。
-
バックアップが完全にアップグレードされるまでフェイルオーバーが発生しないようにするには、フェイルオーバーなしを設定します。
-
以下の 2 つの操作のいずれかを実行します。
-
既存のバックアップをアップグレードします。
-
バックアップ (B) の適切なシャットダウンを実行します。
-
バックアップ (B) を InterSystems IRIS の新規バージョンでアップグレードします。システム B がバックアップになります。
-
-
新規バージョンの新規バックアップを追加します。
-
システム C に InterSystems IRIS の新規バージョンをインストールします。
-
システム C を DR 非同期メンバとしてミラーに追加します。
-
システム C を昇格させてフェイルオーバー・メンバにします。システム C がバックアップになり、システム B は DR 非同期になります。
-
-
-
ミラー・モニタを表示して、バックアップ (B または C) がアクティブになっていることを確認します。
-
フェイルオーバーなしをクリアします。
-
プライマリ (A) の適切なシャットダウンを実行します。ミラーがフェイルオーバーし、バックアップ (B または C) がプライマリとして引き継ぎます。
-
システム A を InterSystems IRIS の新規バージョンでアップグレードします。システム A がバックアップになります。
-
システム C がプライマリになり、システム B が DR 非同期に降格された場合は、システム B をアップグレードします。
メジャー・バージョン・アップグレード (ミラーリング・データベースの変更あり)
InterSystems IRIS の新規メジャー・バージョンへのアップグレードまたはアプリケーション・アップグレード、あるいはその両方を実行する際、ミラーリング・データベースの変更が必要であると判断した場合 ("ミラーのアップグレード手順の選択" を参照)、以下の手順を使用します。この手順では、計画的フェイルオーバーを実行し、ミラーリング・データベースに必要な変更を加える時間のみ、ミラーは使用できない状態になります。
-
バックアップが完全にアップグレードされるまでフェイルオーバーが発生しないようにするには、フェイルオーバーなしを設定します。
-
以下の 2 つの操作のいずれかを実行します。
-
既存のバックアップをアップグレードします。
-
バックアップ (B) の適切なシャットダウンを実行します。
-
バックアップ (B) を InterSystems IRIS の新規バージョンでアップグレードします。システム B がバックアップになります。
-
システム B で、ミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
-
新規バージョンの新規バックアップを追加します。
-
システム C に InterSystems IRIS の新規バージョンをインストールします。
-
システム C を DR 非同期メンバとしてミラーに追加します。
-
システム C を昇格させてフェイルオーバー・メンバにします。システム C がバックアップになり、システム B は DR 非同期になります。
-
-
-
ミラー・モニタを表示して、バックアップ (B または C) がアクティブになっていることを確認します。
-
サイトで確立されている手法を使用して、ミラーへの新規ユーザ・アクセスを禁止します。また、システム B がプライマリになったときに通常開始されるアプリケーション・ジョブを無効にする必要があります。
-
フェイルオーバーなしをクリアします。
-
プライマリ (A) の適切なシャットダウンを実行します。ミラーがフェイルオーバーし、バックアップ (B または C) がプライマリとして引き継ぎます。
-
新規プライマリ (B または C) でミラーリングされたクラスとルーチンをアップグレードします。アプリケーション・アップグレードでミラーリング・データベースのさらなる変更が必要な場合、それらの変更を行います。
-
ミラーへのユーザ・アクセスをリストアします。
-
完全にアップグレードされるまで、システム A がプライマリとして引き継がないようにするには、フェイルオーバーなしを設定します。
-
システム A を InterSystems IRIS の新規バージョンでアップグレードします。システム A がバックアップになります。
-
システム A で、ミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
フェイルオーバーなしをクリアします。
-
システム C がプライマリになり、システム B が DR 非同期に降格された場合は、システム B をアップグレードし、システム B でミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
メジャー・バージョン・アップグレード (ミラーリング・データベースの変更なし)
InterSystems IRIS の新規メジャー・バージョンへのアップグレードまたはアプリケーション・アップグレード、あるいはその両方を実行する際、ミラーリング・データベースの変更が不要であると判断した場合 ("ミラーのアップグレード手順の選択" を参照)、以下の手順を使用できます。
別個のミラーリングされないルーチン・データベースを常に維持する静的アプリケーションの場合は、これが最も簡易な手順です。ただし、別個のルーチン・データベースが通常はミラーリングされる場合でも、アップグレード期間中にこれらのデータベースをミラーから削除することで、この手順を使用できます。
ルーチン・データベースが通常はミラーリングされる場合は、ルーチン・データベースをミラーから削除する前に、アプリケーション・データが含まれていないことを確認してください。
ECP アプリケーション・サーバがミラーに接続されている場合、通常はミラーリングされるルーチン・データベースでこの手順を使用することはできません。
-
サイトで確立されている手順を使用して、コード・フリーズとアプリケーション構成のフリーズを実行してアップグレード中のアプリケーションの変更を禁止し、アップグレード中にそのルーチン・データベースが変更されないようにします。
-
バックアップが完全にアップグレードされるまでフェイルオーバーが発生しないようにするには、フェイルオーバーなしを設定します。
-
以下の 2 つの操作のいずれかを実行します。
-
既存のバックアップをアップグレードします。
-
ルーチン・データベースがミラーリングされている場合は、システム B でミラーから削除します。
-
ミラー・モニタを表示して、バックアップ (B) がアクティブになっていることを確認します。
-
バックアップ (B) の適切なシャットダウンを実行します。
-
バックアップ (B) を InterSystems IRIS の新規バージョンでアップグレードします。システム B がバックアップになります。
-
システム B で、クラスおよびルーチンをアップグレードします。
-
-
新規バージョンの新規バックアップを追加します。
-
システム C に InterSystems IRIS の新規バージョンをインストールします。
-
システム C を DR 非同期メンバとしてミラーに追加します。
-
システム C を昇格させてフェイルオーバー・メンバにします。システム C がバックアップになり、システム B は DR 非同期になります。
-
ルーチン・データベースがミラーリングされている場合は、システム C と B でミラーから削除します。
-
ミラー・モニタを表示して、バックアップ (C) がアクティブになっていることを確認します。
-
-
-
フェイルオーバーなしをクリアします。
-
プライマリ (A) の適切なシャットダウンを実行します。ミラーがフェイルオーバーし、バックアップ (B または C) がプライマリとして引き継ぎます。
-
完全にアップグレードされるまで、システム A がプライマリとして引き継がないようにするには、フェイルオーバーなしを設定します。
-
システム A を InterSystems IRIS の新規バージョンでアップグレードします。システム A がバックアップになります。
-
システム A で、ミラーリングされないクラスおよびルーチンをアップグレードします。
-
システム C がプライマリになり、システム B が DR 非同期に降格された場合は、システム B をアップグレードし、システム B でミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
バックアップ (B または C) でミラーから削除したミラーリングされているルーチン・データベースが新規プライマリになる前に、以下を行います。
-
システム A で、ミラーからルーチン・データベースを削除します。
-
既存のデータベースをミラーに追加する手順を使用して、新規プライマリ (B または C) でミラーにデータベースを追加してから、バックアップ (A) および DR 非同期 (C がプライマリの場合は B) でデータベースをバックアップおよびリストアします ("InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章の "ミラーへのデータベースの追加" を参照)。これらのバックアップは、新たに追加されたミラーリングされたデータベースの最初のバックアップであるため、保持します。障害が発生した場合、アップグレード前に作成された古いバックアップを使用して、これらのデータベースをリストアすることはできません。
-
-
フェイルオーバーなしをクリアします。
メジャー・バージョン・アップグレード (計画的ダウンタイムあり)
InterSystems IRIS の新規メジャー・バージョンへのアップグレードまたはアプリケーション・アップグレード、あるいはその両方を実行する際、計画的メンテナンスの時間が十分にあり、ミラー・ダウンタイムを最小化する必要がない場合、プライマリでミラーリング・データベースの変更が必要かどうかにかかわらず、以下の簡易な手順を使用できます。
-
サイトで確立されている手法を使用して、ミラーへのすべてのユーザ・アクセスを禁止します。また、インスタンス起動時に通常開始されるアプリケーション・ジョブを無効にする必要があります。
-
バックアップ (B) の適切なシャットダウンを実行します。
-
プライマリ (A) の適切なシャットダウンを実行します。
-
システム A を InterSystems IRIS の新規バージョンでアップグレードします。システム A がプライマリになります。
-
システム A で、ミラーリングされたクラスとルーチンをアップグレードします。アプリケーション・アップグレードでミラーリング・データベースのさらなる変更が必要な場合、それらの変更を行います。
-
システム A で、ミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
以下の 2 つの操作のいずれかを実行します。
-
既存のバックアップをアップグレードします。
-
システム B を InterSystems IRIS の新規バージョンでアップグレードします。システム B がバックアップになります。
-
システム B で、ミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
-
新規バージョンの新規バックアップを追加します。
-
システム C に InterSystems IRIS の新規バージョンをインストールします。
-
システム C を DR 非同期メンバとしてミラーに追加します。
-
システム C を昇格させてフェイルオーバー・メンバにします。システム C がバックアップになります。
-
システム B を InterSystems IRIS の新規バージョンでアップグレードします。システム B が DR 非同期になります。
-
システム B で、ミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
-
-
システム C がプライマリになり、システム B が DR 非同期に降格された場合は、システム B をアップグレードし、システム B でミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
ミラーへのユーザ・アクセスをリストアします。