このトピックは、前のバージョンの InterSystems IRIS®、InterSystems IRIS for Health™、または HealthShare® HealthConnect からアップグレードするお客様を対象としています。InterSystems Caché® からの移行に関心があるお客様は、"InterSystems IRIS に移行すべき理由Opens in a new tab" を参照してください。
インスタンスのアップグレード
ここでは、InterSystems IRIS、InterSystems IRIS for Health、または HealthShare HealthConnect の単一インスタンスをアップグレードする手順について説明します。この章の "アップグレードの前に" のセクションのタスクを実行してから、次に進んでください。ミラーまたは ECP 構成をアップグレードする場合は、この章の "ミラーのアップグレード" および "ECP 構成のアップグレード" のセクションの情報も確認してください。
実行する手順は、お使いのオペレーティング・システムによって異なります。
アップグレード・プロセスの一部としてマニフェストを使用する場合は、標準のインストール手順を実行する前に、"インストール・マニフェストの作成および使用" の手順を参照してください。
Caution:
インスタンスのアップグレードを開始する前に、インスタンスを正常にシャットダウンすることが重要です。正常にシャットダウンされたことを確認するには、シャットダウンの終了後に messages.log ファイルを調べます。ログに以下のようなエントリが含まれる場合、シャットダウンは正常に行われています。
...
05/03/19-14:24:13:234 (5204) 0 Journal restore not required at next startup
05/03/19-14:24:13:234 (5204) 0 Transaction rollback not required at next startup
...
これらのエントリが記述されていない場合、インスタンスは正常にシャットダウンされていません。アップグレードを続行する前に、インターシステムズのサポート窓口Opens in a new tabまでお問い合わせください。
Windows でのアップグレード手順
InterSystems IRIS の新規バージョンへのアップグレードに必要なすべての機能は、インストーラによって提供されます。代わりに、マニフェストを使用する場合に必要なサイレント・アップグレードを実行するには、このドキュメントの “Microsoft Windows への InterSystems IRIS のインストール” の章の "自動アップグレードまたは再インストールの実行" の情報を確認してください。
アップグレードを実行するには、以下の手順に従います。
-
インストーラ・ファイル (IRIS-win_x64.exe など) をダブルクリックします。
-
インストーラにより、ホスト上にある既存の InterSystems IRIS インスタンスがすべて一覧表示されます。アップグレードするインスタンスの名前を選択し、[OK] をクリックします。
-
InterSystems IRIS ライセンス・キーの入力を求められたら、[ライセンス] をクリックして新しい iris.key ファイルを参照します。インストーラによって install-dir/mgr ディレクトリで新しいキー・ファイルが検出された場合、ライセンス・キーの入力を求めるプロンプトは表示されずに次に進みます。
-
インストーラによってライセンス・キーが検証されたら、[アップグレード] をクリックします。
Important:
インストールの進行中にインストールを中断しないでください。エラー・メッセージが表示されてアップグレードが失敗した場合は、問題を修正して、アップグレード・インストールを再開します。
-
アップグレードが完了したら、[完了] をクリックします。
-
install-dir\mgr ディレクトリにある messages.log、iboot.log、および ensinstall.log を調べて、エラーがないことを確認します。致命的なエラーが見つかった場合、エラーを修正して、インストーラを再び実行します。
Important:
オペレーティング・システムがラージ・メモリ・ページを使用するように構成されている場合は、起動メッセージをチェックして、これらの設定に従って共有メモリが割り当てられていることを確認します。以下のようなメッセージが表示された場合は、サーバを再起動して、メモリ不足の状態に陥るのを防いでください。
Failed to allocate 592MB shared memory using large pages. Switching to small pages.
UNIX®、Linux、および macOS でのアップグレード手順
InterSystems IRIS の新規バージョンへのアップグレードに必要なすべての機能は、インストール・スクリプト irisinstall によって提供されます。代わりにサイレント・アップグレードを実行する場合は、このドキュメントの “InterSystems IRIS の UNIX®、Linux、および macOS へのインストール” の章にある "InterSystems IRIS の自動インストール" の情報を確認してください。
Note:
irisinstall を実行しているユーザのプロファイルに CDPATH 変数の値が設定されている場合、アップグレードは失敗します。
アップグレードを実行するには、以下の手順に従います。
-
インストール・キットが .tar ファイルの形式である場合は、まずファイルを解凍する必要があります (このドキュメントの “InterSystems IRIS の UNIX®、Linux、および macOS へのインストール” の章にある “インストール・キットの解凍” のセクションを参照してください)。
-
root 特権を持つユーザとして、インストール・ファイルの最上位にある irisinstall スクリプトを実行し、インストール手順を開始します。
# sudo sh /<pathname>/irisinstall
ここで、<pathname> はインストール・キットの場所で、通常はキットの抽出先の一時ディレクトリです。
-
スクリプトにより、ホスト上にある既存の InterSystems IRIS インスタンスがすべて一覧表示されます。
-
[インスタンス名の入力] プロンプトで、アップグレードする InterSystems IRIS インスタンスの名前を入力して、Enter キーを押します。
-
ライセンス・キー・ファイルの入力を求められたら、「keypath\iris.key」と入力します。ここで、keypath は新しい iris.key ファイルの場所です。インストール・スクリプトによって install-dir/mgr ディレクトリで新しいライセンス・キーが検出された場合、ライセンス・キーの入力を求めるプロンプトは表示されずに次に進みます。
-
アップグレード・オプションの概要が表示され、もう一度、アップグレードを確認するよう求められます。Enter キーを押して、アップグレードを続行します。
Important:
インストールの進行中にインストールを中断しないでください。エラー・メッセージが表示されてアップグレードが失敗した場合は、問題を修正して、アップグレード・インストールを再開します。
-
install-dir/mgr ディレクトリにある messages.log、iboot.log、および ensinstall.log を調べて、エラーがないことを確認します。致命的なエラーが見つかった場合、エラーを修正して、インストール・スクリプトを再び実行します。
アップグレードが完了すると、インスタンスが再起動され、インストール・マニフェストが実行されます。
Important:
オペレーティング・システムがヒュージ・メモリ・ページを使用するように構成されている場合は、起動メッセージをチェックして、これらの設定に従って共有メモリが割り当てられていることを確認します。以下のようなメッセージが表示された場合は、サーバを再起動して、メモリ不足の状態に陥るのを防いでください。
Failed to allocate 1468MB shared memory using Huge Pages. Startup will retry with standard pages.
ミラーのアップグレード
このセクションでは、InterSystems IRIS インスタンス、アプリケーション、またはその両方を InterSystems IRIS ミラーのメンバ上でアップグレードする手順を示します。
"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章に記載されているように、ミラーのすべてのフェイルオーバー・メンバと DR 非同期メンバが同じ InterSystems IRIS バージョンである必要がありますが、アップグレード中だけは異なるバージョンであってもかまいません。アップグレード対象のメンバがプライマリになったら、このアップグレードが完了するまで、他方のフェイルオーバー・メンバおよびすべての DR 非同期メンバを使用できません (特に、これらをプライマリにすることはできません)。
ミラーリングでは、レポート非同期メンバがフェイルオーバー・メンバと同じ InterSystems IRIS バージョンである必要はありませんが、アプリケーションの機能で同じバージョンが要求される場合があります。詳細は、"高可用性ガイド" の “ミラーリング” の章の "InterSystems IRIS インスタンスの互換性" を参照してください。
4 つのミラー・アップグレード・パスの中から選択できます。どの手順を実行する必要があるかは、以下の "ミラーのアップグレード手順の選択" のセクションの各要素を参照して決定してください。これら 4 つの手順は、以下の "ミラーのアップグレード手順" のセクションに記載されています。
ミラーのアップグレードに関する以下の 2 つのセクションも参照してください。
Important:
systemd をサポートする Linux システムでは、systemctl コマンドまたは /etc/init.d/ISCAgent スクリプトを使用して ISCAgent を管理できますが、どちらか一方の方法を選択して、その方法のみを使用する必要があります。ISCAgent を停止する際には、常に、それを開始した方法を使用する必要があります。詳細は、"InterSystems 高可用性ガイド" の “ミラーリング” の章の "Linux システムでの ISCAgent の開始" を参照してください。
こういった Linux システムで InterSystems IRIS をアップグレードすると、実行されている ISCAgent は、systemd を使用して自動的に再起動されます。ISCAgent の管理に /etc/init.d/ISCAgent スクリプトを使用している場合は、このエージェントが自動的に再起動されないように、エージェントを停止してからアップグレードを実行し、アップグレードの後に、このスクリプトを使用してエージェントを再起動します。
ミラーのアップグレード手順の選択
ミラーのアップグレードに適した手順を選択する際に考慮すべき主な要素は、以下の 2 つです。
メンテナンス・リリースにアップグレードする場合に、アプリケーション・アップグレードは行わないときは、2 番目の質問を考慮する必要はありません。常に、"メンテナンス・リリース・アップグレード" の簡単な手順を使用できます。この手順では、計画的フェイルオーバーの実行に要する時間のみ、ミラーは使用できない状態になります。
ただし、InterSystems IRIS のメジャー・バージョン間でアップグレードする場合、アプリケーション・アップグレードを実行する場合、またはその両方を行う場合は、アップグレードにミラーリング・データベースの変更が含まれる可能性があります。このような変更は、アプリケーション・アクセスが無効化されている間に、アップグレード手順の一部として、機能しているプライマリ・フェイルオーバー・メンバ上で行う必要があります。このため、アップグレードでは、ミラーリング・データベースの変更を行わない場合よりも長いダウンタイムが必要になります (その後、変更はバックアップ・メンバおよび非同期メンバ上でミラーによって複製されます)。
Important:
メジャー・アップグレードの後に、インスタンス上のすべてのアプリケーション・ネームスペース内のクラスをすべてリコンパイルすることをお勧めします。一部のルーチンも、リコンパイルが必要です。実行するアプリケーション・アップグレードで、アプリケーション・データの変更が必要になることがあります。いずれの状況においても、アップグレードによって、ミラーリングされたデータベースが変更されることがあります。
メジャー・リリースにアップグレードする場合、アプリケーション・アップグレードを実行する場合、またはその両方を行う場合は、以下のいずれかの条件に該当するかどうかを判断する必要があります。
-
クラスとルーチンは、ミラーリングされたデータベースに保存されます。これには、アプリケーション・データも格納されています。クラスは、プライマリ上でリコンパイルする必要があります (アプリケーションがアップグレードされていない場合でも)。ルーチンについては、プライマリでのリコンパイルをお勧めします。
-
アプリケーション・アップグレードに伴って、ミラーリングされたデータベース内のデータをアップグレードする必要がある場合。これらの変更は、プライマリ上で実行する必要があります。
メジャー・アップグレードまたはアプリケーション・アップグレード、あるいはその両方がこれらのいずれかの条件を満たす場合は、"メジャー・バージョン・アップグレード (ミラーリングされたデータベースの変更あり)" の手順を使用します。この手順では、計画的フェイルオーバーを実行し、ミラーリングされたデータベースに必要な変更を加える時間のみ、ミラーは使用できない状態になります。
アップグレードに、ここに挙げられているミラーリングされたデータベースの変更が含まれない場合は、"メジャー・バージョン・アップグレード (ミラーリングされたデータベースの変更なし)" の手順を検討してください。この手順では、計画的フェイルオーバーの実行に要する時間のみ、ミラーは使用できない状態になります。
計画的メンテナンスの時間が十分にあり、ミラーのダウンタイムを最小限に抑えるかどうかが重大な問題ではない場合は、代わりに "メジャー・バージョン・アップグレード (計画的ダウンタイムあり)" の簡単な手順を使用することができます。
メジャー・アップグレードの場合、ミラーの InterSystems IRIS インスタンス、アプリケーション・コード、またはその両方のアップグレードに、各手順の一般的な順序が適用されます。アップグレードする対象に合わせて、個々のステップを調整します。
アップグレード時のミラー・メンバの追加
ミラーにメンバを追加する計画がある場合、このセクションで説明するいずれかのアップグレードの実行計画を立てるまでメンバの追加を延期できます。新規バージョンのメンバをアップグレード時に追加することで、後からアップグレードを行う必要がなくなります。直ちに処理を続行し、説明どおりにアップグレードを完了させるのであれば、アップグレード中いつでも、新規バージョンのメンバをミラーに追加することができます。ただし、制約事項が 1 つあり、新規バージョンのメンバがプライマリになったら、そのメンバは、他のすべてのメンバがアップグレードされるまでプライマリであり続ける必要があります。
新規ハードウェアにミラーを移行する場合は、アップグレード中に新規メンバを追加すると非常に効果的です。いずれかのフェイルオーバー・メンバをアップグレードしてからフェイルオーバーするのではなく、ターゲット・システムに新規バージョンの新規インスタンスをインストールし、そのインスタンスを DR 非同期メンバとしてミラーに追加し、バックアップに昇格させてからフェイルオーバーすることで、ミラー・プライマリを新規システムに移行することができます。この手法を繰り返して、残りのフェイルオーバー・メンバを移行することができます。この手法を説明するため、このセクションの手順には、既存のバックアップをアップグレードする代わりに、新規バージョンの新規バックアップを追加するステップが含まれます。
ミラーのアップグレードの用語
このセクションの手順では、以下の用語が使用されています。
クラスおよびルーチンのアップグレード
インスタンスのすべてのアプリケーション・ネームスペース内のクラスをすべてリコンパイルします。これは、InterSystems IRIS メジャー・バージョン・アップグレード ("アップグレード後のタスク" を参照) またはアプリケーション・アップグレード、あるいはその両方の後に行う必要があります。状況によっては、以下の 1 つ以上の操作が必要になることがあります。
-
前述のように、クラスが存在するミラーリングされたデータベースにアプリケーション・データも含まれる場合、これらのクラスは、機能しているプライマリ・フェイルオーバー・メンバ上でローカルにリコンパイルする必要があります (アプリケーション・アップグレードでこれらが変更されるかどうかは関係ありません)。ルーチンが存在する場合は、これらをリコンパイルすることをお勧めします。
-
アプリケーション・データとは別個のミラーリングされないルーチン・データベースに格納されているクラスおよびルーチンは、現在のプライマリかどうかに関係なく、ミラー・メンバ上でリコンパイルできます。
-
別個のミラーリングされないルーチン・データベースに格納されているクラスおよびルーチンは、“プリコンパイル” することもできます。それには、既にターゲット InterSystems IRIS リリースにアップグレードされているシステム上でデータベースのコピーをリコンパイルしてから、アップグレード後に各ミラー・メンバに配布します。
システム A
最初はプライマリ・フェイルオーバー・メンバであるミラー・メンバ。
システム B
最初はバックアップ・フェイルオーバー・メンバであるミラー・メンバ。
システム C
フェイルオーバー・メンバに昇格された、新規 InterSystems IRIS バージョンに新たに追加された DR 非同期メンバ。
フェイルオーバーなしの設定
^MIRROR ルーチンを使用してフェイルオーバーなしの状態を設定し、フェイルオーバーが発生しないようにします。手順については、"InterSystems IRIS 高可用性ガイド" の “ミラーリング” の章の "フェイルオーバー・メンバのメンテナンス時の不要なフェイルオーバーの回避" を参照してください。
適切なシャットダウンの実行
iris stop コマンドを使用して、インスタンスを正常にシャットダウンします ("InterSystems IRIS システム管理ガイド" の “InterSystems IRIS 複数インスタンスの使用法” の章の "InterSystems IRIS インスタンスの制御" を参照してください)。
ミラー・モニタの表示
インスタンスの管理ポータルの [ミラー・モニタ] ページで、ミラーとそのメンバの状態を確認します。詳細は、"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 の新規メジャー・バージョンへのアップグレードまたはアプリケーション・アップグレード、あるいはその両方を実行する際、ミラーリング・データベースの変更が不要であると判断した場合 ("ミラーのアップグレード手順の選択" を参照)、以下の手順を使用できます。
別個のミラーリングされないルーチン・データベースを常に維持する静的アプリケーションの場合は、これが最も簡易な手順です。ただし、別個のルーチン・データベースが通常はミラーリングされる場合でも、アップグレード期間中にこれらのデータベースをミラーから削除することで、この手順を使用できます。
Important:
ルーチン・データベースが通常はミラーリングされる場合は、ルーチン・データベースをミラーから削除する前に、アプリケーション・データが含まれていないことを確認してください。
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 でミラーリングされないクラスおよびルーチンをアップグレードします (ある場合)。
-
ミラーへのユーザ・アクセスをリストアします。
ECP 構成のアップグレード
一般に、ECP アプリケーション・サーバは、接続先のデータベース・サーバをアップグレードする前にアップグレードする必要があります。アプリケーション・サーバは、アップグレード後にリコンパイルするローカルのルーチン・データベース、またはデータベース・サーバ上の "プリコンパイル済み" のルーチン・データベース (ターゲット InterSystems IRIS バージョンが稼働中の別個のシステムで以前にリコンパイル済み) のいずれかにアクセスできる必要があります。
以下のいずれかが当てはまる場合、アップグレード済みのアプリケーション・サーバと未アップグレードのアプリケーション・サーバの両方、およびデータベース・サーバにユーザが接続した状態でローリング・アップグレードを使用すると、ダウンタイムを最小限に抑えることができます。
新しいアプリケーション・コードが古いデータで動作するものの、古いコードでは認識できない新しいデータ構造が生成される可能性がある場合は、以下の手順に従います。
-
アプリケーション・サーバをローリング・アップグレードします。ただし、アップグレード後にユーザがアプリケーション・サーバに接続できないようにします (アプリケーション・サーバの処理能力が段階的に低下します)。
-
必要なだけのアプリケーション・サーバがアップグレードされたら、アップグレード済みアプリケーション・サーバへのユーザ・アクセスをリストアし、残りの (アップグレードされていない) アプリケーション・サーバとデータ・サーバ (必要な場合) へのユーザ接続をすべて終了して、有効化するまでユーザがこれらのシステムにアクセスできないようにします。
-
残りのアプリケーション・サーバをアップグレードし、アップグレード後に各アプリケーション・サーバへのユーザ・アクセスをリストアします。
-
必要に応じてデータ・サーバをアップグレードし、ユーザ・アクセスをリストアします (データ・サーバをアップグレードすると、アプリケーション・アクティビティが一時停止します。一時停止する期間は、アップグレードに伴うダウンタイムの長さによって異なります)。
ECP 構成のアップグレード方法に関する質問や懸念事項については、インターシステムズ WRC (インターシステムズのカスタマ・サポート窓口)Opens in a new tab までお問い合わせください。
アップグレード後のタスク
必要なアップグレード後のタスクは、InterSystems IRIS の新規メジャー・バージョンへのアップグレードか、インストール済みバージョンのメンテナンス・リリースへのアップグレードかによって異なります。また、以下の点についても注意してください。
-
アップグレード中にインスタンスを 8 ビットから Unicode に変更した場合、データベースは自動的には変換されません。ユーザが自分自身でこの変換作業を行う必要があります。詳細は、"サーバ側プログラミングの入門ガイド" の “ネームスペースとデータベース” の章の "データベースの移植性" のセクションを参照してください。
-
OpenAPI 2.0 仕様Opens in a new tabファイルを再インポートする必要はありません。
-
Web サービス定義 (WSDL) ファイルを再インポートする必要はありません。
-
クエリ・キャッシュは常にアップグレードの際に削除されます。 これらは、必要に応じてリコンパイルされ、キャッシュされます。
メンテナンス・リリースのアップグレード後のタスク
アップグレードの完了後、システムでプロダクションを実行している場合は、"プロダクションの管理" の “プロダクションの開始と停止” の章にある "プロダクションの開始" のセクションの手順に従ってプロダクションを再開します。
通常、メンテナンス・リリース・アップグレードでは、外部ファイルやクライアントを変更したり、クラスやルーチンをリコンパイルしたりする必要はありません。ただし、クライアント上のスタジオ・バージョンは、接続先の InterSystems IRIS サーバ・バージョンと同じかそれ以降である必要があります。
リコンパイルする場合は、"メジャー・バージョンのインストール後のタスク" のセクションの情報を参照してください。
メジャー・バージョンのインストール後のタスク
InterSystems IRIS を新規メジャー・バージョンにアップグレードした後は、"リリース・ノート" の "アップグレードの一般情報" に示されているガイダンスに従うことが重要です。以下のタスクも実行する必要があります (この章の前の手順の一部として実行していない場合)。
-
クラスおよびルーチンのリコンパイル — 各ネームスペースに含まれるすべてのクラスとすべてのルーチンをリコンパイルすることをお勧めします。手順については、"ネームスペースのコンパイル方法" を参照してください。アップグレードするインスタンスに固有の依存関係およびその他のニーズを考慮して、そのための独自のツールや手順を使用できます。
-
プロキシ・クラスの再生成 — アップグレードしたインスタンスで生成されていたプロキシ・クラスはすべて、"InterSystems IRIS 言語バインディング" セットの該当するガイドの手順に従って再生成する必要があります。
この項目は Web サービスおよび Web クライアントには適用されません。Web サービス定義 (WSDL) ファイルを再インポートする必要はありません。
-
ブラウザ・キャッシュのクリア — ブラウザ・キャッシュに、インストール済みバージョンの InterSystems IRIS との互換性がなくなった JavaScript ファイルが含まれていると、エラーが発生することがあります。アップグレードの完了後、直ちにブラウザ・キャッシュをクリアしてください。
お使いの環境および使用するコンポーネントによっては、以下のタスクが必要になることがあります。
-
クエリ・プランの確認。新しいメジャー・バージョンにアップグレードするときに、既存のクエリ・プランは自動的に凍結されます。これにより、ソフトウェアのメジャー・アップグレードによって既存のクエリのパフォーマンスが低下することがなくなります。パフォーマンスが重要なクエリの場合、パフォーマンスの改善が達成できたかどうかをテストする必要があります。
-
プロダクションの再開 — システムでプロダクションを実行している場合は、"プロダクションの管理" の “プロダクションの開始と停止” の章にある "プロダクションの開始" のセクションの手順に従ってください。
-
スタジオ・クライアントのアップグレード — クライアント上のスタジオ・バージョンは、接続先の InterSystems IRIS サーバ・バージョンと同じかそれ以降である必要があります。
-
Web ゲートウェイのアップグレード — Web ゲートウェイがアップグレードしている InterSystems IRIS サーバとは別個のマシン上にある場合、その別個のマシン上の Web ゲートウェイもアップグレードする必要があります。これを行うには、この章の "Windows でのアップグレード手順" に従うか、このドキュメントの “Microsoft Windows への InterSystems IRIS のインストール” の章にある "自動インストールの実行" のセクションの説明に従って、ADDLOCAL プロパティを使用してサイレント・インストールを実行します。
-
Web サーバ・ファイルの更新 — アップグレード後、サイトで確立されている手法を使用して、これらを導入する必要があります。
ネームスペースのコンパイル方法
アップグレード後、各ネームスペース内のコードをコンパイルして、新規バージョンの InterSystems IRIS で実行されるようにする必要があります。コンパイラでエラーが検出された場合、コンパイラですべての依存関係を解決するために、1 回または複数回のリコンパイルが必要になることがあります。
追加の環境でアップグレードを実行する必要がある場合は、コードが正常にコンパイルされた後、更新済みのクラスまたはルーチンをエクスポートできます。今後アップグレードを行う際にこれらのクラスまたはルーチンをインポートすると、ダウンタイムを最小限に抑えて、迅速にコードを更新することができます。
クラスのコンパイル
ターミナルからすべてのネームスペース内のクラスをコンパイルするには :
do $system.OBJ.CompileAllNamespaces("u")
ターミナルから 1 つのネームスペース内のクラスをコンパイルするには :
set $namespace = "<namespace>"
do $system.OBJ.CompileAll("u")
Note:
ネームスペースに、マップされたクラスが含まれる場合は、CompileAllNamespaces() または CompileAll() の呼び出しに /mapped 修飾子を含めます。
do $system.OBJ.CompileAllNamespaces("u /mapped")
do $system.OBJ.CompileAll("u /mapped")
クラス・コンパイラ・バージョン・ユーティリティ
ネームスペース内のクラスがどのクラス・コンパイラ・バージョンを使用してコンパイルされているかをお客様が判断するのを支援するため、インターシステムズでは 2 つの支援を提供しています。
-
メソッド – $System.OBJ.CompileInfoClass(<classname>)
このメソッドは、この <classname> のコンパイルに使用されたクラス・コンパイラのバージョンとこのクラスがコンパイルされた日時を返します。
-
クエリ – $System.OBJ.CompileInfo(<sortby>)
このクエリは、すべてのクラス、各クラスをコンパイルするのに使用されたコンパイラのバージョン、各クラスがコンパイルされた日時が含まれる、現在のネームスペースのレポートを生成します。最初の引数 <sortby> は、以下の値を取ることができます。
ルーチンのコンパイル
ターミナルからすべてのネームスペース内のルーチンをコンパイルするには :
do ##Class(%Routine).CompileAllNamespaces()
ターミナルから 1 つのネームスペース内のルーチンをコンパイルするには :
set $namespace = "<namespace>"
do ##Class(%Routine).CompileAll()