Oracle Universal InstallerおよびOpatchユーザーズ・ガイド 11gリリース1(11.1) for Microsoft Windows and UNIX Systems E05707-05 |
|
戻る |
次へ |
OPatchはOracleが提供するユーティリティであり、Oracleのソフトウェアに個別パッチを適用し、Oracleのソフトウェアから個別パッチをロールバックするプロセスを支援します。この章では、これらの目的によるOPatchの使用について説明します。この章の内容は次のとおりです。
OPatchは、Oracle Universal Installerのインストールを必要とするJavaベースのユーティリティです。プラットフォームに依存しないこのユーティリティは、サポートされるすべてのオペレーティング・システムで機能します。スタンドアロンのOPatchと呼ばれる別バージョンのOPatchも使用できます。これは、Oracle Universal Installerを使用せずにOracleホームで実行されます。
パッチは、既存のインストールにコピーされるファイルの小さな集合です。パッチはOracle製品の特定のバージョンに関連付けられています。インストール済の対応バージョンの製品にパッチを適用すると、製品のバージョンがアップグレードされます。
個別パッチは、特定の不具合に対して顧客が使用できる不具合の修正です。個別パッチを適用するには、特定のベース・リリースまたはパッチ・セットがインストールされている必要があります。これらは一般に、特定の顧客の特定の不具合に対処します。これらのパッチはバージョン管理されず、一般に将来のパッチ・セットおよび次の製品リリースで使用可能になります。
OPatch 11.1ユーティリティには次の特長があります。
スケーラビリティ: OPatchは、スケーラブルに多数のパッチをサポートします。
信頼性: OPatchは信頼性が高く、Oracleホームおよびインベントリを保護します。パッチの適用に失敗しても、Oracleホームを安定した状態に戻すことができます。パッチの競合も簡単に検出できます。
可用性: Opatchのオンライン・パッチの適用により、データベースを停止せずにデータベースのパッチの適用が可能であるため、システムの可用性が向上します。
移植性: OPatchは、Oracleがソフトウェアをリリースするすべてのオペレーティング・システムと互換性があります。
堅牢性: OPatchは堅牢です。パッチの適用と削除が非常に簡単です。
容易なメンテナンス: OPatchはメンテナンスが簡単であり、拡張も可能です。
サイレント操作のサポート: OPatchでは、サイレント操作がサポートされます。このモードでは、ユーザーと対話せずにソフトウェアを実行できます。
Real Application Clustersのサポート: OPatchはReal Application Clustersをサポートし、その設定で正常に動作します。Enterprise ManagerのGrid Controlに簡単に拡張できます。
容易なデバッグ: OPatchには様々なレベルのロギングおよびトレース・メカニズムがあります。ソフトウェアの問題を簡単に診断できるようにするデバッグ・オプションもあります。
OPatchでは次のタスクがサポートされます。
個別パッチの適用。
個別パッチの適用のロールバック。
前の個別パッチが適用された後で個別パッチを適用する場合の競合の検出。競合を解決するための最適なオプションも提示されます。
インストールされている製品および個別パッチのレポート。
OPatchユーティリティには次の環境が必要です。
Oracleホーム環境変数(ORACLE_HOME
)が有効なOracleホーム・ディレクトリを示し、Oracleホーム・ディレクトリのインストール時に使用された値と一致していること。
JREバージョン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)を参照してください。
|
OPatchを起動する前に、次の項で説明する前提条件チェックを実行します。
ORACLE_HOMEおよび環境変数のチェック
OPatchは、Oracleホームが存在するかどうかを確認します。環境変数ORACLE_HOME
が、パッチを適用しようとしている製品のOracleホームに設定されていることを確認する必要があります。環境変数の設定の詳細は、それぞれのベンダーのドキュメントを確認してください。
JREのチェック
OPatchが正しく動作するにはJREバージョン1.4以上が必要です。
システム領域のチェック
OPatchは、パッチのインストール用スクリプトを処理すると同時に、ロールバック・スクリプトを生成し、パッチの適用時に編集または削除されたすべてのファイルのコピーを保存します。OPatchは、インベントリ情報もバックアップします。このため、パッチおよびバックアップ情報を十分に収容できるシステム領域を確保することをお薦めします。
Oracle Universal InstallerとOPatchのバージョン互換性のチェック
OPatch 11.1が正しく動作するにはOracle Universal Installer 11.1以上が必要です。Oracle Universal Installerのバージョンが、OPatchで必要とされるより前のバージョンの場合、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 Clusterware/Real Application Clustersをインストールしているユーザーのユーザー等価が設定されていることを確認する必要があります。UNIXでは、クラスタ・マシンにrsh
またはssh
、あるいはその両方が設定されている必要があります。Windowsでは、同じ<domain>\<user>
がすべてのクラスタ・マシンに対する管理権限を持つ必要があり、マシンが<domain>
のメンバーである必要があります。
ユーザー等価が正しく設定されている場合は、次のコマンドが正常に動作します。
$ rsh <nodename> date
ユーザー等価の設定の詳細は、「すべてのクラスタ・ノードでのSSHの構成」を参照してください。
opatch lsinventory -detail
コマンドを起動でき、出力されるノード情報を参照できることを確認してください。ノード情報が正しく出力されない場合は、ノード・リストを更新する必要があります。ノード・リストの更新の詳細は、「クラスタのノードの更新」を参照してください。次に、インストール済の118の製品、SQL、PL/SQLおよびオンライン・パッチのコマンド出力の例を示します。
Invoking OPatch 11.1.0.6.6 Oracle Interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /scratch/userid/oracle/product/11.1.0/db_1 Central Inventory : /home/userid/newDB/oraInventory from : /etc/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /scratch/userid/oracle/product/11.1.0/db_1/oui Log file location : /scratch/userid/oracle/product/11.1.0/ db_1/cfgtoollogs/opatch/opatch2008-07-17_23-08-20PM.log Lsinventory Output file location : /scratch/userid/oracle/product/11.1.0/ db_1/cfgtoollogs/opatch/lsinv/lsinventory2008-07-17_23-08-20PM.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.1.0.4.0 There are 1 products installed in this Oracle Home. Installed Products (118): Agent Required Support Files 10.2.1.3.1 Assistant Common Files 11.1.0.4.0 Bali Share 1.1.18.0.0 Buildtools Common Files 11.1.0.4.0 Character Set Migration Utility 11.1.0.4.0 Database Configuration and Upgrade Assistants 11.1.0.4.0 Database SQL Scripts 11.1.0.4.0 Database Workspace Manager 11.1.0.4.0 Enterprise Edition Options 11.1.0.4.0 Enterprise Manager Agent 10.2.1.3.1 Enterprise Manager Agent Core Files 10.2.1.3.1 Enterprise Manager Common Core Files 10.2.1.3.1 Enterprise Manager Common Files 10.2.1.3.1 Enterprise Manager Database Plugin -- Agent Support 11.1.0.4.0 Enterprise Manager Database Plugin -- Management Service Support 11.1.0.4.0 Enterprise Manager Database Plugin -- Repository Support 11.1.0.4.0 Enterprise Manager Grid Control Core Files 10.2.1.3.1 Enterprise Manager plugin Common Files 11.1.0.4.0 Enterprise Manager Repository Core Files 10.2.1.3.1 Generic Connectivity 11.1.0.4.0 Generic Connectivity Common Files 11.1.0.4.0 HAS Common Files 11.1.0.4.0 HAS Files for DB 11.1.0.4.0 Installation Common Files 11.1.0.4.0 Installer SDK Component 11.1.0.6.6 JAccelerator (COMPANION) 11.1.0.4.0 LDAP Required Support Files 11.1.0.4.0 OLAP SQL Scripts 11.1.0.4.0 Oracle 11g Warehouse Builder Server 11.1.0.4.0 Oracle Advanced Security 11.1.0.4.0 Oracle Application Express 11.1.0.4.0 Oracle Call Interface (OCI) 11.1.0.4.0 Oracle Clusterware RDBMS Files 11.1.0.4.0 Oracle Code Editor 1.2.1.0.0I Oracle Configuration Manager 10.2.5.0.0 Oracle Containers for Java 11.1.0.4.0 Oracle Core Required Support Files 11.1.0.4.0 Oracle Data Mining RDBMS Files 11.1.0.4.0 Oracle Database 11g 11.1.0.4.0 Oracle Database 11g 11.1.0.4.0 Oracle Database 11g interMedia Files 11.1.0.4.0 Oracle Database User Interface 2.2.13.0.0 Oracle Database Utilities 11.1.0.4.0 Oracle Display Fonts 9.0.2.0.0 Oracle Enterprise Manager Console DB 11.1.0.4.0 Oracle Extended Windowing Toolkit 3.4.42.0.0 Oracle Globalization Support 11.1.0.4.0 Oracle Globalization Support 11.1.0.4.0 Oracle Help For Java 4.2.9.0.0 Oracle Help for the Web 2.0.11.0.0 Oracle Ice Browser 5.2.3.6.0 Oracle interMedia 11.1.0.4.0 Oracle interMedia Annotator 11.1.0.4.0 Oracle interMedia Client Option 11.1.0.4.0 Oracle interMedia Java Advanced Imaging 11.1.0.4.0 Oracle interMedia Locator 11.1.0.4.0 Oracle interMedia Locator RDBMS Files 11.1.0.4.0 Oracle Internet Directory Client 11.1.0.4.0 Oracle Java Client 11.1.0.4.0 Oracle JDBC Server Support Package 11.1.0.4.0 Oracle JDBC/OCI Instant Client 11.1.0.4.0 Oracle JDBC/THIN Interfaces 11.1.0.4.0 Oracle JFC Extended Windowing Toolkit 4.2.36.0.0 Oracle JVM 11.1.0.4.0 Oracle LDAP administration 11.1.0.4.0 Oracle Locale Builder 11.1.0.4.0 Oracle Message Gateway Common Files 11.1.0.4.0 Oracle Net 11.1.0.4.0 Oracle Net Listener 11.1.0.4.0 Oracle Net Required Support Files 11.1.0.4.0 Oracle Net Services 11.1.0.4.0 Oracle Notification Service 10.1.0.3.0 Oracle ODBC Driver 11.1.0.4.0 Oracle ODBC Driverfor Instant Client 11.1.0.4.0 Oracle OLAP 11.1.0.4.0 Oracle OLAP API 11.1.0.4.0 Oracle OLAP RDBMS Files 11.1.0.4.0 Oracle One-Off Patch Installer 11.1.0.6.6 Oracle Partitioning 11.1.0.4.0 Oracle Programmer 11.1.0.4.0 Oracle RAC Required Support Files-HAS 11.1.0.4.0 Oracle Recovery Manager 11.1.0.4.0 Oracle Security Developer Tools 11.1.0.4.0 Oracle Spatial 11.1.0.4.0 Oracle SQL Developer 11.1.0.4.0 Oracle Starter Database 11.1.0.4.0 Oracle Text 11.1.0.4.0 Oracle UIX 2.2.20.0.0 Oracle Ultra Search Common Files 11.1.0.4.0 Oracle Ultra Search Middle-Tier 11.1.0.4.0 Oracle Ultra Search Server 11.1.0.4.0 Oracle Ultra Search Server Rdbms 11.1.0.4.0 Oracle Universal Installer 11.1.0.6.6 Oracle Wallet Manager 11.1.0.4.0 Oracle XML Development Kit 11.1.0.4.0 Parser Generator Required Support Files 11.1.0.4.0 Perl Interpreter 5.8.3.0.6 PL/SQL 11.1.0.4.0 PL/SQL Embedded Gateway 11.1.0.4.0 Platform Required Support Files 11.1.0.4.0 Precompiler Common Files 11.1.0.4.0 Precompiler Required Support Files 11.1.0.4.0 Provisioning Advisor Framework 10.2.1.3.1 RDBMS Required Support Files 11.1.0.4.0 RDBMS Required Support Files for Instant Client 11.1.0.4.0 regexp 2.1.9.0.0 Required Support Files 11.1.0.4.0 Sample Schema Data 11.1.0.4.0 Secure Socket Layer 11.1.0.4.0 Secure Socket Layer 11.1.0.4.0 SQL*Plus 11.1.0.4.0 SQL*Plus Required Support Files 11.1.0.4.0 SQLJ Runtime 11.1.0.4.0 SSL Required Support Files for InstantClient 11.1.0.4.0 Sun JDK 1.5.0.0.6 XDK Required Support Files 11.1.0.4.0 XML Parser for Java 11.1.0.4.0 XML Parser for Oracle JVM 11.1.0.4.0 There are 118 products installed in this Oracle Home. Interim patches (3) : Patch 300100 : applied on Tue Jul 10 02:21:40 PDT 2008 Created on 01 Jan 2007, 04:57:12 hrs US/Eastern Bugs fixed: 300101 Files Touched: test.pch --> ORACLE_HOME/hpatch/test.pch Instances Patched: online, venkat Patch Location in Inventory: /scratch/userid/oracle/product/11.1.0/db_1/inventory/oneoffs/300100 Patch Location in Storage area: /scratch/userid/oracle/product/11.1.0/db_1/.patch_storage/ 300100_Jan_01_2007_04_57_12 Patch 100100 : applied on Thu Jun 21 21:01:35 PDT 2008 Created on 22 Apr 2008, 23:57:54 hrs PST8PDT Bugs fixed: 100100, 100101 Files Touched: /shof.o --> ORACLE_HOME/lib/libagent10.a /oracle/help/AppletWindowManager.class --> ORACLE_HOME/jlib/help4.jar dbui2.jar --> ORACLE_HOME/jlib/dbui2.jar DummaDummy.class --> ORACLE_HOME/plsql/DummaDummy.class Sql scripts Executed: /scratch/userid/oracle/product/11.1.0/db_1/scripts/2.sql Sql Procedures Touched: JAN_300500_1, JAN_300500_2 Patch Location in Inventory: /scratch/userid/oracle/product/11.1.0/db_1/inventory/oneoffs/100100 Patch Location in Storage area: /scratch/userid/oracle/product/11.1.0/db_1/.patch_storage/100100_Apr_22_2008_23_57_54 Patch 300500 : applied on Tue Jun 05 03:06:55 PDT 2008 Created on 07 Nov 2007, 04:57:14 hrs US/Eastern Bugs fixed: 300500, 300501, 300502 Files Touched: abc1.sql --> ORACLE_HOME/jlib/abc1.sql abc.sql --> ORACLE_HOME/jlib/abc.sql Patch Location in Inventory: /scratch/userid/oracle/product/11.1.0/db_1/inventory/oneoffs/300500 Patch Location in Storage area: /scratch/userid/oracle/product/11.1.0/db_1/.patch_storage/ 300500_Nov_07_2007_04_57_14 -------------------------------------------------------------------------------- OPatch succeeded.
注意: パッチ操作を実行する前に、ORACLE_HOME をバックアップすることを強くお薦めします。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
をリストアできます(バックアップされている場合)。バックアップが存在しない場合は、ソフトウェアを再インストールする必要があります。
注意: OPatchには、Oracle Universal Installer(OUI)を必要としない、スタンドアロンのパッチの適用方法もあります。これらのコマンドのオプションは、OUIを使用してパッチを適用する標準的な方法に対して提供されるオプションのサブセットです。スタンドアロンのパッチの適用とコマンドで使用可能なオプションの詳細は、「スタンドアロンのパッチ適用」を参照してください。 |
OPatchユーティリティは<Path_to_Oracle_Home>/OPatch
ディレクトリにあり、様々なコマンドおよびオプションを使用して実行できます。次の文字列は、OPatchユーティリティの構文を示しています。
<Path_to_OPatch>
/opatch[-help] [-r[eport]] [command]
[-option]
構文の詳細は次のとおりです。
help: コマンドのヘルプ・メッセージを表示します。
report: アクションを実行せずに出力します。
command: 表7-1に示すOPatchコマンドのいずれかです。
option: 表7-2以降に示すOPatchコマンド・オプションのいずれかです。
表7-1 OUIベースのOPatchのコマンド
コマンド | 説明 |
---|---|
apply |
個別パッチをインストールします。詳細は、「OUIベースのOracleホームのapplyコマンド」を参照してください。 |
napply |
n個のパッチをインストールします(したがってnapply)。詳細は、「OUIベースのOracleホームのnapplyコマンド」を参照してください。 |
lsinventory |
システムに現在何がインストールされているかをリストします。詳細は、「OUIベースのOracleホームのlsinventoryコマンド」を参照してください。 |
query |
特定のパッチの詳細を問い合せます。詳細は、「OUIベースのOracleホームのqueryコマンド」を参照してください。 |
rollback |
個別パッチを削除します。詳細は、「OUIベースのOracleホームのrollbackコマンド」を参照してください。 |
nrollback |
n個のパッチを削除します(したがってnrollback)。詳細は、「OUIベースのOracleホームのnrollbackコマンド」を参照してください。 |
version |
パッチ・ツールの現在のバージョンを出力します。詳細は、「OUIベースのOracleホームのversionコマンド」を参照してください。 |
任意のコマンドの追加情報を表示するには、次のコマンドを使用します。
<Path_to_OPatch>
/opatchcommand
-help
Perlの場合は、次のコマンドを使用します。
perl opatch.pl command
-help
このコマンドは、現在のディレクトリのOracleホームに個別パッチを適用します。環境変数ORACLE_HOME
は、パッチを適用するOracleホームに設定する必要があります。
構文
このコマンドには次の構文を使用します。
opatch apply [-delay <value> ] [ -force ] [-invPtrLoc <Path to oraInst.loc> ] [-jre <LOC> ] [-local ] [-minimize_downtime ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ] [-retry <value> ] [-silent ] [-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped quotes> [-opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [-connectString <List of connect strings>] [-runSql] [-sqlScript <path of the sql file>] [-ptlSchema <portal schema>] [-ptlPassword <portal password>] [-ptlConnect <portal connect string>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] [<Patch Location>]
オプション
表7-2に、このコマンドで使用可能なオプションを示します。
表7-2 OUIパッチのapplyのオプション
オプション | 説明 |
---|---|
connectString |
パッチを適用する必要のあるデータベース・インスタンスのリストを指定します。このオプションの値は、次の構文を使用して指定します。
例:
SIDは必須ですが、その他のパラメータは、OPatchによってデフォルトの値が提供されるため、必要に応じて無視できます。 注意: システムがRAC設定の一部ではなく、ローカル・ノードにのみパッチを適用する場合、ノード名に空の文字列を指定します。 |
delay |
インベントリのロックに失敗した場合に、次のインベントリ・ロックを再試行する前に待機する秒数を指定します。このオプションは、 |
force |
競合するパッチをシステムから削除します。パッチの適用を妨げる競合が存在する場合、このオプションを使用してパッチを適用できます。OPatchは、現在のパッチを適用する前に、競合するパッチをすべて削除します。 |
init |
前提条件チェックを行う前に実行される |
invPtrLoc |
|
jre |
Oracleホーム・ディレクトリ下のデフォルトの場所のかわりに、特定のJRE(Java)の場所を使用するようにOPatchに指示します。 |
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_relink |
このオプションは、 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がないことを指定します。インベントリのみを更新します。preスクリプトおよびpostスクリプトも実行しません。 |
oh |
デフォルトのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_init_end |
initオプションの終わりを示します。 |
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
post |
|
pre |
|
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
ptlConnect |
ポータル・スキーマの接続文字列の資格証明を指定します。 |
ptlPassword |
ポータル・スキーマのパスワードを指定します。 |
ptlSchema |
ポータル・リポジトリのスキーマを指定します。 |
remote_nodes |
リモート・ノードのリストをOPatchに示します。このオプションは、Oracle Real Application Clusters環境で使用できます。ノード名はカンマで区切る必要がありますがスペースは不要です。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchが再試行する必要のある回数を示します。 |
runSql |
SQLスクリプトおよびSQLプロシージャが指定のパッチに存在する場合、これらを実行するようにOPatchに指示します。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
silent |
ユーザーとの対話を抑止し、回答をデフォルトでyesに設定します。 |
sqlScript |
パッチの適用後、OPatchが実行する必要のあるカスタムSQLスクリプトを指定します。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
注意: パッチがSQL変更から構成される場合は、SQLスクリプトを適用するパッチに含まれているパッチのREADMEの手順に従ってください。 |
このコマンドは、複数のOracleホームに複数の個別パッチを同時に適用します。
構文
このコマンドには次の構文を使用します。
opatch napply [patch_location] [-id comma-separated list of patch IDs] [-delay <value> ] [ -force ] [-invPtrLoc <Path to oraInst.loc> ] [-jdk <LOC> ] [-jre <LOC> ] [ -local ] [-minimize_downtime ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ] [-retry <value> ] [-silent ] [-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes> [-opatch_post_end] ] [-no_sysmod] [ -property_file <Path to property file> ] [ -local_node <Local node name> ] [ -remote_nodes <List of remote nodes (node1,node2)> ] [ -all_nodes ] [ -phBaseFile <Path to the file containing the location of the patches to be applied> ] [-skip_subset] [-skip_duplicate] [-report]
例
次の例では、<patch_location>
ディレクトリの下にあるすべてのパッチを適用します。
opatch napply <patch_location>
次の例では、<patch_location>
ディレクトリの下にあるパッチ1、2および3を適用します。
opatch napply <patch_location> -id 1,2,3
次の例では、<patch_location>
ディレクトリの下にあるすべてのパッチを適用します。OPatchは、重複するパッチおよびサブセット・パッチ(<patch_location>
の下にあるパッチで、Oracleホームにインストールされているパッチのサブセット)を省略します。
opatch napply <patch_location> -skip_subset -skip_duplicate
詳細は、表7-3のskip_subset
オプションの説明を参照してください。
次の例では、<patch_location>
ディレクトリの下にあるパッチ1、2および3を適用します。OPatchは、重複するパッチおよびサブセット・パッチ(<patch_location>
の下にあるパッチで、Oracleホームにインストールされているパッチのサブセット)を省略します。
opatch napply <patch_location> -id 1,2,3 -skip_subset -skip_duplicate
詳細は、表7-3のskip_subset
オプションの説明を参照してください。
オプション
表7-3に、このコマンドで使用可能なオプションを示します。
表7-3 OUIパッチのnapplyのオプション
オプション | 説明 |
---|---|
all_nodes |
全ノード・モードを使用してパッチを適用します。 |
delay |
インベントリのロックに失敗した場合に、次のインベントリ・ロックを再試行する前に待機する秒数を指定します。このオプションは、 |
force |
競合するパッチをシステムから削除します。パッチの適用を妨げる競合が存在する場合、このオプションを使用してパッチを適用できます。OPatchは、現在のパッチを適用する前に、競合するパッチをすべて削除します。 |
invPtrLoc |
|
jdk |
Oracleホーム・ディレクトリ下のデフォルトの場所のかわりに、特定のJDK(jar)の場所を使用するようにOPatchに指示します。 |
jre |
Oracleホーム・ディレクトリ下のデフォルトの場所のかわりに、特定のJRE(Java)の場所を使用するようにOPatchに指示します。 |
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_relink |
このオプションは、 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がないことを指定します。インベントリのみを更新します。preスクリプトおよびpostスクリプトも実行しません。 |
oh |
デフォルトのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
phBaseFile |
|
post |
|
pre |
|
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
remote_nodes |
リモート・ノードのリストをOPatchに示します。このオプションは、Oracle Real Application Clusters環境で使用できます。ノード名はカンマで区切る必要がありますがスペースは不要です。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchが再試行する必要のある回数を示します。 |
silent |
ユーザーとの対話を抑止し、回答をデフォルトでyesに設定します。 |
skip_duplicate |
Oracleホームにインストールされている他のパッチと重複しているパッチの適用を省略します。2つのパッチが同じセットの不具合を修正する場合、これらは重複しています。 |
skip_subset |
Oracleホームにインストールされている他のパッチのサブセットであるパッチの適用を省略します。あるパッチが別のパッチで修正される不具合のサブセットを修正する場合、前者は後者のサブセットになります。 たとえば、不具合の1および2を修正するパッチAに |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
このコマンドは、特定のOracleホームのインベントリを示すか、または検出できるすべてのインストールを表示します。このコマンドに必要なオプションはありません。
構文
このコマンドには次の構文を使用します。
opatch lsinventory [-all ][-all_nodes] [-bugs_fixed asc|desc] [-delay <value> ][-detail] [-group_by_date] [-invPtrLoc <Path to oraInst.loc> ][-jre <LOC> ] [-oh <ORACLE_HOME> ] [-patch asc|desc] [-property_file <path to property file>] [-retry <value> ]
コマンド・オプションの説明は、表7-4を参照してください。
-detailオプションの例
次の例では、opatch lsinventory -detail
の出力を示します。
Oracle interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/11.1.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/11.1.0/db_1/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /home/oracle_TEST/product/11.1.0/db_1/oui Log file location : /home/oracle_ TEST/product/11.1.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/11.1.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.1.0.6.6 There are 1 products installed in this Oracle Home. Installed Products (10): Agent Required Support Files 11.1.0.6.6 Assistant Common Files 11.1.0.6.6 Bali Share 1.1.18.0.0 Buildtools Common Files 11.1.0.6.6 Character Set Migration Utility 11.1.0.6.6 Database Configuration and Upgrade Assistants 11.1.0.6.6 Database SQL Scripts 11.1.0.6.6 Database Workspace Manager 11.1.0.6.6 DBJAVA Required Support Files 11.1.0.6.6 Enterprise Edition Options 11.1.0.6.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/11.1.0/db_1/inventory/oneoffs/111000 Patch Location in Storage area: /home/oracle_TEST/product/11.1.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 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/11.1.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/11.1.0/db_1/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /home/oracle_TEST/product/11.1.0/db_1/oui Log file location : /home/oracle_ TEST/product/11.1.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/11.1.0/db_ 1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt -------------------------------------------------------------------------------- Installed Top-level Products (2): Oracle Database 11g 11.1.0.6.6 Oracle Database 11g Release 2 Patch Set 2 11.1.0.6.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 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/11.1.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/11.1.0/db_1/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /home/oracle_TEST/product/11.1.0/db_1/oui Log file location : /home/oracle_ TEST/product/11.1.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/11.1.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 2008, 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 2007, 04:57:14 hrs US/Eastern Bugs fixed: 300500, 300501, 300502 -------------------------------------------------------------------------------- OPatch succeeded.
lsinventoryのオプション
表7-4に、このコマンドで使用可能なオプションを示します。
表7-4 OUIパッチのlsinventoryのオプション
オプション | 説明 |
---|---|
all |
Oracleホーム・ディレクトリで見つかったそれぞれの名前およびインストール・ディレクトリをレポートします。 |
all_nodes |
RACシステムのすべてのノードで指定のOracleホームにインストールされたパッチをレポートします。すべてのノードのOracleバイナリのサイズおよびチェックサムも出力します。 |
bugs_fixed |
インストール済のパッチで修正された不具合を表形式でレポートします。レポートには、修正された不具合に加えて、インストール済のパッチ、インストール時刻および不具合の説明も表示されます。修正済の不具合は、インストールされているパッチ別にソートされます。デフォルトでは、パッチはインストールされた時間に従って降順で表示され、各パッチ内の不具合は昇順で表示されます。このオプションで「asc」または「desc」を使用すると、各パッチの不具合のソート順序を強制できます。 patchまたはpatch_idオプションとともにこのオプションを使用すると、インストール済のパッチのソート順序に従うことができます。 |
delay |
retryを指定する場合、インベントリのロックが失敗したときに、次のインベントリ・ロックを再試行する前に待機する秒数をOPatchに指示します。 |
detail |
インストールされている製品およびその他の詳細をレポートします。 |
group_by_date |
インストール済のすべてのパッチを、Oracleホームにインストールされた日付ごとにグループ化するようにOPatchに指示します。 |
invPtrLoc |
|
jre |
OPatchがOracleホーム・ディレクトリ下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
patch |
OracleホームにインストールされているパッチIDをインストール時刻に基づいて昇順(asc)または降順(desc)にリストします。デフォルトは降順です。 |
property_file |
OPatchが使用する必要のあるユーザー定義のプロパティ・ファイルを示します。プロパティのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するプロパティ・ファイルよりも優先されます。 |
retry |
インベントリのロックに失敗した場合にOPatchが再試行する必要のある回数を指定します。 |
このコマンドは、特定のパッチの詳細を問い合せます。パッチおよびパッチが適用されるシステムに関する情報を提供します。
構文
このコマンドには次の構文を使用します。
opatch query [-all] [-jre <LOC> ] [-oh <LOC> ] [-get_component] [-get_os] [-get_date] [-get_base_bug] [-is_portal_patch] [-is_rolling_patch] [-is_online_patch] [-has_sql] [ <Patch Location> ]
オプション
表7-5に、queryコマンドで使用可能なオプションを示します。
表7-5 queryのオプション
オプション | 説明 |
---|---|
all |
パッチに関するすべての情報を取得します。すべての使用可能なオプションを設定することと同じです。 |
get_base_bug |
パッチで修正された不具合を取得します。 |
get_component |
パッチが影響を与えるコンポーネントを取得します。 |
get_date |
パッチを作成した日付と時刻を取得します。 |
has_sql |
パッチにSQL関連のアクションがある場合、trueを示します。それ以外は、falseになります。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
is_online_patch |
パッチがオンライン・パッチの場合、trueを示します。それ以外は、falseになります。 |
is_portal_patch |
パッチにポータル・アクションがある場合、trueを示します。それ以外は、falseになります。 |
is_rolling_patch |
パッチがローリング・パッチの場合、trueを示します。それ以外は、falseになります。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
このコマンドは、参照IDで示された適切なOracleホーム・ディレクトリから既存の個別パッチを削除します。
構文
このコマンドには次の構文を使用します。
opatch rollback -id <ID> [-ph <Patch Location>] [-delay <value>] [-invPtrLoc <Path to oraInst.loc> ] [-jre <LOC> ] [-local] [-oh <ORACLE_HOME>] [-retry <value>] [-silent] [-verbose] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [-connectString <List of connect strings>] [-ptlSchema <portal schema>] [-ptlPassword <portal password>] [-ptlConnect <portal connect string>] [-runSql] [-sqlScript <path of the sql file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report]
オプション
表7-6に、rollbackコマンドで使用可能なオプションを示します。
表7-6 OUIパッチのrollbackのオプション
オプション | 説明 |
---|---|
all_nodes |
全ノード・モードを使用してパッチをロールバックします。 |
connectString |
パッチを適用する必要のあるデータベース・インスタンスのリストを指定します。このオプションの値は、次の構文を使用して指定します。
例:
SIDは必須ですが、その他のパラメータは、OPatchによってデフォルトの値が提供されるため、必要に応じて無視できます。 注意: システムがRAC設定の一部ではなく、ローカル・ノードにのみパッチを適用する場合、ノード名に空の文字列を指定します。 |
delay |
|
id |
ロールバックするパッチを指定します。すべてのパッチ識別子を表示するには |
init |
前提条件チェックを行う前に実行されるinitスクリプトにパラメータを渡します。このオプションの値は、二重引用符で囲む必要があります。 |
invPtrLoc |
|
jre |
OPatchがOracleホーム・ディレクトリ下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
local |
OPatchがローカル・ノードをロールバックし、ローカル・ノードのインベントリを更新することを指定します。パッチまたはインベントリ更新は他のノードに伝播されません。 このオプションは、Oracle Real Application Clusters環境および非クラスタ化環境で使用できます。パッチを適用する前にクラスタ全体が停止している場合は、非ローリング・パッチにこのオプションを使用できます。 |
local_node |
このノードがロールバックに使用されるクラスタのローカル・ノードであることをOPatchに指定します。 このオプションは、Oracle Real Application Clusters環境で使用できます。 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がなく、インベントリのみを更新することを指定します。preスクリプトおよびpostスクリプトも実行しません。 |
no_relink |
このオプションは、パッチで |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_init_end |
|
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
ph |
有効なパッチ・ディレクトリ領域を指定します。ロールバックは、パッチ・ディレクトリに見つかったコマンド・タイプを使用して、現在のオペレーティング・システムに使用されているコマンドを識別します。 |
post |
|
pre |
|
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
ptlConnect |
ポータル・スキーマの接続文字列の資格証明を指定します。 |
ptlSchema |
ポータル・リポジトリのスキーマを指定します。 |
ptlPassword |
ポータル・スキーマのパスワードを指定します。 |
remote_nodes |
パッチのロールバックに使用されるリモート・ノードのリストをOPatchに指定します。ノード名はカンマで区切る必要がありますがスペースは不要です。 このオプションは、Oracle Real Application Clusters環境で使用できます。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchが再試行する必要のある回数を指示します。 |
runSql |
SQLスクリプトおよびSQLプロシージャが指定のパッチに存在する場合、これらを実行するようにOPatchに指示します。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
sqlScript |
パッチの適用後、OPatchが実行する必要のあるカスタムSQLスクリプトを指定します。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
silent |
ユーザーとの対話を抑止し、yes|noの質問に対する回答をデフォルトでyesに設定します。Real Application Clusters設定では、このオプションはサポートされません。 |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
このコマンドは、複数のOracleホームから複数の個別パッチを同時にロールバックします。
構文
このコマンドには次の構文を使用します。
opatch nrollback -id <comma-separated list of patch IDs> [-delay <value>] [-invPtrLoc <Path to oraInst.loc> ] [-jdk <LOC> ] [-jre <LOC> ] [-local] [-minimize_downtime] [-no_relink] [-oh <ORACLE_HOME> ] [-retry <value>] [-silent] [-verbose] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [ -all_nodes ] [-report]
例
次の例では、Oracleホームにインストールされたパッチ1、2および3をロールバックします。
opatch nrollback -id 1,2,3
オプション
表7-7に、このコマンドで使用可能なオプションを示します。
表7-7 OUIパッチのnrollbackのオプション
オプション | 説明 |
---|---|
all_nodes |
全ノード・モードを使用してパッチをロールバックします。 |
delay |
|
id |
ロールバックするパッチを指定します。すべてのパッチ識別子を表示するには |
invPtrLoc |
|
jdk |
Oracleホーム・ディレクトリ下のデフォルトの場所のかわりに、特定のJDK(jar)の場所を使用するようにOPatchに指示します。 |
jre |
OPatchがOracleホーム・ディレクトリ下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
local |
OPatchがローカル・ノードをロールバックし、ローカル・ノードのインベントリを更新することを指定します。パッチまたはインベントリ更新は他のノードに伝播されません。 このオプションは、Oracle Real Application Clusters環境および非クラスタ化環境で使用できます。パッチを適用する前にクラスタ全体が停止している場合は、非ローリング・パッチにこのオプションを使用できます。 |
local_node |
このノードがロールバックに使用されるクラスタのローカル・ノードであることをOPatchに指定します。 このオプションは、Oracle Real Application Clusters環境で使用できます。 |
minimize_downtime |
OPatchによるパッチの適用が必要なノードの順序を指定します。 このオプションは、Oracle Real Application Clusters環境にのみ適用されます。 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がなく、インベントリのみを更新することを指定します。preスクリプトおよびpostスクリプトも実行しません。 |
no_relink |
このオプションは、パッチで |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
remote_nodes |
パッチのロールバックに使用されるリモート・ノードのリストをOPatchに指定します。ノード名はカンマで区切る必要がありますがスペースは不要です。 このオプションは、Oracle Real Application Clusters環境で使用できます。 |
report |
アクションを実行せずに画面に出力します。 |
retry |
インベントリのロックに失敗した場合にOPatchが再試行する必要のある回数を指示します。 |
silent |
ユーザーとの対話を抑止し、yes|noの質問に対する回答をデフォルトでyesに設定します。Real Application Clusters設定では、このオプションはサポートされません。 |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
スタンドアロンのパッチの適用は、Oracle Universal Installerを使用してインストールされないOracleホームに使用できます。スタンドアロンのパッチの適用では、セントラル・インベントリの登録はありませんが、個別インベントリと今後の競合チェック用のインベントリ・ファイルが生成されます。OPatchはORACLE_HOME
の下にあるOUIディレクトリを使用して、OPatchがOUIベースまたはスタンドアロン・モードのどちらで機能する必要があるかを判断します。
次の項では、スタンドアロンのパッチの適用について説明します。
スタンドアロンのパッチの適用でサポートされないサービス
スタンドアロンのパッチの適用の要件
スタンドアロンのパッチの適用のOPatchコマンド
使用例
スタンドアロンのパッチの適用では、OUTベースのパッチの適用で提供されるほとんどのサービスが提供されます。ただし、スタンドアロンのパッチの適用では、OUTベースのパッチの適用で提供される次のサービスが提供されません。
コンポーネント・インベントリの検索
スタンドアロンのOPatchでは、どのパッチがスタンドアロンのOracleホームに適用されたのかを検索できますが、製品コンポーネントの検索はサポートされていません。たとえば、JDeveloper Oracleホームでopatch lsinventory
を実行する場合、OPatchはそのホームに適用されたパッチのリストを表示します。ただし、ホームに存在するコンポーネントは表示されません。
セントラル・インベントリの検索
opatch lsinventory -all
を実行して、(セントラル・インベントリ・リポジトリによって)ホストに登録されているすべてのOracleホームをリストすることはできません。
スタンドアロンとOUIベース間のパッチの適用の移行
前提として、OUIを使用せずに製品をスタンドアロンとしてインストールした場合、その製品はスタンドアロンになります。たとえば、JDeveloperをインストールした後、(コピーまたは適切なインストールによって)OUIをOracleホームに配置し、OPatchがそのホームをOUIベースのOracleホームとして扱うようにすることはできません。
逆に、OUIを使用して製品をインストールした場合、その製品はOUIベースになります。たとえば、Oracle RDBMSをインストールした後、(削除または適切な削除のいずれかで)OUIを削除し、OPatchがそのホームをスタンドアロンのOracleホームとして扱うようにすることはできません。この場合、OPatchは適切に機能せず、ホームが破損します。
スタンドアロンとOUIベース間でのパッチの相互運用
スタンドアロンとOUTベース間でホームを移行できないため、OPatchはスタンドアロンとOUIベースのOracleホーム間の相互運用をサポートしていません。
クローニングされたスタンドアロンのOracleホームでのシームレスな操作
スタンドアロンのOracleホームS1を別のOracleホームOH2にクローニングする場合、Opatchは新しくクローニングされたOH2で適切に機能しません。
RACのサポート
OPatchはOUIに依存して、RACを検出し、ファイルを伝播します。そのため、スタンドアロンのOPatchではRACをサポートしません。RACの検出は行わず、そのユーティリティは機能しません。つまり、OPatchはopatch apply -local
として常に動作します。OPatchは、ノード間のパッチの伝播をサポートしません。また、スタンドアロンのOPatchでは、opatch util runRemoteMake
(リモート・ノードで再リンクを起動する)などのRAC関連のユーティリティもサポートしません。
パッチ・セット操作の実行
OPatchは、スタンドアロンまたはOUIのどちらのモードでもパッチ・セット操作をサポートしていません。パッチ・セット操作にはOUIを使用する必要があります。
スタンドアロンのパッチの適用には次の環境が必要です。
JREバージョン1.4以上
OUIを使用しないOracleホーム
スタンドアロンのパッチの適用をサポートするOPatch
OPatchが正しく機能するには、すべての必要なファイルおよびディレクトリが存在する必要があります。いずれかのファイルが失われている場合、パッチが適用されていないことがOPatchによって認識されます。その場合、スタンドアロンのインベントリを安定した状態に戻して、修正アクションを実行する必要があります。
OUIベースのパッチの適用と同様に、OPatchユーティリティは<Path_to_Oracle_Home>/OPatch
ディレクトリにあり、様々なコマンドおよびオプションを使用して実行できます。次の文字列は、OPatchユーティリティの構文を示しています。
<Path_to_OPatch>
/opatch[-help] [-r[eport]] [command]
[-option]
構文の詳細は次のとおりです。
help: コマンドのヘルプ・メッセージを表示します。
report: アクションを実行せずに出力します。
command: OPatchコマンドのいずれかです。
option: OPatchコマンド・オプションのいずれかです。
表7-8に、スタンドアロンのパッチの適用で使用可能なコマンドを示します。
表7-8 スタンドアロンのOPatchのコマンド
コマンド | 説明 |
---|---|
apply |
個別パッチをインストールします。詳細は、「スタンドアロンのOPatchのapplyコマンド」を参照してください。 |
lsinventory |
システムに現在何がインストールされているかをリストします。詳細は、「スタンドアロンのOPatchのlsinventoryコマンド」を参照してください。 |
query |
特定のパッチの詳細を問い合せます。詳細は、「スタンドアロンのOPatchのqueryコマンド」を参照してください。 |
rollback |
個別パッチを削除します。詳細は、「スタンドアロンのOPatchのrollbackコマンド」を参照してください。 |
version |
パッチ・ツールの現在のバージョンを出力します。詳細は、「スタンドアロンのOPatchのversionコマンド」を参照してください。 |
次の項では、各コマンドの構文とオプションを示します。
applyコマンドは、現在のディレクトリのスタンドアロンのホームに個別パッチを適用します。
構文
このコマンドには次の構文を使用します。
opatch apply [ -force ] [-jre <LOC> ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ][-silent ][-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped quotes> [-opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] [<Patch Location>]
オプション
表7-9に、applyコマンドで使用可能なオプションを示します。
表7-9 スタンドアロンのパッチのapplyのオプション
オプション | 説明 |
---|---|
force |
スタンドアロンのOracleホームの製品番号とバージョン番号を変更できるため、競合するパッチをシステムから排除します。OPatchは、現在のパッチを適用する前に、競合するパッチをすべて削除します。 |
init |
前提条件チェックを行う前に実行される |
jre |
Oracleホーム・ディレクトリ下のデフォルトの場所のかわりに、特定のJRE(Java)の場所を使用するようにOPatchに指示します。 |
no_bug_superset |
現在のパッチで修正する不具合が、Oracleホーム・ディレクトリにインストールされているパッチで修正済の不具合のスーパーセットであるか同一の場合は、エラーにすることを指定します。 |
no_inventory |
インベントリの読取りおよび更新を省略します。 |
no_relink |
このオプションは、 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がないことを指定します。インベントリのみを更新します。preスクリプトおよびpostスクリプトも実行しません。 |
oh |
デフォルトのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_init_end |
initオプションの終わりを示します。 |
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
post |
|
pre |
|
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
silent |
ユーザーとの対話を抑止し、回答をデフォルトでyesに設定します。 |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
lsinventoryコマンドは、特定のOracleホームのインベントリを示すか、または検出できるすべてのインストールを表示します。このコマンドに必要なオプションはありません。
構文
このコマンドには次の構文を使用します。
opatch lsinventory [-all ] [-detail ] [-jre <LOC> ] [-oh <ORACLE_HOME> ] [-patch] [-oh] [-property_file <path to property file>]
オプション
表7-10に、lsinventoryコマンドで使用可能なオプションを示します。
表7-10 スタンドアロンのパッチのlsinventoryのオプション
オプション | 説明 |
---|---|
all |
Oracleホーム・ディレクトリで見つかったそれぞれの名前およびインストール・ディレクトリをレポートします。 |
detail |
インストールされている製品およびその他の詳細をレポートします。 |
jre |
OPatchがOracleホーム・ディレクトリ下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
patch |
Oracleホームにインストールされたパッチを指定します。 |
property_file |
OPatchが使用する必要のあるユーザー定義のプロパティ・ファイルを示します。プロパティのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するプロパティ・ファイルよりも優先されます。 |
このコマンドは、特定のパッチの詳細を問い合せます。パッチおよびパッチが適用されるシステムに関する情報を提供します。
構文
このコマンドには次の構文を使用します。
opatch query [-all] [-jre <LOC> ] [-oh <LOC> ] [-get_component] [-get_os] [-get_date] [-get_base_bug] [-is_portal_patch] [-is_rolling_patch] [-is_online_patch] [-has_sql] [ <Patch Location> ]
オプション
表7-11に、queryコマンドで使用可能なオプションを示します。
表7-11 queryのオプション
オプション | 説明 |
---|---|
all |
パッチに関するすべての情報を取得します。すべての使用可能なオプションを設定することと同じです。 |
get_base_bug |
パッチで修正された不具合を取得します。 |
get_component |
パッチが影響を与えるコンポーネントを取得します。 |
get_date |
パッチを作成した日付と時刻を取得します。 |
has_sql |
パッチにSQL関連のアクションがある場合、trueを示します。それ以外は、falseになります。SQLおよびPL/SQLのパッチの適用の詳細は、「スキーマのパッチの適用」を参照してください。 |
is_online_patch |
パッチがオンライン・パッチの場合、trueを示します。それ以外は、falseになります。 |
is_portal_patch |
パッチにポータル・アクションがある場合、trueを示します。それ以外は、falseになります。 |
is_rolling_patch |
パッチがローリング・パッチの場合、trueを示します。それ以外は、falseになります。 |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
rollbackコマンドは、参照IDで示された適切なOracleホーム・ディレクトリから既存の個別パッチを削除します。
構文
このコマンドには次の構文を使用します。
opatch rollback -id <ID> [-ph <Patch Location>] [-jre <LOC> ] [-oh <ORACLE_HOME>] [-silent] [-verbose] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <path to property file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report]
オプション
表7-12に、rollbackコマンドで使用可能なオプションを示します。
表7-12 スタンドアロンのパッチのrollbackのオプション
オプション | 説明 |
---|---|
id |
ロールバックするパッチを指定します。すべてのパッチ識別子を表示するには |
init |
前提条件チェックを行う前に実行されるinitスクリプトにパラメータを渡します。このオプションの値は、二重引用符で囲む必要があります。 |
jre |
OPatchがOracleホーム・ディレクトリ下のデフォルトの場所のかわりに使用する特定のJRE(Java)の場所を指定します。 |
no_sysmod |
OPatchでシステム内のファイルを更新する必要がなく、インベントリのみを更新することを指定します。preスクリプトおよびpostスクリプトも実行しません。 |
no_relink |
このオプションは、パッチで |
oh |
デフォルト・ディレクトリのかわりに使用するOracleホーム・ディレクトリを指定します。環境変数 |
opatch_init_end |
|
opatch_post_end |
|
opatch_pre_end |
|
Patch Location |
パッチの場所のパスを示します。場所を指定しない場合、OPatchは現在のディレクトリをパッチの場所とします。 |
ph |
有効なパッチ・ディレクトリ領域を指定します。ロールバックは、パッチ・ディレクトリに見つかったコマンド・タイプを使用して、現在のオペレーティング・システムに使用されているコマンドを識別します。 |
post |
|
pre |
|
property_file |
OPatchが使用するユーザー定義のプロパティ・ファイルを指定します。プロパティ・ファイルのパスは絶対パスにする必要があります。このプロパティ・ファイルは、OPatchが提供するファイルよりも優先されます。 |
report |
アクションを実行せずに画面に出力します。 |
silent |
ユーザーとの対話を抑止し、yes|noの質問に対する回答をデフォルトでyesに設定します。Real Application Clusters設定では、このオプションはサポートされません。 |
verbose |
画面およびログ・ファイルにOPatchの詳細を出力します。 |
次の項では、次のタイプの操作に対してスタンドアロンのパッチの適用を実装する際に管理者が遭遇する可能性のあるシナリオを示します。
インベントリ
パッチの適用
ユーティリティ
次の表に、使用例の目的と前提条件、およびパッチの適用のプロセスで発生するプロセスを示します。
表7-13 パッチ情報の取得
使用例のカテゴリ | 説明 |
---|---|
目的 |
スタンドアロンのOracleホームにインストールされている個別パッチのリストを表示します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
表7-14 パッチの詳細情報の取得
使用例のカテゴリ | 説明 |
---|---|
目的 |
スタンドアロンのOracleホームにインストールされている個別パッチのリストの詳細を表示します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
次の表に、使用例の目的と前提条件、およびパッチの適用のプロセスで発生するプロセスを示します。
表7-15 個別パッチの適用 - ケース1
使用例のカテゴリ | 説明 |
---|---|
目的 |
スタンドアロンのOracleホームに個別パッチを適用します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
表7-16 個別パッチの適用 - ケース2
使用例のカテゴリ | 説明 |
---|---|
目的 |
別のOUIベースのOracleホーム内に存在する個別パッチをスタンドアロンのOracleホームに適用します。 |
前提条件 |
スタンドアロンのOracleホームに、OUIベースのOracleホームとは異なるディレクトリ・パスがあること。たとえば、OUIベースのOracleホームのパスが |
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
表7-17 個別パッチの適用 - ケース3
使用例のカテゴリ | 説明 |
---|---|
目的 |
スタンドアロンのOracleに個別パッチを適用します。OPatchは、スタンドアロンのように見えるOracleホームをOUIベースとして検出します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
表7-18 適用された個別パッチのロールバック
使用例のカテゴリ | 説明 |
---|---|
目的 |
以前にスタンドアロンのOracleホームに適用された個別パッチをロールバックします。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
|
OPatchのレスポンス |
|
次の表に、使用例の目的と前提条件、およびパッチの適用のプロセスで発生するプロセスを示します。
表7-19 任意のXMLファイルのロード
使用例のカテゴリ | 説明 |
---|---|
目的 |
XMLファイルをロードして、そのXML解析が可能であることを確認します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
多くの場合、loadXMLユーティリティはデバッグおよびトラブルシューティングのツールとして使用されることに注意してください。 |
OPatchのレスポンス |
|
表7-20 パッチの適用の確認
使用例のカテゴリ | 説明 |
---|---|
目的 |
パッチがOracleホームに適用されたことを確認します。 |
前提条件 |
|
ユーザーの入力 |
次のコマンドを入力します。
OPatchがOracleホームにパッチを適用すると、パッチの確認が自動的に開始されることに注意してください。パッチの適用後、 |
OPatchのレスポンス |
|
スキーマのパッチは2種類あります。
SQLパッチ: これは、プロシージャとスキーマの変更を更新してOracleデータベースにパッチを適用します。
PL/SQLパッチ: これは、SQLパッチと同様に、プロシージャとスキーマの変更を更新してOracleデータベースにパッチを適用します。ただし、PL/SQLパッチはこれらのプロシージャをロールバック用にバックアップできるように、パッチ・メタデータ内にプロシージャ名も示します。
次の項では、次のトピックについて説明します。
スキーマのパッチの適用のオプション
スタンドアロンのSQLの実行
表7-21に、OPatchが適用およびロールバックに対してサポートするスキーマのパッチの適用のオプションを示します。
表7-21 スキーマのパッチの適用のオプション
オプション | 説明 |
---|---|
-runSql |
パッチからSQLスクリプトを読み取り、指定のSIDで実行するようにOPatchに指示します。 |
-sqlScript |
このカスタムSQLスクリプトを実行するようにOPatchに指定します。これはオプションのパラメータです。 |
-connectString |
パッチが適用されるデータベース・インスタンスのSID、ユーザーおよびパスワードのリストを提供します。各エントリはカンマ(,)で区切られます。このオプションの値には、次の形式が使用されます。
|
OPatchには、指定のデータベース・インスタンスにのみパッチを適用するSQLスクリプトを実行するユーティリティがあります。通常の適用またはロールバックのセッションを使用してSQLプロシージャのアクションを適用またはロールバックできない場合にのみ、このユーティリティを使用します。
適用の場合の構文は次のとおりです。
opatch util applySql –id <patchIDs> -connectString <SID1:USER1:PASSWORD1:NODE1>
ロールバックの場合の構文は次のとおりです。
opatch util rollbackSql –ph <patchLocation> (or) –phBaseFile <filename> (or) –phBaseDir <dirname> -connectString <SID1:USER1:PASSWORD1:NODE1>
標準のパッチには、通常、.o
(オブジェクト)ファイルまたは.a
(アーカイブ)ライブラリ(あるいはその両方)が含まれているため、RDBMSバイナリの再リンクが必要です。一方、オンライン・パッチには.so
ファイルが含まれています。これは、動的な共有ライブラリであり、RDBMSバイナリの再リンクは不要です。結果として再リンクが必要ないため、RDBMSインスタンスの実行中にオンライン・パッチを適用またはロールバックできます。これにより、停止時間がゼロで、オンライン・パッチをインストールまたは削除する時間が大幅に短縮されるため、管理が容易になります。
標準RDBMSパッチのインストールは、インスタンスの停止、再リンクおよびインスタンスの起動が必要になるため、時間がかかります。一方で、オンライン・パッチはわずか数秒でインストールできます。
オンライン・パッチは、Oracle RDBMSにのみ適用可能であり、その他の製品には適用できません。現在、オンライン・パッチはWindowsでサポートされていません。次のUNIXプラットフォームでのみサポートされています。
Linux x86 32ビット
Linux IA64
Linux PPC 64
Solaris 64ビット
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へのこのようなパッチの適用に関する詳細を示します。
図7-1に、全ノードへのパッチの適用に関する基本的な例を示します。
システムA、BおよびCは、このクラスタのノードです。このクラスタで全ノードへのパッチの適用を実行する場合、システムA、BおよびCを停止して、これらすべてのノードにパッチを適用し、システムA、BおよびCを再起動します。
ローリング方式のパッチの適用では、各ノードを停止し、パッチを適用した後、各ノードを再起動します。クラスタ内のすべてのノードにパッチが適用されるまで、ノードごとに別々にこの処理を実行します。これは、パッチの適用中にまったく停止時間がなく、一度に1つのシステムしか停止されないため、Real Application Clusters設定に個別パッチを適用する最も効率的な方法です。このモードで適用できるのは、一部のパッチのみです。このタイプは、一般にパッチ・メタデータで指定されます。
図7-2に、ローリング方式のパッチの適用の基本的な例を示します。
このクラスタでローリング方式のパッチの適用を実行する場合、パッチはローリング方式で適用されます。最初にシステムAを停止し、このシステムにパッチを適用した後、システムを再起動します。システムBおよびシステムCについても同じ手順を実行します。
最小停止時間のパッチの適用では、ノードがセットに分割されます。まず、最初のセットを停止して、パッチを適用します。その後で、2番目のセットを停止します。次に最初のセットを起動し、2番目のセットにパッチを適用します。ここで2番目のセットを起動します。この時点で、クラスタのすべてのノードにパッチが適用されています。この方法では、両方のセットが停止している場合のReal Application Clustersの停止時間が短くなります。-minimize_downtime
コマンドライン・オプションを指定することによって、このモードになります。レスポンス・ファイルからこのオプションをアクティブにすることもできます。
図7-3に、最小停止時間のパッチの適用の基本的な例を示します。
システムA、BおよびCは、このクラスタのノードです。これは2つのセットに分割されています。セット1にはシステムAおよびBがあり、セット2にはシステムCがあります。このクラスタで最小停止時間のパッチの適用を実行する場合、セット1を停止して、パッチを適用します。ここでセット2を停止します。次にセット1を起動し、セット2にパッチを適用します。パッチを適用したら、セット2を再起動します。これで、セット1と2の両方にパッチが適用されます。
すべてのパッチが相互に互換性があるとはかぎりません。たとえば、パッチが適用され、そのパッチで修正されたすべての不具合が、別のパッチを適用した後に再び出現する場合があります。これを競合状況といいます。OPatchはこのような状況を検出し、競合が検出された場合にエラーを生成します。
OPatchは、次のタイプの競合を検出できます。
あるパッチで修正されたすべての不具合が、これから適用するパッチによっても修正される場合、このパッチ(適用するパッチ)はすでに適用されているパッチのスーパーセットとみなされます。不具合のスーパーセット条件が検出された場合は、エラー状況とみなされません。すべてのサブセット・パッチがシステムから削除され、新しいパッチが適用されます。
例
次のシナリオについて考えます。
OracleホームにインストールされたパッチAは、不具合の1、2および3を修正しました。
OracleホームにインストールされたパッチBは、不具合の10、11および12を修正しました。
これからインストールするパッチCは、不具合の1、2、3および4を修正します。
パッチCは、パッチAのスーパーセットとみなされます。
-no bug supersetフラグの使用
現在のパッチで修正する不具合が、Oracleホーム・ディレクトリにインストールされているパッチで修正済の不具合のスーパーセットであるか同一の場合にOPatchをエラーにするには、-no_bug_superset
フラグを使用します。
$ OPatch/opatch apply -no_bug_superset <Path_To_Patch>
次の例の出力は、-no_bug_superset
フラグを使用したときに表示されるメッセージを示しています。
Oracle interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved.. Oracle Home : /home/oracle_TEST/product/11.1.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/11.1.0/db_1/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /home/oracle_TEST/product/11.1.0/db_1/oui Log file location : /home/oracle_TEST/product/11.1.0/db _1/cfgtoollogs/opatch/opatch-2008_May_25_14-03-33-IST_Wed.log ApplySession applying interim patch '111000' to OH '/home/oracle _TEST/product/11.1.0/db_1' Apply Session failed: ApplySession failed to prepare the system. Interim patch 111000 is a superset of the patch(es) [ 111000 ] in OH /home/oracle _TEST/product/11.1.0/db_1 System intact, OPatch will not attempt to restore the system OPatch failed with error code 73
適用するパッチが、Oracleホームにインストールされた他のパッチのサブセットである場合があります。
例
次のシナリオについて考えます。
OracleホームにインストールされたパッチAは、不具合の1、2および3を修正しました。
OracleホームにインストールされたパッチBは、不具合の10、11および12を修正しました。
これからインストールするパッチDは、不具合の1および2を修正します。
パッチDはパッチAのサブセットです。
skip_subsetオプションの使用
以前にOracleホームに適用され、現在適用する他のパッチのサブセットになっているパッチを省略する場合、napply
のskip_subset
オプションを使用できます。たとえば、不具合の1および2を修正するパッチAにnapply
を昨日使用し、不具合の1を修正するパッチBと、不具合の1、2および3を修正するパッチCに対してskip_subset
オプションを指定してnapply
を今日使用する場合、サブセットのパッチAが省略され、パッチCはパッチAのスーパーセットになります。
例7-1では、<patch_location>
ディレクトリの下にあるすべてのパッチを適用します。OPatchは、重複するパッチおよびサブセット・パッチ(<patch_location>
の下にあるパッチで、Oracleホームにインストールされているパッチのサブセット)を省略します。
例7-2では、<patch_location>
ディレクトリの下にあるパッチ1、2および3を適用します。OPatchは、重複するパッチおよびサブセット・パッチ(<patch_location>
の下にあるパッチで、Oracleホームにインストールされているパッチのサブセット)を省略します。
詳細は、表7-3のskip_subset
オプションの説明を参照してください。
重複パッチは、別のパッチで修正された同じ一連の不具合を修正します。たとえば、不具合の1、2および3を修正するパッチAを適用した後、さらに不具合の1、2および3を修正するパッチBを適用する場合、パッチBはパッチAの重複になります。パッチは常にそれ自体の重複になります。
skip_duplicateオプションの使用
このオプションを指定する場合、OPatchは適用するパッチのリストから重複パッチを排除します。たとえば、前述のパッチAに対してnapply
を昨日使用し、パッチAおよび他のパッチに-skip_duplicate
オプションを指定したnapply
を今日使用すると、重複パッチAが省略されます。
不具合の競合は、現在の個別パッチで修正される一連の不具合が、以前にインストールした個別パッチの1つ以上ですでに修正されている不具合の一部と共通する場合に発生します。新しいパッチを適用する前に、競合パッチをロールバックする-force
フラグを指定したapply
コマンドを使用して、パッチの適用を続行する前に不具合の競合を除去する必要があります。
例
次のシナリオについて考えます。
OracleホームにインストールされたパッチAは、不具合の1、2および3を修正しました。
OracleホームにインストールされたパッチBは、不具合の10、11および12を修正しました。
これからインストールするパッチEは、不具合の3および4を修正します。
パッチEはパッチAと競合します。
表7-22は、applyコマンドおよびnapplyコマンドの予期される動作を示しています。
表7-22 applyコマンドおよびnapplyコマンドの予期される動作
コマンド | スーパーセット | サブセット | 重複 | ファイル競合または不具合の競合のパッチ |
---|---|---|---|---|
apply |
OPatchは、自動ロールバックの次にapplyを実行します。 |
マージ・リクエストの後、OPatchは、自動ロールバックの次にapplyを実行します。 |
OPatchは、自動ロールバックの次にreapplyを実行します。 |
OPatchは競合をレポートします。マージ・リクエストの後、OPatchは、自動ロールバックの次にapplyを実行します。 |
napply |
OPatchは、自動ロールバックの次にapplyを実行します。 |
OPatchはサブセットをレポートし、サブセットのパッチを省略します。その他のパッチを引き続き適用します。 |
OPatchは、自動ロールバックの次にreapplyを実行します。 |
OPatchは競合をレポートし、不具合の競合のパッチを適用せずに再実行するように求めます。 -forceオプションを使用し、競合パッチを自動ロールバックして、新しいパッチを適用するようにOPatchに指示することができます。 |
OPatchは、個別パッチを適用する場合に、以前に適用したパッチとの競合を検出およびレポートします。競合がある場合、パッチの適用は失敗します。OPatchの-force
オプションを使用して、このエラーをオーバーライドできます。このオプションを使用する場合、インストーラは最初に競合パッチをロールバックしてから、目的の個別パッチのインストールに進みます。
不具合の競合が発生し、競合するパッチの削除が必要になる場合があります。このプロセスは、パッチのロールバックと呼ばれます。パッチのインストール時、OPatchは、新規パッチで置換されるすべてのファイルのコピーを保存してから、これらのファイルの新規バージョンをロードし、$ORACLE_HOME/.patch_storage
に格納します。これらの保存されたファイルはロールバック・ファイルと呼ばれ、パッチのロールバックを可能にするためのキーとなります。パッチをロールバックする場合、これらのロールバック・ファイルがシステムにリストアされます。-force
フラグを使用してデフォルトの動作を変更するのは、パッチのロールバック・プロセスについて完全に理解している場合のみにしてください。パッチをロールバックするには、次のコマンドを実行します。
$ OPatch/opatch rollback -id <Patch_ID>
次の項では、問題を解決する次のタスクに関する情報と手順を示します。
ログおよびトレースの使用
パッチの適用に失敗したセッションからのリカバリ
OPatchの適用エラーの解決
ロギングとトレースは、デバッグのための一般的な支援機能です。OPatchは、すべての適用、ロールバックおよびlsInventory操作のログを保持します。OPatchが実行されるたびに、新しいログ・ファイルが作成されます。ログ・ファイルは、<ORACLE_HOME>/cfgtoollogs/opatch
ディレクトリにあります。各ログ・ファイルには、操作のタイムスタンプのタグが付けられています。ログ・ファイルにはopatch_<date mm-dd-yyyy>_<time hh-mm-ss>.log
のような名前が付けられます。
たとえば、ログ・ファイルが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/11.1.0/db_1/ OPatch Ver. : 11.1.0.6.6 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /private/oracle/product/11.1.0/db_1/cfgtoollogs/opatch/opatch-2008_Apr_26_23-00-55-PDT_Tue.log
パッチの適用時に、更新は2つのフェーズで行われることがあります。
システム更新: このフェーズでは、Oracleホーム内でファイルが置換されます。
インベントリ更新: このフェーズでは、適用されたパッチの詳細がインベントリに記録されます。
単一インスタンス設定およびReal Application Clusters設定の次のシナリオでは、パッチの適用に失敗したセッションからのリカバリ方法について説明します。
環境変数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がfuser
、make
などのシステム・コマンドを見つけられない
部分的にインストールされた個別パッチを削除できない
メタデータ・ファイルを格納する/etc
ディレクトリ
ペイロード・ファイルを格納する/files
ディレクトリ
同じディレクトリ下の/etc/config/inventory
ファイルおよびアクション・ファイル
OPatchユーティリティをpatch_id
ディレクトリから起動していない場合は、次のコマンドを使用できます。
opatch apply /<Patch_Shiphome>
fuser
、make
などのシステム・コマンドを見つけられない fuser
を使用してアクティブなOracleインスタンスをチェックしています。特定のhp-uxシステムでは、スーパーユーザーのみがfuser
を実行できます。PATHに/tmp
を設定します。
詳細は、「単一インスタンスおよびReal Application Clustersでのチェック」を参照してください。
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