データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle E-Business SuiteのADオンライン・パッチング(adop)徹底解説|各フェーズと便利なコマンド

本記事では、Oracle® AD Online Patching(adop)ユーティリティの各フェーズ、パッチ適用サイクルの手順、そして実務で役立つadopコマンドやTipsについて詳しく解説します。

はじめに

adopユーティリティを使用すると、システムを大幅に停止させることなくOracle E-Business Suiteへパッチを適用できます。パッチサイクルは、以下の図に示すように複数のフェーズで構成されています。

Oracle E-Business SuiteのADオンライン・パッチング(adop)徹底解説|各フェーズと便利なコマンド
オンライン・パッチング・サイクル

画像出典:https://docs.oracle.com/cd/E26401_01/doc.122/e22954/T202991T531065.htm

基本的なadopフェーズとパッチサイクルの手順

Oracle R12.2でadopプロセスを使用してパッチを適用する前に、必要なテクノロジー・パッチをダウンロードし、内容を展開(unzip)しておきましょう。その後、次のいずれかの方法でパッチを準備します。

  • パッチの内容を$NE_BASE/EBSapps/patchに展開します。adopユーティリティは独自に環境を設定するため、実行前に環境をsourceする必要はありません。

または

  • パッチ・ファイルシステムの環境ファイルを実行(source)して環境を設定します。
      Source <EBS install base>/EBSapps.env run
    

オンライン・パッチングは複数のフェーズで構成されており、次の構文でadopコマンドラインに指定します。

adop phase=<phase_name>

準備フェーズ(Prepare)

次のコマンドで、新しいオンライン・パッチング・サイクルを開始する準備を行います。

$ adop phase=prepare

適用フェーズ(Apply)

次のコマンドを実行して、1つ以上のパッチをOracle E-Business Suiteシステムのパッチ・エディションに適用します。

$ source <EBS install base>/EBSapps.env patch
$ adop phase=apply patches=123456,789101 workers=8

注:適用フェーズでは、すべてのカスタマイズ変更をデプロイすることも可能です。

最終化フェーズ(Finalize)

このフェーズでは最終的なパッチ処理を実行します。アプリケーションがオンラインのまま実行できる点が特徴です。

$ adop phase=finalize

切り替えフェーズ(Cutover)

次のコマンドで、パッチ済みの環境へ移行します。

$ adop phase=cutover

クリーンアップフェーズ(Cleanup)

次のコマンドを実行して、パッチ処理で不要になった古いオブジェクトを削除します。

$ adop phase=cleanup

全フェーズを1つのコマンドで実行する

次の構文を使用すると、すべてのフェーズを1つのコマンドで実行できます。

adop phase=prepare,apply,finalize,cutover,cleanup patches=<patch_number1>,<patch_number2>

また、次のオプション・パラメータを使用することもできます。

  • actualize_all:パッチ・エディション内のすべてのオブジェクトを実際化(actualize)します。
  • cleanup_full:クリーンアップを実行し、古いエディションを削除します。
  • abandon:失敗したパッチを破棄します。

クリーンアップ・モード

目的に応じて、次のクリーンアップ・モードを使い分けましょう。

  • cleanup_mode=quick – 最小限のクリーンアップを実行します。廃止されたクロスエディション・トリガーやシードデータの削除が含まれます。次のパッチサイクルをできるだけ早く開始したい場合に使用します。
  • cleanup_mode=standard – quickモードと同じ処理に加え、廃止されたエディショニング対象のコードオブジェクト(covered objects)も削除します。
  • cleanup_mode=full – 最大限のクリーンアップを実行し、以前のエディションからすべての廃止コードとデータを削除します。

オプションのフェーズ

このセクションで紹介するフェーズは、必要に応じて使用してください。

中断フェーズ(Abort)

条件付きフェーズであるabortフェーズは、他のフェーズと同時に指定できません。

何らかの理由でprepareまたはapplyフェーズが失敗した場合、abortコマンドによる特別なフェーズを実行して、その時点でパッチング・サイクルを中止できます。それまでに行われた処理は破棄(ロールバック)されます。

abortコマンドはcutoverフェーズの手前まで利用可能です。cutover後はシステムが新しいエディションで稼働しているため、そのパッチング・サイクルに対してabortを実行することはできません。

中止を実行するには、次のコマンドを使用します。

$ adop phase=abort

abort実行後は、フルクリーンアップを実行する必要があります。次のコマンドを使用できます。

adop phase=cleanup cleanup_mode=full

abortとcleanupを同時に実行することも可能です。

$ adop phase=abort,cleanup cleanup_mode=full

パッチ・エディションへのパッチ適用を中止した後は、次のfs_cloneコマンドを実行して、パッチ・ファイルシステムを再作成する必要があります。

$ adop phase=fs_clone

fs_cloneフェーズ

fs_cloneフェーズは、パッチ・ファイルシステムをrunファイルシステムと同期させます。このフェーズは、特定のドキュメント化された手順の一部として明示されている場合にのみ実行してください。

次のprepareフェーズを実行する前に、必ずrunファイルシステムからコマンドを起動します。

$ source <EBS install base>/EBSapps.env RUN
$ adop phase=fs_clone

fs_clone操作が失敗した場合は、force=yesオプションで最初から(同じセッションIDで)再実行するか、force=noで失敗した箇所から再開することができます。

Actualize Allフェーズ

オンライン・パッチング・サイクルが完了するたびに、データベースには古いデータベース・エディションが蓄積されていきます。数が増えるほどシステムのパフォーマンスが低下します。古いデータベース・エディションの数が25を超えたら、adopのactualize_allフェーズを実行した後にフルクリーンアップを行い、古いエディションを削除することを検討しましょう。

この手順は通常のパッチサイクルよりも大幅に時間がかかるため、すぐに次のパッチサイクルを開始する必要がないタイミングでのみ実行してください。

開始前に、推奨されるデータベース・パッチが適用されていること、および最新のAD-TXKコードレベルがインストールされていることを確認してください。

続行するには、次のコマンドを順番に実行します。

$ adop phase=prepare
$ adop phase=actualize_all
$ adop phase=finalize finalize_mode=full
$ adop phase=cutover
$ adop phase=cleanup cleanup_mode=full

adopコマンドのヒント

ここでは、実務で役立つadopユーティリティのコマンドをいくつか紹介します。

adopとコンカレント・マネージャ

Oracleコンカレント・マネージャは、リクエストの流れを制御することで、アプリケーションに過大な負荷がかからないよう管理する役割を担っています。

adopのcutoverは、まずコンカレント・マネージャのシャットダウンを要求し、その後、進行中のリクエストの完了を待機します。

指定された制限時間内にコンカレント・マネージャがシャットダウンしない場合、残りのコンカレント・リクエストは強制終了され、cutoverが続行されます。

内部コンカレント・マネージャ(マスターマネージャ)をシャットダウンするまで、既存のコンカレント・プロセスの完了をどのくらい待機するかを指定するには、cutover cm_waitコマンドを使用します。次の例では、cm_wait時間を10分に設定しています。デフォルトでは、adopは進行中のコンカレント・リクエストが完了するまで無期限に待機します。

adop phase=cutover cm_wait=10

mtrestart=noコマンドを使用すると、アプリケーション層の再起動サービスを停止したまま有効化しません。

adop phase=cutover cm_wait=10 mtrestart=no

adop hotpatch(ホットパッチモード)

ホットパッチモードでは、アプリケーションサービスが稼働中のまま、runエディションに直接パッチを適用します。このモードでは、パッチプロセスを中止できない点に注意してください。

次の例は、ホットパッチモードでパッチを開始します。

$ adop phase=apply patches=<patch_list> hotpatch=yes

hotpatch使用後は、必ずphase=cleanupphase=fs_cloneの両方を実行して、runファイルシステムとパッチ・ファイルシステムを同期させてください。これにより、次のパッチサイクルに向けた準備がすべて整います。

パッチを再適用する必要がある場合は、options-forceapplyパラメータを使用します。

$ adop phase=apply patches=<patch list> hotpatch=yes options=forceapply

「Continue As If It Were Successful」エラーが発生した場合は、次のコマンドを実行してパッチを続行します。

$ adop phase=apply patches=<patch list> abandon=no restart=yes flags=autoskip

その他の便利なadopコマンド

以下に、役立つadopユーティリティの操作をまとめます。

ワーカー数を定義する:

$ adop phase=apply patches=<patch list> workers=5

パッチトップ(patchtop)を定義する:

$ adop phase=apply patches=<patch list> patchtop=<patch location base>

パッチをマージする:

$ adop phase=apply patches=<patch list> merge=yes

失敗したセッションからadopを再開するには、次のコマンドを実行してからパッチを再適用します。

$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone

言語パッチを適用する:

$ adop phase=apply patches=1234456_JA:u123456.drv

patchtopとドライバを指定して非対話型のadopを使用する:

$ adop phase=apply options=nocopyportion patchtop=$XLA_TOP/patch/115 patches=driver:xla123456.drv

失敗したワーカーをスキップするには、次の手順を実行します。

  1. adctrlを使用し、オプション#8(非表示)を選択して失敗したジョブをスキップします。
  2. restart=yesパラメータを使用してadopを再起動します。

失敗したジョブが多数ある場合は、flags=autoskipオプションを付けてパッチを再起動してください。

$ adop restart=no abandon=yes flags=autoskip

このコマンドはパッチを再起動し、発生した失敗を自動的にスキップします。パッチ適用の完了後にはログファイルを確認し、適切な失敗がスキップされていることを必ずチェックしてください。

まとめ

adopユーティリティが実現できるのは、複数のアプリケーション・エディションをデータベースに格納でき、さらにアプリケーション層にデュアルファイルシステムをプロビジョニングできるためです。常にどちらか一方のファイルシステムがrun(稼働中システムの一部)として、もう一方がpatch(パッチ適用中または次のパッチサイクル開始待ち)として指定されます。現在のrunファイルシステムは、Oracle E-Business Suite 12.2より前のリリースにおける単一のアプリケーション層ファイルシステムと同じように、ユーザーから見えます。

デュアルファイルシステムの存在は、システム構成を変更するパッチにも影響を与えます。ソフトウェアパッチをパッチ・ファイルシステムに適用するにはadopユーティリティが必要ですが、構成変更の実施には不要です。構成変更はrunファイルシステムまたはパッチ・ファイルシステムのどちらに対しても行うことができ、いずれの場合も自動的に同期が行われます。

コメントやご質問がある場合は、フィードバックタブをご利用ください。


  1. Microsoft AzureとOracle Cloud Infrastructureを接続してOracleアプリケーションをマルチクラウド環境で実行する方法

    Microsoft®とOracle®は協業により、お客様がOracle E-Business Suite®、JD Edwards® EnterpriseOne、PeopleSoft®などのOracleアプリケーションをクラウド上にデプロイできる環境を実現しました。 はじめに Azure™ ExpressRoute®とOracle FastConnectの直接相互接続を利用することで、アプリケーション層とデータベース層の間に高帯域幅・プライベート・低レイテンシの接続を確立できます。この接続により、Oracle Cloud Infrastructure(OCI)上のバックエンドデータベースに接続し

  2. Oracle 19cのDBCAコマンドでデータベースをクローンする方法【サイレントモード完全ガイド】

    本記事では、Oracle Database 19cの新機能であるDatabase Configuration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成することなく、リモートのプラガブル・データベース(PDB)をコンテナ・データベース(CDB)へクローンする手順をご紹介します。 DBCAによるクローンの最大の特長は、ソースからターゲットへの複製にかかる時間が最小限に抑えられる点です。 ソースDBの構成 CDB:LCONCDB PDB:LCON 以下は、ソース側の各コンテナ(CDBおよびPDB)に存在するDBFファイルの総数です。クローン作成後は、ター