Oracle Universal InstallerおよびOpatchユーザーズ・ガイド 10gリリース2(10.2) for Microsoft Windows and UNIX Systems B19264-06 |
|
![]() 戻る |
![]() 次へ |
OPatchユーティリティは、Oracle製品への個別パッチの適用およびロールバックを可能にするツールです。この章では、OPatchを使用したパッチの適用に関する情報を示します。この章の内容は次のとおりです。
パッチは、既存のインストールにコピーされるファイルの小さな集合です。パッチはOracle製品の特定のバージョンに関連付けられています。インストール済の対応バージョンの製品にパッチを適用すると、製品のバージョンがアップグレードされます。個別パッチは、特定のバグに対して顧客が使用可能なバグ修正です。個別パッチを適用するには、特定のベース・リリースまたはパッチ・セットがインストールされている必要があります。これらは一般に、特定の顧客の特定のバグに対処します。これらのパッチはバージョン管理されず、一般に将来のパッチ・セットおよび次の製品リリースで使用可能になります。
個別パッチは一般にZIP形式で提供されます。パッチを適用する前に解凍する必要があります。次の図に、個別パッチの構造を示します。
個別パッチの内容は次のとおりです。
パッチ・メタデータ: パッチID、修正されたバグ、影響を受けるファイルおよび実行するアクションに関する情報が含まれます。
ペイロード: OPatchで修正されるファイルが含まれます。
カスタム・スクリプト: パッチの適用前と適用後に実行する必要のある前処理および後処理スクリプト。
OPatch 10.2では、パッチのバージョン管理がサポートされます。(同じパッチIDを持つ)同じパッチに2つ以上の異なるバージョンを使用できます。このバージョン情報は、OPatchメタデータに格納されます。メタデータには、パッチのバージョン情報を格納するタグdate_of_patch
があります。タグのサンプルを次に示します。
<date_of_patch year="YYYY" month="mmm" day="Day" time="Time" zone="TimeZone"/>: Date on which the patch was created
このタグは、Oracleによりパッチが作成された時刻を記録します。後で同じパッチが作成された場合は、このタグにその時刻が記録されます。
注意: このバージョン情報は、Oracleによるパッチの作成時刻であり、ホストにパッチが適用された時刻ではありません。 |
たとえば、IDが300200で、パッチ・メタデータのdate_of_patch
タグが次のようなパッチについて考えます。
<date_of_patch year="2008" month="Dec" day="23" time="04:57:13 hrs" zone="US/Eastern"/>
OPatchでは、このバージョンのパッチが2008年12月23日の04:57:13に作成されたとみなします。個別パッチをOracleホームに適用した場合、OPatchは情報を$ORACLE_HOME/.patch_storage
ディレクトリに格納します。このディレクトリ内には、Oracleホームに適用されたパッチごとに別々のディレクトリが作成されます。システムでは一度に1バージョンのパッチのみを適用できます。
opatch lsinventory -detail
コマンドを実行し、出力でパッチの場所の記憶領域情報を探すことで、パッチ情報ディレクトリの場所を特定できます。次に例を示します。
Patch Location in Storage area: /home1/HOMEtoiir571/.patch_storage/300200_Dec_23_2008_04_57_13
次の場所に、解凍したバージョンのパッチもあります。
$ORACLE_HOME/.patch_storage/<patch_id_timestamp>/original_patch
オラクル社では、バグまたは一連のバグを修正するために個別パッチを頻繁にリリースします。個別パッチは、My Oracle Support(以前のMetalink)の次の場所でパッチIDを指定して入手できます。
http://www.oracle.com/support/metalink/index.html
OPatchはOracleが提供するユーティリティであり、Oracleのソフトウェアに個別パッチを適用するプロセスを支援します。OPatchは、Oracle Universal Installerのインストールを必要とするJavaベースのユーティリティです。プラットフォームに依存しないこのユーティリティは、サポートされるすべてのオペレーティング・システムで機能します。
OPatchでは次の処理がサポートされます。
個別パッチの適用。
個別パッチの適用のロールバック。
前の個別パッチが適用された後で個別パッチを適用する場合の競合の検出。競合を解決するための最適なオプションも提示されます。
インストールされている製品および個別パッチのレポート。
OPatchユーティリティには次のことが必要です。
Oracleホーム環境変数(ORACLE_HOME
)が有効なOracleホーム・ディレクトリを示し、Oracleホーム・ディレクトリのインストール時に使用された値と一致していること。
Java SDK 1.4以上、WindowsのJavaコマンド、およびUNIXのar、cp、fuserおよびmakeコマンドを使用可能であること。
Oracle Real Application Clusters環境に対してライブラリ・パスが正しく設定されていること。OPatchは、システムがReal Application Clustersであるかどうかの検出にAPIを使用します。ライブラリ・パスが次のように正しく設定されていることを確認してください。
For Solaris LD_LIBRARY_PATH = $ORACLE_HOME/lib32:$ORACLE_HOME/lib For HP-UX - SHLIB_PATH=$ORACLE_HOME/lib32:/usr/lib
関連項目: OPatchユーティリティの最新情報の確認、更新のチェック、および最新バージョンの入手については、次のURLのMy Oracle Support(以前のMetaLink)を参照してください。http://www.oracle.com/support/metalink/index.html |
OPatch 10.2ユーティリティには次の特長があります。
スケーラビリティ: OPatchは、スケーラブルに多数のパッチをサポートします。
信頼性: OPatchは信頼性が高く、Oracleホームおよびインベントリを保護します。パッチの適用に失敗しても、Oracleホームを安定した状態に戻すことができます。パッチの競合も簡単に検出できます。
移植性: OPatchは、Oracleがソフトウェアをリリースするすべてのオペレーティング・システムと互換性があります。
堅牢性: OPatchは堅牢です。パッチの適用と削除が非常に簡単です。
容易なメンテナンス: OPatchはメンテナンスが簡単であり、拡張も可能です。
サイレント操作のサポート: OPatchでは、サイレント操作がサポートされます。このモードでは、ユーザーと対話せずにソフトウェアを実行できます。
Real Application Clustersのサポート: OPatchはReal Application Clustersをサポートし、その設定でも正常に動作します。Grid Controlに簡単に拡張できます。
容易なデバッグ: OPatchには様々なレベルのロギングおよびトレース・メカニズムがあります。ソフトウェアの問題を簡単に診断できるようにするデバッグ・オプションもあります。
OPatchを起動する前に、次の前提条件チェックを実行します。
OPatchは、Oracleホームが存在するかどうかを確認します。環境変数ORACLE_HOME
が、パッチを適用しようとしている製品のOracleホームに設定されていることを確認する必要があります。環境変数の設定の詳細は、それぞれのベンダーのドキュメントを確認してください。
OPatchが正しく動作するにはJDK 1.4以上が必要です。JREはJDKの一部として提供されます。
OPatch 10.2は、jar、warおよびear操作についてJDKに付属のjarユーティリティを使用します。OPatchは、指定されたOracleホーム内でJDKを検索します。OracleホームにJDKがない場合、ユーザーはOPatchで-jdk
オプションを使用して別の場所を指定する必要があります。jar/war/ear操作があり、Java SDKの場所を特定できない場合、OPatchはエラーを表示します。
インストールされているJDKのバージョンを探すには、次のコマンドを実行します。
JDK/bin/java -version
注意: 適用しているパッチにjarアクションがない場合、JDKは不要であり、OPatchはJREのみで正常に動作します。 |
OPatchは、パッチのインストール用スクリプトを処理すると同時に、ロールバック・スクリプトを生成し、パッチの適用時に編集または削除されたすべてのファイルのコピーを保存します。OPatchは、インベントリ情報もバックアップします。このため、パッチおよびバックアップ情報を十分に収容できるシステム領域を確保することをお薦めします。
OPatch 10.2が正しく動作するにはOracle Universal Installer 10.2以上が必要です。Oracle Universal Installerのバージョンが、OPatchで必要とされるより前のバージョン場合、OPatchはエラーになります。
OPatchは、特定のパッチがオペレーティング・システムに適用可能かどうかを検出します。適用可能でない場合は、適切なエラー・メッセージを生成します。
OPatchでは、ソフトウェアの様々な操作に使用されるプロパティのセットがサポートされています。これらのプロパティを使用して、OPatchの内部動作を制御できます。デフォルトでは、OPatchは標準のJavaプロパティ形式を指定してプロパティを指定します。デフォルト・プロパティおよびその値の完全なリストを次に示します。
fuser=/sbin:/usr/sbin ar=/usr/ccs/bin/ make=/usr/bin
OPatchのプロパティは次の方法で指定できます。
デフォルトのOPatchプロパティを使用します。
ユーザー定義プロパティ・ファイルの場所を指定します。
コマンドラインを使用します。構文は次のとおりです。
PROPERTY_NAME=VALUE
例: fuser=/sbin:/usr/sbin
Real Application Clustersの場合は、上の項でリストしたチェックに加えて、次の前提条件チェックを実行してください。
クラスタ・マシンに、Oracleクラスタウェア/Real Application Clustersをインストールしているユーザーのユーザー等価が設定されていることを確認する必要があります。UNIXでは、クラスタ・マシンにrshまたはsh、あるいはその両方が設定されている必要があります。Windowsでは、同じ<domain>\<user>
がすべてのクラスタ・マシンに対する管理権限を持つ必要があり、マシンが<domain>
のメンバーである必要があります。
ユーザー等価が正しく設定されている場合は、次のコマンドが正常に動作します。
$ rsh <nodename> date
ユーザー等価の設定の詳細は、「すべてのクラスタ・ノードでのSSHの構成」を参照してください。
opatch lsinventory -detail
コマンドを起動でき、出力されるノード情報を参照できることを確認してください。コマンドの出力のサンプル・リスティングを次に示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/racqa/102_twork/toii/toiir/toiir571/HOMEtoiir571 Central Inventory : /home/racqa/102_twork/toii/toiir/toiir571/inventory from : /home/racqa/102_ twork/toii/toiir/toiir571/HOMEtoiir571/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/racqa/102_twork/toii/toiir/toiir571/HOMEtoiir571/oui Log file location : /home/racqa/102_ twork/toii/toiir/toiir571/HOMEtoiir571/cfgtoollogs/opatch/opatch-2008_May_30_ 01-04-52-PDT_Mon.log Lsinventory Output file location : /home1/racqa/102_ twork/toii/toiir/toiir571/HOMEtoiir571/cfgtoollogs/opatch/lsinv/lsinventory-2008_ May_30_01-04-52-PDT_Mon.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 10g 10.2.0.4.6 There are 1 products installed in this Oracle Home. Installed Products (151): Advanced Queueing (AQ) API 10.2.0.4.6 Advanced Replication 10.2.0.4.6 Agent Required Support Files 10.2.0.4.6 Assistant Common Files 10.2.0.4.6 Authentication and Encryption 10.2.0.4.6 Bali Share 1.1.18.0.0 Character Set Migration Utility 10.2.0.4.6 CSS Single-instance Common Files 10.2.0.4.6 Data Management Services Common Files 10.2.0.4.6 Database Configuration Assistant 10.2.0.4.6 Database SQL Scripts 10.2.0.4.6 Database Upgrade Assistant 10.2.0.4.6 Database Verify Utility 10.2.0.4.6 Database Workspace Manager 10.2.0.4.6 DBJAVA Required Support Files 10.2.0.4.6 Documentation Required Support Files 10.2.0.4.6 Enterprise Edition Options 10.2.0.4.6 Enterprise Manager Agent 10.2.0.4.6 Enterprise Manager Common Files 10.2.0.4.6 Enterprise Manager Minimal Integration 10.2.0.4.6 Enterprise Manager plugin Common Files 10.2.0.4.6 Enterprise Manager Repository 10.2.0.4.6 Export/Import 10.2.0.4.6 Extended Windowing Toolkit 3.3.18.0.0 Generic Connectivity Common Files 10.2.0.4.6 Generic Connectivity Using ODBC 10.2.0.4.6 Installation Common Files 10.2.0.4.6 Installer SDK Component 10.2.0.1.0 iSQL*Plus 10.2.0.4.6 Java Naming and Directory Interface Libraries 10.2.0.4.6 Java Runtime Environment 1.4.2.0.0 JDBC Common Files 10.2.0.4.6 JDBC/OCI Common Files 10.2.0.4.6 JDBC/OCI Common Files for Instant Client 10.2.0.4.6 LDAP Required Support Files 10.2.0.4.6 New Database ID 10.2.0.4.6 Object Type Translator 10.2.0.4.6 Oracle Advanced Security 10.2.0.4.6 Oracle C++ Call Interface 10.2.0.4.6 Oracle C++ Call Interface for Instant Client 10.2.0.4.6 Oracle Call Interface (OCI) 10.2.0.4.6 Oracle Client Required Support Files 10.2.0.4.6 Oracle Code Editor 1.2.1.0.0I Oracle Containers for Java 10.2.0.4.6 Oracle Core Required Support Files 10.2.0.4.6 Oracle Data Mining 10.2.0.4.6 Oracle Database 10g 10.2.0.4.6 Oracle Database 10g 10.2.0.4.6 Oracle Database User Interface 2.2.13.0.0 Oracle Database Utilities 10.2.0.4.6 Oracle Development Kit 10.2.0.4.6 Oracle Display Fonts 9.0.2.0.0 Oracle Enterprise Manager 10g Database Control 10.2.0.4.6 Oracle Enterprise Manager Console DB 10.2.0.4.6 Oracle Extended Windowing Toolkit 3.4.28.0.0 Oracle Globalization Support 10.2.0.4.6 Oracle Help For Java 4.2.5.0.0a Oracle Help for the Web 1.1.7.0.0a Oracle Ice Browser 5.2.3.3.0 Oracle interMedia 10.2.0.4.6 Oracle interMedia Annotator 10.2.0.4.6 Oracle interMedia Audio 10.2.0.4.6 Oracle interMedia Client Compatibility Files 10.2.0.4.6 Oracle interMedia Client Demos 10.2.0.4.6 Oracle interMedia Client Option 10.2.0.4.6 Oracle interMedia Common Files 10.2.0.4.6 Oracle interMedia Image 10.2.0.4.6 Oracle interMedia Java Advanced Imaging 10.2.0.4.6 Oracle interMedia Java Client 10.2.0.4.6 Oracle interMedia Locator 10.2.0.4.6 Oracle interMedia Video 10.2.0.4.6 Oracle interMedia Web Client 10.2.0.4.6 Oracle Internet Directory Client 10.2.0.4.6 Oracle Internet Directory Client Common Files 10.2.0.4.6 Oracle Internet Directory Tools 10.2.0.4.6 Oracle Java Tools 10.2.0.4.6 Oracle JDBC Thin Driver for JDK 1.2 10.2.0.4.6 Oracle JDBC Thin Driver for JDK 1.4 10.2.0.4.6 Oracle JDBC Thin Driver for JDK 1.4 for Instant Client 10.2.0.4.6 Oracle JDBC/OCI Driver for JDK 1.4 10.2.0.4.6 Oracle JFC Extended Windowing Toolkit 4.2.18.0.0 Oracle JVM 10.2.0.4.6 Oracle Locale Builder 10.2.0.4.6 Oracle Message Gateway Common Files 10.2.0.4.6 Oracle Net 10.2.0.4.6 Oracle Net Configuration Assistant 10.2.0.4.6 Oracle Net Listener 10.2.0.4.6 Oracle Net Manager 10.2.0.4.6 Oracle Net Required Support Files 10.2.0.4.6 Oracle Net Services 10.2.0.4.6 Oracle Notification Service 9.0.4.0.0 Oracle OLAP 10.2.0.4.6 Oracle OLAP API 10.2.0.4.6 Oracle OLAP Catalog 10.2.0.4.6 Oracle One-Off Patch Installer 10.2.0.1.0 Oracle Partitioning 10.2.0.4.6 Oracle Programmer 10.2.0.4.6 Oracle RAC Required Support Files 10.2.0.4.6 Oracle RAC Required Support Files-HAS 10.2.0.4.6 Oracle Real Application Clusters 10.2.0.4.6 Oracle Spatial 10.2.0.4.6 Oracle Starter Database 10.2.0.4.6 Oracle Text 10.2.0.4.6 Oracle UIX 2.1.21.0.0a Oracle Ultra Search Common Files 10.2.0.4.6 Oracle Ultra Search Middle-Tier 10.2.0.4.6 Oracle Ultra Search Server 10.2.0.4.6 Oracle Universal Installer 10.2.0.1.0 Oracle Wallet Manager 10.2.0.4.6 Oracle XML Developer's Kit 10.2.0.4.6 Oracle XML Runtime Components 10.2.0.4.6 Oracle XML SQL Utility 10.2.0.4.6 Oracle10g Real Application Clusters Common Files 10.2.0.4.6 Parser Generator Required Support Files 10.2.0.4.6 Perl Interpreter 5.6.1.0.2d PL/SQL 10.2.0.4.6 PL/SQL Embedded Gateway 10.2.0.4.6 PL/SQL Required Support Files 10.2.0.4.6 Platform Required Support Files 10.2.0.4.6 Precompiler Common Files 10.2.0.4.6 Precompiler Required Support Files 10.2.0.4.6 Pro*C/C++ 10.2.0.4.6 RDBMS Required Support Files 10.2.0.4.6 Recovery Manager 10.2.0.4.6 regexp 2.1.9.0.0 Required Support Files 10.2.0.4.6 Sample Schema 10.2.0.4.6 Secure Socket Layer 10.2.0.4.6 Secure Socket Layer 10.2.0.4.6 SQL*Loader 10.2.0.4.6 SQL*Plus 10.2.0.4.6 SQL*Plus Required Support Files 10.2.0.4.6 SQLJ Runtime 10.2.0.4.6 SSL Required Support Files 10.2.0.4.6 SSL Required Support Files for InstantClient 10.2.0.4.6 Sun JDK 1.4.2.0.0 Sun JDK extensions 9.0.4.0.0 Utilities Common Files 10.2.0.4.6 Visigenics ORB 3.4.0.0.0 XDK Required Support Files 10.2.0.4.6 XML 10.2.0.4.6 XML Class Generator for C++ 10.2.0.4.6 XML Class Generator for Java 10.2.0.4.6 XML Parser for C 10.2.0.4.6 XML Parser for C++ 10.2.0.4.6 XML Parser for Java 10.2.0.4.6 XML Parser for Oracle JVM 10.2.0.4.6 XML Parser for PL/SQL 10.2.0.4.6 XML Transviewer Beans 10.2.0.4.6 XML Transx 10.2.0.4.6 XSQL Servlet 10.2.0.4.6 There are 151 products installed in this Oracle Home. Intermin patches (1) : Patch 3811942 : applied on Mon May 30 00:59:33 PDT 2008 Created on 31 Aug 2007, 12:06:28 hrs US/Pacific Bugs fixed: 3811942 Files Touched: /hosp.o --> ORACLE_HOME/lib/libagent10.a /pesblt.o --> ORACLE_HOME/lib/libpls10.a /kgl.o --> ORACLE_HOME/lib/libgeneric10.a /qcpi6.o --> ORACLE_HOME/lib/libgeneric10.a ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/iextjob ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/iextjobo ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/client_sharedlib /hosp.o --> ORACLE_HOME/lib/libserver10.a /prse.o --> ORACLE_HOME/lib/libserver10.a /prsa.o --> ORACLE_HOME/lib/libserver10.a /prsf.o --> ORACLE_HOME/lib/libserver10.a /prssz.o --> ORACLE_HOME/lib/libserver10.a /kprc.o --> ORACLE_HOME/lib/libserver10.a /qmhdr.o --> ORACLE_HOME/lib/libserver10.a /pesblt.o --> ORACLE_HOME/lib/libpls10.a /qcpi6.o --> ORACLE_HOME/lib/libgeneric10.a prvtpexp.plb --> ORACLE_HOME/rdbms/admin/prvtpexp.plb sjsex.o --> ORACLE_HOME/rdbms/lib/sjsex.o ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/iextjob ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/iextjobo ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/ioracle ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/client_sharedlib driload.pkh --> ORACLE_HOME/ctx/admin/driload.pkh /oracle/sysman/assistants/util/em/EMConfigStep.class --> ORACLE_ HOME/assistants/jlib/assistantsCommon.jar /oracle/sysman/assistants/util/sqlEngine/SQLEngine.class --> ORACLE_ HOME/assistants/jlib/assistantsCommon.jar /oracle/sysman/assistants/dbca/backend/DBEntryStep.class --> ORACLE_ HOME/assistants/dbca/jlib/dbca.jar /oracle/sysman/assistants/dbca/backend/EMConfigStep.class --> ORACLE_ HOME/assistants/dbca/jlib/dbca.jar /oracle/sysman/assistants/dbca/backend/PostDBCreationStep.class --> ORACLE_ HOME/assistants/dbca/jlib/dbca.jar /oracle/sysman/emcp/EMConfig.class --> ORACLE_HOME/jlib/emca.jar /oracle/sysman/emcp/IEMCAConstants.class --> ORACLE_HOME/jlib/emca.jar /oracle/sysman/emcp/EMConfig.class --> ORACLE_HOME/sysman/jlib/emCORE.jar /oracle/sysman/emcp/IEMCAConstants.class --> ORACLE_ HOME/sysman/jlib/emCORE.jar /oracle/sysman/emSDK/conf/ConfigManager.class --> ORACLE_ HOME/sysman/jlib/emCORE.jar /oracle/sysman/emSDK/eml/EmlConstants.class --> ORACLE_ HOME/sysman/jlib/emCORE.jar /oracle/sysman/util/pref/PrefUtil.class --> ORACLE_ HOME/sysman/jlib/emCORE.jar emctl.pl --> ORACLE_HOME/emdw/bin/emctl.pl /ncrfipm.o --> ORACLE_HOME/lib/libnro10.a libsqlplus.a --> ORACLE_HOME/lib/libsqlplus.a libsqlplus.so --> ORACLE_HOME/lib/libsqlplus.so libisqlplus.a --> ORACLE_HOME/lib/libisqlplus.a libisqlplus.so --> ORACLE_HOME/lib/libisqlplus.so mdprivs.sql --> ORACLE_HOME/md/admin/mdprivs.sql prvtgmd.plb --> ORACLE_HOME/md/admin/prvtgmd.plb sdolrsmd.sql --> ORACLE_HOME/md/admin/sdolrsmd.sql prvtccbk.plb --> ORACLE_HOME/md/admin/prvtccbk.plb wk0acl.pkh --> ORACLE_HOME/ultrasearch/admin/wk0acl.pkh wk0acl.plb --> ORACLE_HOME/ultrasearch/admin/wk0acl.plb wk0adm.pkh --> ORACLE_HOME/ultrasearch/admin/wk0adm.pkh wk0adm.plb --> ORACLE_HOME/ultrasearch/admin/wk0adm.plb wk0snapshot.plb --> ORACLE_HOME/ultrasearch/admin/wk0snapshot.plb wk0util.pkh --> ORACLE_HOME/ultrasearch/admin/wk0util.pkh wk0util.plb --> ORACLE_HOME/ultrasearch/admin/wk0util.plb Patch Location in Inventory: /home1/racqa/102_ twork/toii/toiir/toiir571/HOMEtoiir571/inventory/oneoffs/3811942 Patch Location in Storage area: /home1/racqa/102_twork/toii/toiir/toiir571/HOMEtoiir571/.patch_ storage/3811942_Aug_31_2007_12_06_28 Rac system comprising of multiple nodes Local node = stadu56 Remote node = stacg16 -------------------------------------------------------------------------------- OPatch succeeded.
ノード情報が正しく出力されない場合は、ノード・リストを更新する必要があります。ノード・リストの更新の詳細は、「クラスタのノードの更新」を参照してください。
ORACLE_HOME
は、任意の方法でバックアップできます。ORACLE_HOME
は、zip
、cp -r
、tar
、cpio
などの任意の形式を使用して圧縮できます。
opatch lsinventory -detail
の実行時にORACLE_HOME
が表示されない場合は、セントラル・インベントリにORACLE_HOME
がないか、セントラル・インベントリ自体が失われたか破損している可能性があります。
opatch lsinventory -detail
コマンドの実行時にORACLE_HOME
がリストされても、ORACLE_HOME
内の製品およびコンポーネントがリストされない場合は、ORACLE_HOME
内のインベントリ(ローカル・インベントリ)が失われたか破損している可能性があります。
ローカル・インベントリがなんらかの理由で破損または消失した場合は、ORACLE_HOME/inventory
をリストアできます(バックアップされている場合)。バックアップが存在しない場合は、ソフトウェアを再インストールする必要があります。
パッチ操作を実行する前に、ORACLE_HOME
をバックアップすることを強くお薦めします。
OPatchユーティリティは、<Path_to_Oracle_Home>/OPatch
ディレクトリにあります。様々なオプションおよびコマンドライン引数を指定して実行されます。次のコマンドは、OPatchユーティリティの構文を示しています。
<Path_to_OPatch>
/opatch<option>
[-command_line_arguments]
上のコマンドでは、次の変数が使用されています。
command_line_arguments: オプションに対するコマンドライン引数。これについては次の各項で説明します。
option: OPatchオプション。これについては次の表で説明します。
表8-1 OPatchオプション
オプション | 説明 |
---|---|
apply |
個別パッチをインストールします。詳細は、「applyオプション」を参照してください。 |
lsinventory |
システムに現在何がインストールされているかをリストします。詳細は、「lsinventoryオプション」を参照してください。 |
query |
特定のパッチの詳細を問い合せます。詳細は、「queryオプション」を参照してください。 |
rollback |
個別パッチを削除します。詳細は、「rollbackオプション」を参照してください。 |
version |
パッチ・ツールの現在のバージョンを出力します。詳細は、「versionオプション」を参照してください。 |
任意のオプションの追加情報を表示するには、次のコマンドを使用します。
<Path_to_OPatch>
/opatchoption
-help
Perlを使用している場合は、次のコマンドを使用します。
perl opatch.pl option
-help
apply
オプションは、指定されたOracleホームに個別パッチを適用します。環境変数ORACLE_HOME
は、パッチを適用するOracleホームに設定する必要があります。このオプションには次の構文を使用します。
<Path_to_OPatch>
/opatch apply [-delay (value)] [-force] \
[-invPtrLoc (path)] [-jdk (location)] [-jre (location)] [-local] \
[-minimize_downtime] [-no_bug_superset] [-no_inventory] \
[-oh (Oracle Home location)] \
[-post (options to be passed into post) [-opatch_post_end]]\
[-pre (options to be passed into pre) [-opatch_pre_end]] \
[-retry (value)] [-silent] [-verbose] [-no_relink] \ [-no_sysmod (patch
location)][-remote_nodes (comma separated node names)][-local_node (node
_name)][patch_location]
次の表に、apply
オプションで使用できるコマンドライン引数をリストします。
表8-2 applyオプションのコマンドライン引数
コマンドライン引数 | 説明 |
---|---|
delay |
インベントリのロックに失敗した場合に、次のインベントリ・ロックを試行する前に待機する秒数を指定します。このオプションは、 |
force |
競合するパッチをシステムから削除します。パッチの適用を妨げる競合が存在する場合、 |
invPtrLoc |
|
jdk |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJDK(jar)の場所を指定します。-jdkオプションと-jreオプションは同時に使用できません。 |
jre |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。-jdkオプションと-jreオプションは同時に使用できません。 |
local |
OPatchユーティリティがローカル・ノードにパッチを適用し、ローカル・ノードのインベントリを更新することを指定します。パッチまたはインベントリ更新は他のノードに伝播されません。 このコマンドライン引数は、Oracle Real Application Clusters環境および非クラスタ化環境で使用できます。パッチを適用する前にクラスタ全体が停止している場合は、非ローリング・パッチにこの引数を使用できます。 |
local_node |
OPatchユーティリティにこのクラスタのローカル・ノードを指定します。 このコマンドライン引数は、Oracle Real Application Clusters環境で使用できます。 |
minimize_downtime |
OPatchユーティリティによりパッチが適用されるノードの順序を指定します。 このコマンドライン引数は、Oracle Real Application Clusters環境にのみ適用できます。 |
no_bug_superset |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合は、エラーにすることを指定します。 |
no_inventory |
インベントリの読取りおよび更新を省略します。このコマンドライン引数を |
no_sysmod |
OPatchユーティリティでシステム内のファイルを更新する必要がないことを指定します。インベントリのみを更新します。 |
no_relink |
このオプションは、make操作を実行しません。複数パッチの適用中に、リンク手順を1回のみ実行するために使用できます。OPatchは、実行しなかったmake操作を追跡しません。コンパイルの最後に、このオプションを使用せずにOPatchを実行する必要があります。 |
oh |
デフォルトのかわりに使用するOracleホーム・ディレクトリを指定します。 |
opatch_post_end |
|
opatch_pre_end |
|
post |
標準パラメータの他に |
pre |
標準パラメータの他に |
remote_nodes |
OPatchユーティリティにリモート・ノードのリストを指定します。 このコマンドライン引数は、Oracle Real Application Clusters環境で使用できます。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchユーティリティが試行する必要のある回数を指定します。 |
silent |
ユーザーとの対話を抑止し、回答をデフォルトでyesに設定します。 |
verbose |
画面およびログ・ファイルに出力します。 |
注意: パッチがSQL変更から構成される場合は、SQLスクリプトを適用するパッチに含まれているパッチのREADMEの手順に従ってください。 |
lsinventory
オプションは、特定のOracleホーム・ディレクトリまたはすべてのインストールについて、システムに何がインストールされているかをレポートします。このオプションには次の構文を使用します。
次の表に、lsinventory
オプションで使用できるコマンドライン引数をリストします。
<Path_to_OPatch>
/opatch lsinventory [-all] [-bugs_fixed asc|desc] [-delay (value)]
[-detail] [-invPrtLoc (path)] \
[-jre (location)] [-patch asc|desc] [-oh (Oracle Home location)] [-retry (value)]
コマンド・オプションの説明は、表8-3を参照してください。
-detailオプションの例
次の例では、opatch lsinventory -detail
の出力を示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/10.2.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/oracle_TEST/product/10.2.0/db_1/oui Log file location : /home/oracle_ TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 10g 10.2.0.4.6 There are 1 products installed in this Oracle Home. Installed Products (10): Agent Required Support Files 10.2.0.4.6 Assistant Common Files 10.2.0.4.6 Bali Share 1.1.18.0.0 Buildtools Common Files 10.2.0.4.6 Character Set Migration Utility 10.2.0.4.6 Database Configuration and Upgrade Assistants 10.2.0.4.6 Database SQL Scripts 10.2.0.4.6 Database Workspace Manager 10.2.0.4.6 DBJAVA Required Support Files 10.2.0.4.6 Enterprise Edition Options 10.2.0.4.6 There are 10 products installed in this Oracle Home. Intermin patches (1) : Patch 111000 : applied on Mon May 23 19:44:08 IST 2008 Created on 27 Jul 2007, 05:43:46 hrs PST8PDT Bugs fixed: 111000 Files Touched: /qmtest.o --> ORACLE_HOME/lib/libserver11.a libmapsym.so --> ORACLE_HOME/lib/libmapsym.so ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/ioracle /oracle/xml/jaxb/orajaxb.class --> ORACLE_HOME/lib/xml.jar Patch Location in Inventory: /home/oracle_TEST/product/10.2.0/db_1/inventory/oneoffs/111000 Patch Location in Storage area: /home/oracle_TEST/product/10.2.0/db_1/.patch_storage/111000_Jul_27_2007_05_43_46 -------------------------------------------------------------------------------- OPatch succeeded.
-bugs_fixedオプションの例
次の例では、opatch lsinventory -bugs_fixed asc
の出力を示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/10.2.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/oracle_TEST/product/10.2.0/db_1/oui Log file location : /home/oracle_ TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Installed Top-level Products (2): Oracle Database 10g 10.2.0.4.6 Oracle Database 10g Release 2 Patch Set 2 10.2.0.4.6 There are 2 products installed in this Oracle Home. List of Bugs fixed by Installed Patches: Bug Fixed by Installed at Description Patch --- -------- ------------ ----------- 1000000 6079591 Mon Oct 13 02:03:42 PDT 2008 test bug 6079591 6079591 Mon Oct 13 02:03:42 PDT 2008 MLR BUG FOR 10.2.0:.3 FOR CPU:JUL2:007 300500 300500 Fri Sep 05 02:25:34 PDT 2008 Demo bug for patching files 300501 300500 Fri Sep 05 02:25:34 PDT 2008 Demo bug for patching files 300502 300500 Fri Sep 05 02:25:34 PDT 2008 Demo bug for patching files 6121268 6121268 Tue Aug 19 23:32:33 PDT 2008 DB-10.2.0.3-MOLECULE-007-CPUJUL2007 6121266 6121266 Tue Aug 19 23:32:27 PDT 2008 DB-10.2.0.3-MOLECULE-018-CPUJUL2007 6121264 6121264 Tue Aug 19 23:32:22 PDT 2008 DB-10.2.0.3-MOLECULE-017-CPUJUL2007 6121263 6121263 Tue Aug 19 23:32:14 PDT 2008 DB-10.2.0.3-MOLECULE-016-CPUJUL2007 ..... ..... (Middle section of report is intentionally excluded.) ..... ..... 6121248 6650096 Tue Feb 12 05:50:48 PST 2008 DB-10.2.0.3-MOLECULE-015-CPUJUL2007 6650096 6650096 Tue Feb 12 05:50:48 PST 2008 DB-10.2.0.3-MOLECULE-036-CPUJAN2008 6121247 6650095 Tue Feb 12 05:50:41 PST 2008 DB-10.2.0.3-MOLECULE-006-CPUAPR2007 6397946 6650095 Tue Feb 12 05:50:41 PST 2008 DB-10.2.0.3-MOLECULE-031-CPUOCT2007 6650095 6650095 Tue Feb 12 05:50:41 PST 2008 DB-10.2.0.3-MOLECULE-035-CPUJAN2008 6650081 6650081 Tue Feb 12 05:50:35 PST 2008 DB-10.2.0.3-MOLECULE-034-CPUJAN2008 6646853 6646853 Tue Feb 12 05:50:28 PST 2008 MLR BUG FOR 10.2.0.3 FOR CPUJAN2008 6452863 6452863 Tue Feb 12 05:50:12 PST 2008 TRACKING BUG FOR CPUJUL2007 -------------------------------------------------------------------------------- OPatch succeeded.
-patch descオプションの例
次の例では、opatch lsinventory -patch desc
の出力を示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/10.2.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/oracle_TEST/product/10.2.0/db_1/oui Log file location : /home/oracle_ TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Interim patches (39) : Patch 6079591 : applied on Mon Oct 13 02:03:42 PDT 2008 Created on 21 Jun 2007, 03:42:18 hrs PST8PDT Bugs fixed: 6079591, 1000000 Patch 300500 : applied on Fri Sep 05 02:25:34 PDT 2008 Created on 07 Nov 2005, 04:57:14 hrs US/Eastern Bugs fixed: 300500, 300501, 300502 -------------------------------------------------------------------------------- OPatch succeeded.
表8-3 lsinventoryオプションのコマンドライン引数
コマンドライン引数 | 説明 |
---|---|
all |
Oracleホーム・ディレクトリで見つかったそれぞれの名前およびインストール・ディレクトリをレポートします。 |
bugs_fixed |
インストール済のパッチで修正された不具合を表形式でレポートします。レポートには、修正された不具合に加えて、インストール済のパッチ、インストール時刻および不具合の説明も表示されます。修正済の不具合は、インストールされているパッチ別にソートされます。デフォルトでは、パッチはインストールされた時間に従って降順で表示され、各パッチ内の不具合は昇順で表示されます。このオプションで「asc」または「desc」を使用すると、各パッチの不具合のソート順序を強制できます。 patchまたはpatch_idオプションとともにこのオプションを使用すると、インストール済のパッチのソート順序に従うことができます。 |
delay |
インベントリのロックに失敗した場合に、次のインベントリ・ロックを試行する前に待機する秒数を指定します。このオプションは、-retryオプションが指定されている場合にのみ使用できます。 |
detail |
インストールされている製品およびその他の詳細をレポートします。このコマンドライン引数を |
invPtrLoc |
|
jre |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。 |
patch |
OracleホームにインストールされているパッチIDをインストール時刻に基づいて昇順(asc)または降順(desc)にリストします。デフォルトは降順です。 |
retry |
インベントリのロックに失敗した場合にOPatchユーティリティが試行する必要のある回数を指定します。 |
次に、opatch lsinventory -detail
のサンプル出力を示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/10.2.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/oracle_TEST/product/10.2.0/db_1/oui Log file location : /home/oracle_ TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 10g 10.2.0.4.6 There are 1 products installed in this Oracle Home. Installed Products (10): Agent Required Support Files 10.2.0.4.6 Assistant Common Files 10.2.0.4.6 Bali Share 1.1.18.0.0 Buildtools Common Files 10.2.0.4.6 Character Set Migration Utility 10.2.0.4.6 Database Configuration and Upgrade Assistants 10.2.0.4.6 Database SQL Scripts 10.2.0.4.6 Database Workspace Manager 10.2.0.4.6 DBJAVA Required Support Files 10.2.0.4.6 Enterprise Edition Options 10.2.0.4.6 There are 10 products installed in this Oracle Home. Intermin patches (1) : Patch 102000 : applied on Mon May 23 19:44:08 IST 2008 Created on 27 Jul 2007, 05:43:46 hrs PST8PDT Bugs fixed: 102000 Files Touched: /qmtest.o --> ORACLE_HOME/lib/libserver10.a libmapsym.so --> ORACLE_HOME/lib/libmapsym.so ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/ioracle /oracle/xml/jaxb/orajaxb.class --> ORACLE_HOME/lib/xml.jar Patch Location in Inventory: /home/oracle_TEST/product/10.2.0/db_1/inventory/oneoffs/102000 Patch Location in Storage area: /home/oracle_TEST/product/10.2.0/db_1/.patch_storage/102000_Jul_27_2007_05_43_46 -------------------------------------------------------------------------------- OPatch succeeded.
query
オプションは、特定のパッチの詳細を問い合せます。パッチおよびパッチが適用されるシステムに関する情報を提供します。このオプションには次の構文を使用します。
<Path_to_OPatch>
/opatch query [-all] [-jre (Location)] [-jdk (Location)]\
[-oh (Location)] [patch_location]
次の表に、query
オプションで使用できるコマンドライン引数をリストします。
表8-4 queryオプションのコマンドライン引数
コマンドライン引数 | 説明 |
---|---|
all |
パッチに関するすべての情報を取得します。すべてのコマンドライン引数を設定することと同じです。 |
jdk |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJDK(jar)の場所を指定します。-jdkオプションと-jreオプションは同時に使用できません。 |
jre |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。-jdkオプションと-jreオプションは同時に使用できません。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。 |
rollback
オプションは、適切なOracleホーム・ディレクトリから特定の個別パッチを削除します。このオプションには次の構文を使用します。
<Path_to_OPatch>
/opatch rollback -id(patch_id)
[-ph (patch directory)] \ [-delay] (value) [-invPtrLoc (path)] [-jdk (location)] [-jre (location)]\ [-local] [-oh (Oracle Home location)] \ [-post (options to be passed into post) [-opatch_post_end]] \ [-pre (options to be passed into pre) [-opatch_pre_end]] [-retry (value)] \ [-silent] [-verbose] [-no_relink] [-no_sysmod][-remote_nodes (node1,node2)][-local_node (node_name)]
次の表に、rollback
オプションで使用できるコマンドライン引数をリストします。
表8-5 rollbackオプションのコマンドライン引数
コマンドライン引数 | 説明 |
---|---|
delay |
|
id |
ロールバックするパッチを指定します。すべてのパッチ識別子を表示するには |
invPtrLoc |
|
jdk |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJDK(jar)の場所を指定します。 |
jre |
Oracleホーム・ディレクトリの下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
local |
OPatchユーティリティがローカル・ノードをロールバックおよび更新し、ローカル・ノードのインベントリを更新することを指定します。パッチまたはインベントリ更新は他のノードに伝播されません。 このコマンドライン引数は、Oracle Real Application Clusters環境および非クラスタ化環境で使用できます。パッチを適用する前にクラスタ全体が停止している場合は、非ローリング・パッチにこの引数を使用できます。 |
local_node |
OPatchユーティリティに、このノードがクラスタのローカル・ノードであることを指定します。 このコマンドライン引数は、Oracle Real Application Clusters環境で使用できます。 |
no_sysmod |
OPatchユーティリティでシステム内のファイルを更新する必要がないことを指定します。インベントリのみを更新します。 |
no_relink |
このオプションは、パッチでmake操作を実行しません。複数パッチの削除中に、コンパイル手順を1回のみ実行するために使用できます。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。 |
opatch_post_end |
|
opatch_pre_end |
|
ph |
有効なパッチ・ディレクトリ領域を指定します。ユーティリティは、パッチ・ディレクトリに見つかったコマンド・タイプを使用して、現在のオペレーティング・システムに使用されているコマンドを識別します。 |
post |
標準パラメータの他に |
pre |
標準パラメータの他に |
remote_nodes |
OPatchユーティリティにリモート・ノードのリストを指定します。 このコマンドライン引数は、Oracle Real Application Clusters環境で使用できます。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchユーティリティが試行する必要のある回数を指定します。 |
silent |
ユーザーとの対話を抑止し、回答をデフォルトでyesに設定します。Real Application Clusters設定では、このオプションはサポートされません。 |
verbose |
画面およびログ・ファイルに出力します。 |
Real Application Clusters環境は、アクティブなインスタンスが共有データベースでトランザクションを同時に実行する環境です。Real Application Clusters環境でのパッチの適用は、単一ノードのパッチの適用とはわずかに異なります。
OPatchを使用した個別パッチの適用では、Oracle Universal InstallerがクラスタのOracleホームおよびノードを検出する場合と同じ方法が使用されます。OPatchは、Oracle Universal Installer Java SDKを通じてOracle Universal Installerインベントリと対話します。OPatchは、クラスタを検出した場合に、Oracle Universal Installerを通じてインベントリに問い合せて、ローカル・ノード名およびノード・リストを探します。ノード・リストが更新されていない場合は、Oracle Universal Installerの-updateNodeList
フラグを使用して更新できます。-local
フラグを使用してリモート・アクションを省略できます。
$ORACLE_HOME/oui/bin/<runInstaller or setup.exe> -updateNodeList ORACLE_ HOME=<oracle home location> "CLUSTER_NODES={<node1,node2,node3>}" -noClusterEnabled
OPatchにReal Application Clusters設定のローカル・ノードまたはリモート・ノードを指定する場合は、LOCAL_NODE
またはREMOTE_NODES
セッション変数を使用してノード名を指定できます。
$ORACLE_HOME/oui/bin/<runInstaller or setup.exe> ORACLE_HOME=<oracle home location> "REMOTE_NODES {<node1,node2,node3>}" LOCAL_NODE=<nodelist for example:node1>
OPatchがReal Application Clustersまたはそのノードを自動的に検出しない場合は、インベントリの内容を調べて、それらが完全であることを確認する必要があります。
Real Application Clustersには、3通りの方法でパッチを適用できます。
全ノードへのパッチの適用では、最初にReal Application Clustersのすべてのノードが停止され、パッチがすべてのノードに適用されます。その後、すべてのノードが再び起動されます。このモードは、通常は非常にクリティカルなパッチに使用され、停止時間が最大になります。OPatchは、他に指定されていないかぎり、このモードをパッチ適用のデフォルトとして使用します。全ノードへのパッチの適用について、次の例で説明します。
図8-2「全ノードへのパッチの適用」に示したReal Application Clusters設定について考えます。システムA、BおよびCは、このReal Application Clustersのノードです。このクラスタで全ノードへのパッチの適用を実行した場合、システムA、BおよびCが停止され、これらすべてのノードにパッチが適用されます。その後、システムA、BおよびCが再び起動されます。
ローリング方式のパッチの適用では、各ノードが停止され、パッチが適用された後、再び起動されます。Real Application Clusters内のすべてのノードにパッチが適用されるまで、この処理がノードごとに別々に実行されます。このモードは、停止時間がゼロになるため、Real Application Clusters設定に個別パッチを適用する場合の最も効率的なモードです。このモードで適用できるのは、一部のパッチのみです。このタイプは、一般にパッチ・メタデータで指定されます。ローリング方式のパッチの適用について、次の例で説明します。
図8-3「ローリング方式のパッチの適用」に示したReal Application Clusters設定について考えます。システムA、BおよびCは、このReal Application Clustersのノードです。このクラスタでローリング方式のパッチの適用を実行した場合、システムAが最初に停止され、パッチが適用されます。次に、このシステムが再び起動されます。続いて、システムBが停止され、パッチが適用され、再び起動されます。この手順がシステムCについても繰り返されます。パッチはローリング方式で適用されます。このタイプのパッチ適用の主な利点は、一度に1つのシステムしか停止されないため、パッチの適用中にまったく停止時間がないことです。
最小停止時間のパッチの適用では、ノードがセットに分割されます。まず、最初のセットが停止され、パッチが適用されます。その後で、2番目のセットが停止されます。最初のセットが起動し、パッチが2番目のセットに適用されます。2番目のセットもここで起動します。この時点で、Real Application Clustersのすべてのノードにパッチが適用されています。このモードでは、両方のセットが停止している場合のReal Application Clustersの停止時間が短くなります。このモードは、-minimize_downtime
コマンドライン・オプションを使用して実行されます。レスポンス・ファイルからこのオプションをアクティブにすることもできます。最小停止時間のパッチの適用について、次の例で説明します。
図8-4「最小停止時間のパッチの適用」に示したReal Application Clusters設定について考えます。システムA、BおよびCは、このReal Application Clustersのノードです。これらは2つのセットに分割されています。セット1にはシステムAおよびBが含まれ、セット2にはシステムCが含まれます。このクラスタで最小停止時間のパッチの適用を実行した場合は、セット1が停止し、パッチが適用されます。ここで、セット2が停止されます。セット1が起動し、パッチがセット2に適用されます。パッチの適用後、セット2が再び起動します。これで、セット1と2の両方にパッチが適用されます。
すべてのパッチが相互に互換性があるとはかぎりません。たとえば、パッチが適用され、そのパッチで修正されたすべてのバグが、別のパッチを適用した後に再び出現する場合があります。これを競合状況といいます。OPatchはこのような状況を検出し、競合が検出された場合にエラーを生成します。
OPatchは、次のタイプの競合を検出できます。
バグ・スーパーセット: あるパッチで修正されたシステム内のすべてのバグが、これから適用するパッチによっても修正される場合、このパッチ(適用するパッチ)はすでに適用されているパッチのスーパーセットとみなされます。バグ・スーパーセット条件が検出された場合は、エラー状況とみなされません。すべてのサブセット・パッチがシステムから削除され、新しいパッチが適用されます。
たとえば、4つのパッチA、B、CおよびDがシステムに適用されているシナリオについて考えます。図8-5に示すように、各パッチはそれぞれ2つのバグを修正します。ここにバグ5、6、7、8、9および10を修正するパッチEを適用する場合、パッチEはパッチCおよびDのスーパーセットになります。
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合にOPatchをエラーにするには、-no_bug_superset
フラグを使用します。
$ OPatch/opatch apply -no_bug_superset <Path_To_Patch>
次に、-no_bug_superset
フラグを使用した場合に表示されるメッセージのサンプル出力を示します。
Oracle interim Patch Installer version 10.2.0.4.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/10.2.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc OPatch version : 10.2.0.4.6 OUI version : 10.2.0.4.6 OUI location : /home/oracle_TEST/product/10.2.0/db_1/oui Log file location : /home/oracle_TEST/product/10.2.0/db _1/cfgtoollogs/opatch/opatch-2008_May_25_14-03-33-IST_Wed.log ApplySession applying interim patch '102000' to OH '/home/oracle _TEST/product/10.2.0/db_1' Apply Session failed: ApplySession failed to prepare the system. Interim patch 102000 is a superset of the patch(es) [ 102000 ] in OH /home/oracle _TEST/product/10.2.0/db_1 System intact, OPatch will not attempt to restore the system OPatch failed with error code 73
バグ競合: 現在の個別パッチで修正されるバグのセットが、以前にインストールした個別パッチの1つ以上ですでに修正されているバグの一部のみを含み、すべてのバグは含まない場合は、バグ競合と呼ばれます。新しいパッチを適用する前に、競合パッチをロールバックする-force
フラグを指定したapply
コマンドを使用して、パッチの適用を続行する前にバグ競合を除去する必要があります。
たとえば、4つのパッチA、B、CおよびDがシステムに適用されているシナリオについて考えます。図8-6に示すように、各パッチはそれぞれ2つのバグを修正します。ここにバグ1、3、5、7、9および10を修正するパッチEを適用する場合、パッチEには修正済のバグ1、3、5、7、9および10が含まれますが、バグ2、4、6および8は未解決です。これは競合状況です。
ファイル競合: 現在の個別パッチでパッチが適用されるファイルのセットが、以前にインストールした個別パッチの1つ以上ですでにパッチを適用済のファイルを含み、それがバグ・スーパーセットでない場合は、ファイル競合と呼ばれます。新しいパッチを適用する前に、競合パッチをロールバックする-force
フラグを指定したapply
コマンドを使用して、パッチの適用を続行する前にファイル競合を除去する必要があります。
組合せ競合: パッチのセットにバグ・スーパーセットの組合せがあり、バグまたはファイルが競合している場合、組合せ競合と呼びます。これはエラー状況です。この場合、OPatchはすべての競合パッチおよびサブセット・パッチを削除し、新規パッチを再適用します。
たとえば、4つのパッチA、B、CおよびDがシステムに適用されているシナリオについて考えます。図8-7に示すように、各パッチは2つのバグを修正します。パッチCはパッチDのサブセットです。パッチAおよびパッチBはパッチDの競合パッチです。ここにバグ1、3、5、6、7および8を修正するパッチDを-force
フラグを指定して適用する場合、OPatchはパッチA、BおよびCをロールバックし、パッチDを適用します。
Real Application Clustersでは-silent
、-force
および-no_bug_superset
オプションを使用できます。次の表は、予想される動作を真理値表形式でリストしたものです。
表8-6 真理値表
-silent | -force | -no_bug_superset | 予想される動作 |
---|---|---|---|
N |
N |
N |
OPatchがプロンプトで問いを発し、それに対する回答に応じてパッチを適用します。 |
N |
N |
Y |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合、OPatchはエラーになります。競合している場合は、OPatchがプロンプトで問いを発し、それに対する回答に応じてパッチを適用します。 |
N |
Y |
N |
OPatchがプロンプトで問いを発し、それに対する回答に応じてパッチを適用します。 |
N |
Y |
Y |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合、OPatchはエラーになります。競合している場合は、OPatchがプロンプトで問いを発し、それに対する回答に応じてパッチを適用します。 |
Y |
N |
N |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合、OPatchはロールバックしてパッチを適用します。競合している場合、OPatchはエラーになります。 |
Y |
N |
Y |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合、OPatchはエラーになります。競合している場合も、OPatchはエラーになります。 |
Y |
Y |
N |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセット、競合または同一の場合でも、OPatchは警告せずにすべてのパッチをロールバックし、再適用します。 |
Y |
Y |
Y |
現在のパッチで修正するバグが、Oracleホーム・ディレクトリにインストールされているパッチで修正済のバグのスーパーセットであるか同一の場合、OPatchはエラーになります。競合している場合、OPatchはロールバックして新しいパッチを適用します。 |
OPatchは、個別パッチを適用する場合に、以前に適用したパッチとの競合を検出およびレポートします。競合がある場合、パッチの適用は失敗します。OPatchの-force
オプションを使用して、このエラーをオーバーライドできます。-force
が指定されている場合、インストーラは最初に競合パッチをロールバックしてから、目的の個別パッチのインストールに進みます。
バグ競合が発生し、競合するパッチの削除が必要になる場合があります。このプロセスは、パッチのロールバックと呼ばれます。パッチのインストール時、OPatchは、新規パッチで置換されるすべてのファイルのコピーを保存してから、これらのファイルの新規バージョンをロードし、$ORACLE_HOME/.patch_storageに格納します。これらの保存されたファイルはロールバック・ファイルと呼ばれ、パッチのロールバックを可能にするためのキーとなります。パッチをロールバックする場合、これらのロールバック・ファイルがシステムにリストアされます。-force
フラグを使用してデフォルトの動作を変更するのは、パッチのロールバック・プロセスについて完全に理解している場合のみにしてください。パッチをロールバックするには、次のコマンドを実行します。
$ OPatch/opatch rollback -id <Patch_ID>
パッチを適用するたびに、インベントリに変更が加えられます。この変更によりインベントリが破損することがあります。OPatchに付属のrestore.shまたはrestore.batスクリプトを使用して、パッチの適用後にインベントリに対して行われた変更を削除できます。パッチを適用する場合、OPatchはインベントリのスナップショットを作成し、$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに格納します。詳細は、「個別パッチのバージョン」を参照してください。
インベントリが破損した場合は、次の手順を実行して、アプリケーションを最後の既知の正常な状態に戻す必要があります。
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
ロギングとトレースは、デバッグのための一般的な支援機能です。OPatchは、すべての適用、ロールバックおよびlsInventory操作のログを保持します。ログ・ファイルは、<ORACLE_HOME>/cfgtoollogs/opatchディレクトリにあります。各ログ・ファイルには、操作のタイムスタンプのタグが付けられています。ログ・ファイルにはopatch_<date mm-dd-yyyy>_<time hh-mm-ss>.logのような名前が付けられます。OPatchが実行されるたびに、新しいログ・ファイルが作成されます。
たとえば、ログ・ファイルが2008年5月17日の11.55 PMに作成された場合、名前は次のようになります。
opatch_05-17-2008_23-55-00.log
注意: 環境変数OPATCH_DEBUGをTRUEに設定することにより、OPatchをデバッグ・モードに設定できます。 |
またOPatchは、OPatchで実行されたコマンドの索引およびそれに関連付けられているログ・ファイルを、<ORACLE_HOME>/cfgtoollogs/opatchディレクトリにあるhistory.txt
ファイルに保持します。history.txt
ファイルのサンプルを次に示します。
Date & Time : Tue Apr 26 23:00:55 PDT 2008 Oracle Home : /private/oracle/product/10.2.0/db_1/ OPatch Ver. : 10.2.0.4.6 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /private/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2008_Apr_26_23-00-55-PDT_Tue.log
パッチの適用時に、更新は2つのフェーズで行われることがあります。
システム更新: このフェーズでは、Oracleホーム内でファイルが置換されます。
インベントリ更新: このフェーズでは、適用されたパッチの詳細がインベントリに記録されます。
次に、様々なシナリオを一覧し、失敗したパッチの適用セッションからリカバリする方法を示します。
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
ファイルにパッチが正しく適用されていても、インベントリ内の情報が更新されていない場合は、次のコマンドを実行します。
$ORACLE_HOME/OPatch/opatch apply -no_sysmod <Path_To_Patch>
次のコマンドを実行して、パッチが適用され、インベントリに正しく記録されていることを確認します。
$ORACLE_HOME/OPatch/opatch lsinventory -detail
ファイルにパッチがまだ正しく適用されていないが、lsinventoryフラグでそのパッチが表示される場合は、no_inventoryフラグを使用してパッチを再適用する必要があります。
$ORACLE_HOME/OPatch/opatch apply -no_inventory <Path_To_Patch>
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
ファイルにパッチが正しく適用されていても、インベントリ内の情報が更新されていない場合は、次のコマンドを実行します。
$ORACLE_HOME/OPatch/opatch apply -no_sysmod <Path_To_Patch>
次のコマンドを実行して、パッチが適用され、インベントリに正しく記録されていることを確認します。
$ORACLE_HOME/OPatch/opatch lsinventory -detail
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します(使用可能な場合)。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXシェルでmakeを手動で起動できることを確認して、再リンク・エラーの問題を解決します。その後で、パッチを再度適用します。
クラスタ内のすべてのノードで環境変数ORACLE_HOMEが正しく設定されていることを確認します。
クラスタ内の各ノードの$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、次のようにrestoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のようにクラスタの各ノードで$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
localフラグを使用して、クラスタ内の各ノードでパッチを適用します。
$ORACLE_HOME/OPatch/opatch apply -local <Path_To_Patch>
注意: すべてのノードで同じOPatchバージョンを使用していることを確認してください。 |
クラスタ内の各ノードで環境変数ORACLE_HOMEが正しく設定されていることを確認します。
クラスタ内の各ノードで、$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように各ノードで$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
localフラグを使用して、各ノードでパッチを適用します。
$ORACLE_HOME/OPatch/opatch apply -local <Path_To_Patch>
注意: すべてのノードで同じOPatchバージョンを使用していることを確認してください。 |
クラスタ内の各ノードで環境変数ORACLE_HOMEが正しく設定されていることを確認します。
クラスタ内の各ノードで$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、次のようにrestoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のようにクラスタの各ノードで$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
localフラグを使用して、クラスタ内のすべてのノードでパッチをロールバックします。
$ORACLE_HOME/OPatch/opatch rollback -local -id <Patch_ID>
注意: すべてのノードで同じOPatchバージョンを使用していることを確認してください。 |
クラスタ内の各ノードで環境変数ORACLE_HOMEが正しく設定されていることを確認します。
クラスタ内の各ノードで、$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、restoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt
localフラグを使用して、ローカル・ノードでパッチをロールバックします。
$ORACLE_HOME/OPatch/opatch rollback -local -id <Patch_ID>
localフラグを使用して、他のノードでもパッチをロールバックします。
注意: すべてのノードで同じOPatchバージョンを使用していることを確認してください。 |
正常なノードから他のノードにOracleホームをコピーします。
Oracleホームをコピーした後で、ORACLE_HOME/inventory/ContentsXML/comps.xml
ファイルに最新のタイムスタンプがあることを確認します。
注意: UNIXでは、touch を使用してタイムスタンプを変更します。 |
クラスタのノードを更新します。クラスタ・ノードの更新の詳細は、「クラスタのノードの更新」を参照してください。
「OPatchの前提条件チェック」にリストされているすべての前提条件チェックにパスしていることを確認してください。
正常なノードから他のノードにORACLE_HOME /inventory
ディレクトリをコピーします。
ORACLE_HOME /inventory
ディレクトリをコピーした後で、ORACLE_HOME/inventory/ContentsXML/comps.xml
ファイルに最新のタイムスタンプがあることを確認します。
注意: UNIXでは、touch を使用してタイムスタンプを変更します。 |
クラスタのノードを更新します。クラスタ・ノードの更新の詳細は、「クラスタのノードの更新」を参照してください。
「OPatchの前提条件チェック」にリストされているすべての前提条件チェックにパスしていることを確認してください。
クラスタ内のすべてのノードが最新であることを確認します。最新でない場合は、クラスタのノードを更新します。クラスタ・ノードの更新の詳細は、「クラスタのノードの更新」を参照してください。
クラスタのすべてのノードで適切なコマンドを次のように実行します。
opatch apply -local [patch_location] opatch rollback -local [patch_location]
クラスタのローカル・ノードで適切なコマンドを次のように実行します。
opatch apply [-local_node (node_name)] [-remote_nodes (comma-separated node_names)] opatch rollback [-local_node (node_name)] [-remote_nodes (comma-separated node_names)]
OPatchでは、次のようないくつかの環境変数を使用します。
ORACLE_HOME: Oracleホームの場所です。
OPATCH_DEBUG: OPatchが実行する必要のあるロギングの量を指定するログ・レベルです。
OPATCH_PLATFORM_ID: 一意のプラットフォームIDです。
PATH: パッチ情報です。
この項では、パッチの適用中に発生する可能性のあるエラーの解決方法を示します。
メタデータ・ファイルを格納する/etc
ディレクトリ
ペイロード・ファイルを格納する/files
ディレクトリ
同じディレクトリ下の/etc/config/inventory
ファイルおよびアクション・ファイル
OPatchユーティリティをpatch_id
ディレクトリから起動していない場合は、次のコマンドを使用できます。
opatch apply /<Patch_Shiphome>
fuser
を使用してアクティブなOracleインスタンスをチェックしています。特定のhp-uxシステムでは、スーパーユーザーのみがfuser
を実行できます。PATHに/tmp
を設定します。
詳細は、「システム・コマンドのチェック」を参照してください。
fuser
という名前の空のファイルを作成します。
Oracleインスタンスを停止します。
OPatchユーティリティを実行します。
注意: この問題を解決する方法として、他のユーザーにfuser に対する実行可能権限を付与することもできます。ただし、この方法ではシステムにセキュリティ・ホールが作成される可能性があるため、推奨されません。 |
環境変数ORACLE_HOMEが正しく設定されていることを確認します。
$ORACLE_HOME/.patch_storage/<patch-id_timestamp>ディレクトリに移動し、次のようにrestoreコマンドを実行します。
For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat
UNIXでは、次のように$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt
ファイルをソースにします(使用可能な場合)。
/bin/sh make.txt