ヘッダーをスキップ

Oracle Database 2日でReal Application Clustersガイド
11g リリース1(11.1)

E05737-03
目次
目次
索引
索引

戻る 次へ

10 Oracleソフトウェアの管理およびパッチの適用

オラクル社では、オラクル社のソフトウェアについてパッチと呼ばれる製品フィックスを発行しています。インストール済のOracleソフトウェアにパッチを適用すると、少数のファイルが置き換えられて特定の不具合が修正されます。OPatchは、Oracleソフトウェアへのパッチ適用を迅速化するオラクル社提供のユーティリティです。

パッチの集まりをパッチ・セットと呼びます。パッチ・セットを適用すると、数多くの様々なファイルおよびユーティリティが変更されます。その結果、Oracle Database 11.1.0.1.0からOracle Database 11.1.0.2.0のように、Oracleソフトウェアのバージョンが変わります。パッチ・セットを適用するには、Oracle Universal Installer(OUI)を使用します。

この章では、Enterprise ManagerおよびOPatchユーティリティを使用して、Oracle Real Application Clusters(Oracle RAC)環境でOracleソフトウェアの管理およびパッチの適用を行う方法について説明します。

この章の内容は次のとおりです。

Oracle Enterprise Managerパッチ・インタフェースの構成

Oracle Enterprise Manager Database Controlを使用すると、OracleMetaLink Webサイトで最新のパッチ・リリースを検索してOracleホームにダウンロードできます。Oracle Enterprise Managerパッチ・インタフェースの構成には、次の2つの手順があります。

OracleMetaLink資格証明の概要

Oracle Enterprise Managerを使用してOracleMetaLinkからパッチをダウンロードするには、Oracle Enterprise Manager Database Control(Database Control)にログインでの資格証明を付与し、Database ControlがOracleMetaLinkに自動的にログインしてパッチ・リリースを検索できるようにします。この資格証明を設定しないと、Database Controlでパッチ・ウィザードを実行できません。

Oracle MetaLink資格証明を設定する方法については、『Oracle Database 2日でデータベース管理者』を参照してください。

参照:

 

Refresh_From_Metalinkジョブの実行

OracleMetaLinkの資格証明を構成した後、インストール済ソフトウェアのクリティカル・パッチ・アドバイザを検索するジョブを作成できます。

OracleMetaLink上のクリティカル・パッチ・アドバイザを検索するジョブを作成するには、次の手順を実行します。
  1. 「クラスタ・データベース: ホーム」ページで、「クリティカル・パッチ・アドバイザ」セクションまで下にスクロールします。「RefreshFromMetalink」をクリックします。


    画像の説明

    このリンクをクリックすると、Oracle Enterprise Managerによって、Refresh_From_Metalink_Jobジョブが作成され、「ジョブ・アクティビティ」ページが表示されます。

  2. 「ジョブ・アクティビティ」ページで、「編集」をクリックし、Refresh_From_Metalink_Jobジョブのスケジュール済実行時間をビジネス要件に合せて変更します。変更終了後、「保存」をクリックします。

  3. Refresh_From_Metalink_Jobジョブを選択して「類似作成」をクリックします。

  4. ジョブ名をRefresh_From_Metalink_Nowに変更して、「スケジュール」をクリックします。

  5. 開始時間に「即時」を選択します。

  6. 反復間隔に「1回のみ」を選択して、「発行」をクリックします。

    「ジョブ・アクティビティ」ページが表示されます。

  7. REFRESH_FROM_METALINK_NOWをクリックします。

    「ジョブ実行: REFRESH_FROM_METALINK_NOW」ページが表示されます。

  8. ジョブ・ステータスが「成功」と表示されるまで、このページをリフレッシュします。

  9. 右上にある「データベース」タブをクリックし、「クラスタ・データベース: ホーム」ページに戻ります。

    参照:

     

パッチの取得

パッチおよびパッチ・セットは、Oracleサポート・サービスのWebサイトであるOracleMetaLinkから入手できます。このサイトは次のURLにあります。

https://metalink.oracle.com

Oracle Enterprise Managerを使用して、OracleMetaLinkにある使用可能なパッチ・リリースを表示できます。このような更新の表示は、パッチ・ウィザードの最初の手順です。このウィザードを使用して、Oracleホームにパッチをダウンロードできます。

Enterprise Managerでパッチ・ウィザードを起動するには、次の手順を実行します。
  1. 「クラスタ・データベース: ホーム」ページで、「インスタンス」セクションまで下にスクロールします。

  2. クラスタ内の最初のインスタンスのリンク(sales.oracle.com_sales1など)をクリックします。

    sales1インスタンスの「データベース・インスタンス: ホーム」ページが表示されます。

  3. ページ上部の「ソフトウェアとサポート」を選択します。

  4. 「データベース・ソフトウェアのパッチ」セクションで、「パッチの適用」をクリックします。

    「パッチの選択」ページが表示されます。

  5. 「パッチの追加」をクリックします。

    「パッチの検索および選択」ページが表示されます。

  6. 「Metalinkの検索」オプションを選択します。

  7. クラスタの「パッチ・タイプ」および「プラットフォーム」を指定し、「実行」をクリックします。

    基準を満たす検索結果のリストが、最新のパッチ(またはパッチ・セット)を最上位にして表示されます。

  8. パッチを選択し、「詳細の表示」をクリックして、パッチの詳細を表示します。パッチを選択し、「READMEの表示」をクリックして、パッチのREADMEファイルを表示します。READMEファイルには、パッチに含まれているバグ修正に関する説明、およびパッチのインストール手順が含まれています。「パッチ詳細を表示」ページのパッチ・ロケータ・リンクをクリックして、パッチ・ウィザードに戻ります。

  9. 目的のパッチを選択するか、定期的なソフトウェア更新を実行する場合は最新のパッチ・セットを選択して、「次へ」をクリックします。

    「パッチ: 接続先の選択」ページが表示されます。

  10. 「使用可能なターゲット」リストから「選択したターゲット」リストにターゲット名を移動してパッチ適用のターゲットを選択し、「次へ」をクリックします。

    「パッチ: 資格証明の設定」ページが表示されます。

  11. Oracle Enterprise ManagerでOracleホーム・ディレクトリにパッチをステージングできるようにするため、「ユーザー名」および「パスワード」フィールドにオペレーティング・システムのユーザー名とパスワードを入力します。Oracle Enterprise Managerではジョブ・スケジューリングのために、この資格証明が必要になります。選択した各ノードのオペレーティング・システム資格証明を入力した後、「次へ」をクリックします。

    「パッチ: ステージングまたは適用」ページが表示されます。

  12. パッチはメイン・ボックスにリストされているディレクトリにダウンロードされます。通常、この場所はEMStagedPatches/patchnumberというOracleホームのサブディレクトリです。

    デフォルトでは、パッチのステージングのみが行われます。ステージング後、パッチのREADMEファイルの指示に従って手動でパッチを適用できます。この指示には、データベース・インスタンスおよびアプリケーションを停止する手順、またはスクリプトを実行する手順が含まれていることがあります。

  13. (オプション)「パッチを適用するスクリプトの実行」オプションを選択して、Oracle Enterprise Managerにパッチを適用します。このオプションを選択する場合、パッチ・リリース・ノートに指定したすべてのアクションが実行されるように、このページに表示されているスクリプトを変更する必要があります。


    注意:

    この手順は、Oracle Enterprise Managerリポジトリが含まれていないデータベースまたはリポジトリ・データベースを必要としないパッチのみを停止します。たとえば、SQL*Loaderのみに影響するパッチを適用する場合、Oracle Enterprise Managerを使用してパッチを適用できます。 


  14. 終了したら、「次へ」をクリックします。

    「パッチ: スケジュール」ページが表示されます。

  15. OracleMetaLinkからパッチをダウンロードする時刻を指定します。「パッチを適用するスクリプトの実行」オプションを選択した場合は、この時刻にパッチ適用スクリプトが実行されます。「次へ」をクリックします。

    「パッチ: サマリー」ページが表示されます。

  16. このページのサマリー情報を確認します。表示された情報を変更する必要がある場合は、「戻る」をクリックします。ジョブを発行する準備ができたら、「終了」をクリックします。

    参照:

     

OPatchを使用するための準備

Oracle RACデータベース、インストール済のASM、またはインストール済のOracle Clusterwareにパッチを適用する前に、いくつかの手順を実行する必要があります。

環境変数ORACLE_HOMEのチェック

OPatchでOracleホームが存在するかどうかが検証されます。環境変数ORACLE_HOMEが、パッチの適用を試行している製品のOracleホームに設定されている必要があります。

環境変数の設定の詳細は、各ベンダーのマニュアルを参照してください。

Linuxで変数ORACLE_HOMEの現在の設定をチェックするには、次の手順を実行します。
  1. コマンド・ウィンドウで、oracleユーザーとしてオペレーティング・システムにログインします。

  2. echoコマンドを使用して、環境変数ORACLE_HOMEの現在の設定を表示します。

    echo $ORACLE_HOME
    
    

    参照:

     

バックアップの実行

パッチ操作を実行する前に、直接パッチを適用しているソフトウェアをバックアップすることをお薦めします。これをOracle RAC、ASMまたはOracle Clusterwareソフトウェアのインストール・ディレクトリに適用します。

ソフトウェアのインストールをバックアップするには、次の手順を実行します。
  1. 次を使用して指定されたOracleホームでインストールしたソフトウェアをバックアップします。

    1. zipcp -rtarまたはcpioなどのオペレーティング・システム・ユーティリティを使用して、パッチを適用するOracleホーム・ディレクトリ内のソフトウェアをディスクにバックアップします。

    2. Oracle Secure Backupユーティリティを使用して、パッチを適用するOracleホーム・ディレクトリ内のソフトウェアをテープにバックアップします。

各ノードでのパッチのステージング

Oracle Enterprise Managerを使用してパッチをダウンロードする場合、パッチのターゲットとしてクラスタ内のすべてのノードを選択すると、パッチは、それらのノードに自動的にステージングされます。

OracleMetaLinkからパッチを手動でダウンロードした場合、各ノードにパッチをコピーする必要があります。

参照:

 

PATH環境変数の更新

opatchバイナリ・ファイルはOracle_home/OPatchディレクトリにあります。OPatchの実行中にこのパスを指定するか、環境変数PATHを更新して、OPatchディレクトリを含めることができます。

Red Hat LinuxシステムでPATH環境変数を更新するには、次の手順を実行します。
  1. コマンド・ウィンドウで、オペレーティング・システムにログインします。

  2. /opt/oracle/11gR1/db_1がOracleホーム・ディレクトリの場所である場合、次のようなシェル・コマンドを使用して、PATH環境変数の値を更新します。

    $ export PATH=$PATH:/opt/oracle/11gR1/db_1/OPatch
    
    

    現行ユーザーのシェル・プロファイル・スクリプトを変更して、ログインのたびにこの変数が構成されるようにすることもできます。

    参照:

     

SSHユーザー等価関係の構成

システムにパッチを適用する前に、ユーザー等価関係が有効になっていることを確認します。

SSHユーザー等価をテストするには、次の手順を実行します。
  1. OPatchを実行するシステムに、oracleユーザーとしてログインします。

  2. 次のコマンドを使用して、ユーザー等価をテストします。

    [oracle@docrac1] $ ssh docrac2 date
    
    

    日付が戻された場合、ソース・ノードとインストール先ノード間のユーザー等価関係は構成されています。

  3. 次のような出力が表示された場合、SSHユーザー等価関係は有効になっていません。

    Enter passphrase for key '/home/oracle/.ssh/id_rsa': 
    
    

    パッチ適用操作を続行する前にSSHユーザー等価を有効化します。

SSHユーザー等価を有効化するには、次の手順を実行します。
  1. OPatchを実行するシステムでコマンド・ウィンドウを開き、oracleユーザーとしてログインします。

  2. 次のコマンドを使用して、SSHエージェントを起動し、SSH鍵をメモリーにロードします。

    $ /usr/bin/ssh-agent $SHELL
    $ /usr/bin/ssh-add
    
    

    これらのコマンドは、ローカル・ノードでssh-agentを起動し、RSA鍵およびDSA鍵を現行のセッション・メモリーにロードします。これにより、SSHコマンドを発行するときにパス・フレーズの使用を求めるプロンプトが表示されなくなります。

  3. プロンプトで、セキュア・シェルの構成時に生成した、各鍵に対するパス・フレーズを次のように入力します。

    [oracle@docrac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
    [oracle@docrac1 .ssh]$ /usr/bin/ssh-add
    Enter passphrase for /home/oracle/.ssh/id_rsa
    Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
    Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
    
    
  4. SSHを正確に構成したかどうかをテストするには、次のコマンドを実行します。SSHが正確に構成されている場合、パスワードまたはパス・フレーズの入力は求められません。

    [oracle@docrac1] $ ssh docrac2 date
    
    


    注意:

    このコマンド・ウィンドウは、パッチ・インストール手順が完了するまで閉じないでください。パッチ・インストールが完了する前にSSHユーザー等価を有効化するコマンド・ウィンドウを閉じる必要がある場合は、パッチ・インストールを開始する前に手順1から手順4を繰り返してください。 


    参照:

     

パッチの適用

Oracle RAC環境でのパッチの適用は、単一ノードへのパッチの適用とは少し異なります。OPatchは、クラスタを検出すると、Oracle Universal Installer(OUI)を使用してソフトウェア・インベントリを問い合せ、ローカル・ノード名およびノード・リストを検索します。

パッチをインストールする前に、パッチを適用するソフトウェア・ディレクトリで実行されているアプリケーションをすべて停止する必要があります。Oracle RACクラスタでは、パッチを適用するソフトウェアに応じて、その他のアプリケーションの停止が必要になることもあります。表10-1に、Oracleソフトウェアへのパッチ適用の際に停止するアプリケーションを示します。

表10-1    Oracleホーム・ディレクトリへのパッチの適用 
Oracleホーム・ディレクトリ  停止するアプリケーション 

Oracle RACデータベース 

Oracle RACデータベース、Oracle Enterprise Manager Database Control、リスナー、およびOracle RACホーム・ディレクトリから実行されているその他のすべてのアプリケーション 

ASM 

Oracle RACデータベース、クラスタ・データベースと同じASMインスタンスを使用する単一インスタンスのデータベース、リスナー(ASMホーム・ディレクトリで実行されている場合)、ASM、およびASMホーム・ディレクトリで実行されているその他のアプリケーション 

Oracle Clusterware 

Oracle RACデータベース、クラスタ・データベースと同じASMインスタンスを使用する単一インスタンスのデータベース、ASM、すべてのノード・アプリケーション、Oracle Clusterware、およびCRSホーム・ディレクトリで実行されているその他のアプリケーション 

Oracle RACには、次の3つの方法でパッチを適用できます。

すべてのノードへのパッチの適用

すべてのノードにパッチを適用する方法では、最初にクラスタ内のすべてのノードを停止し、それらのすべてのノードに対してパッチを適用します。すべてのノードにパッチを適用した後、ノード上のすべてのnodeappsを再起動します。通常、この方法は、非常にクリティカルなパッチに対して使用され、停止時間が最大になります。OPatchでは、パッチをローリング方式で適用できない場合およびminimize_downtimeオプションを指定しなかった場合にこの方法が使用されます。

すべてのノードへのパッチ適用を実装するには、次の手順を実行します。
  1. Oracleホーム・ディレクトリを使用するユーザー・アプリケーションをすべて停止します。

  2. Oracle RACのホーム・ディレクトリにのみパッチを適用する場合、クラスタ内のすべてのノードでOracle RACインスタンスをすべて停止します。クラスタ・データベースのOracle RACインスタンスをすべて停止するには、コマンド・ウィンドウ内の次のコマンドを入力します。ここで、CRS_homeはCRSホーム・ディレクトリの場所、salesはデータベースの名前です。

    $ CRS_home/bin/srvctl stop database -d sales
    
    
  3. ASMホーム・ディレクトリまたはCRSホーム・ディレクトリにパッチを適用する場合、パッチ適用の対象となるノード・グループで実行されている単一インスタンス・データベースがパッチ適用先のASMのインストールを使用しているときは、その単一インスタンス・データベースをすべて停止します。

  4. ASMホーム・ディレクトリにパッチを適用する場合、パッチ適用の対象となるノード・グループでASMホーム・ディレクトリを使用するユーザー・アプリケーションをすべて停止します。

  5. ASMホーム・ディレクトリまたはCRSホーム・ディレクトリにパッチを適用する場合、1つのコマンドでグループ内の各ノードのノード・アプリケーションをすべて停止できます。このコマンドは、指定したノードのOracle RACインスタンス、リスナー、ASMインスタンス、およびOracle Clusterwareノード・アプリケーションを停止します。次のようなコマンドを使用してください。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、node_nameはノードの名前です。

    $ CRS_home/crs/bin/srvctl stop nodeapps -n node_name
    
    

    クラスタ内の各ノードに対して前述のコマンドを繰り返します。

    クラスタ内の各ノードでnodeappsを停止した後、crs_statユーティリティを使用して、各ノードですべてのnodeappsが停止されたことを確認します。

    $ CRS_home/bin/crs_stat -t
    
    
  6. CRSホーム・ディレクトリにパッチを適用する場合、各ノードでrootユーザーとして次のコマンドを発行し、クラスタ内のすべてのノードのCRSデーモンを停止します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    # CRS_home/bin/crsctl stop crs
    
    

    クラスタ内の各ノードで、このコマンドを繰り返します。

  7. 次のように入力して、現行のディレクトリをパッチが格納されているディレクトリに設定します。

    $ cd Oracle_home/EMStagedPatches/4519934/4519934
    
    
  8. 次のように入力して、ORACLE_HOME環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。

    $ echo $ORACLE_HOME
    /opt/oracle/11gR1/db_1
    
    
  9. 次のコマンドを入力して、OPatchを実行します。

    opatch apply
     
    
  10. CRSホーム・ディレクトリにパッチを適用した場合、各ノードでrootユーザーとして次のコマンドを発行し、すべてのノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    # CRS_home/bin/crsctl start crs
    
    

    クラスタ内の各ノードで、このコマンドを繰り返します。

  11. 各ノードでnodeappsを停止した場合、パッチを適用した後にすべてのノードでnodeappsを再起動します。nodeappsを起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1はクラスタ内のいずれかのノードです。

    $ CRS_home/bin/srvctl start nodeapps -n docrac1
     
    

    クラスタ内の各ノードに対して前述のコマンドを繰り返します。

    すべてのノードでnodeappsを再起動した後、crs_statユーティリティを使用して、各ノードでnodeappsが再起動されたことを確認します。

    $ CRS_home/bin/crs_stat -t
    
    

    いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のようなコマンドを使用すると、様々なノード・アプリケーションを再起動できます。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    $ CRS_home/bin/srvctl start instance -d sales -i "sales1"
    $ CRS_home/bin/srvctl start listener -n docrac1
    $ CRS_home/bin/srvctl start asm -n docrac1
     
    
  12. 次のように入力して、パッチ適用手順に示されているパッチ適用後のスクリプトを実行します。

    $ sqlplus /nolog 
    SQL> connect sys/password@sales1 AS SYSDBA
    SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql
    SQL> @Oracle_home/rdbms/admin/utlrp.sql
    SQL> exit
    
    

    参照:

     

ローリング方式でのパッチの適用

ローリング方式でのパッチ適用では、1つのノード・グループが停止され、そのグループのノードにパッチが適用された後、再起動されます。この処理は、クラスタ内のすべてのノードにパッチが適用されるまでグループ単位で個別に行われます。インストール済のOracle RAC、ASMまたはOracle Clusterwareに個別パッチを適用する方法としては、これが最も効率的です。ノードのグループごとにパッチを適用することで、別のノードの1つ以上のインスタンスを常に使用できるため、クラスタ・データベースの停止時間はゼロになります。

ほとんどのパッチはローリング方式で適用できますが、この方式で適用できないバッチもあります。ローリング・パッチ方式でパッチを適用できるかどうかは、パッチのREADMEファイルに記載されています。ローリング・パッチ方式でパッチを適用できない場合は、「最小停止時間でのパッチの適用」または「すべてのノードへのパッチの適用」を使用してパッチを適用する必要があります。

ローリング・パッチ方式でパッチを適用するには、次の手順を実行します。
  1. コマンド・ウィンドウで、解凍済のパッチがディスクにステージングされているディレクトリに移動します。

    $ cd Oracle_home/EMStagedPatches/4519934/4519934
    
    
  2. パッチ適用の対象となるノード・グループでOracle RACのホーム・ディレクトリを使用するユーザー・アプリケーションをすべて停止します。たとえば、ローカル・ノードのOracle Enterprise Manager Database Controlを停止するには、次のコマンドを使用します。ここで、Oracle_homeはOracle RACのホーム・ディレクトリです。

    $ Oracle_home/bin/emctl stop dbconsole
    
    
  3. ASMホーム・ディレクトリまたはCRSホーム・ディレクトリにパッチを適用する場合、パッチ適用の対象となるノード・グループで実行されている単一インスタンス・データベースがパッチ適用先のASMソフトウェアを使用しているときは、その単一インスタンス・データベースをすべて停止します。

  4. ASMホーム・ディレクトリにパッチを適用する場合、パッチ適用の対象となるノード・グループでASMホーム・ディレクトリを使用するユーザー・アプリケーションをすべて停止します。

  5. Oracle RACのホーム・ディレクトリにのみパッチを適用する場合、パッチ適用の対象となるノード・グループでOracle RACインスタンスをすべて停止します。Oracle RACデータベースのインスタンスを停止するには、次の例のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、salesはデータベースの名前、sales1はインスタンスの名前です。

    $ CRS_home/bin/srvctl stop instance -d sales -i "sales1"
    
    

    パッチ適用の対象となるノード・グループ内の各ノードに対して前述のコマンドを繰り返します。

  6. ASMホーム・ディレクトリまたはCRSホーム・ディレクトリにパッチを適用する場合、1つのコマンドでグループ内の各ノードのノード・アプリケーションをすべて停止できます。このコマンドは、指定したノードのOracle RACインスタンス、リスナー、ASMインスタンス、およびOracle Clusterwareノード・アプリケーションを停止します。次のようなコマンドを使用してください。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1はグループ内のいずれかのノード名です。

    $ CRS_home/crs/bin/srvctl stop nodeapps -n docrac1
    
    

    パッチ適用の対象となるノード・グループ内の各ノードに対して前述のコマンドを繰り返します。

    グループ内の各ノードでnodeappsを停止した後、crs_statユーティリティを使用して、パッチが適用されるノードのグループですべてのnodeappsが停止されたことを確認します。

    $ CRS_home/bin/crs_stat -t
    
    
  7. CRSホーム・ディレクトリにパッチを適用する場合、グループの各ノードでrootユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを停止します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    # CRS_home/bin/crsctl stop crs
    
    

    パッチ適用の対象となるノード・グループ内の各ノードでこのコマンドを繰り返します。

  8. 次のように入力して、ORACLE_HOME環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。

    $ echo $ORACLE_HOME
    /opt/oracle/11gR1/db_1
    
    
  9. 各ノードに個別にパッチを適用する場合、次のコマンドを使用して、ローカル・ノードにのみパッチが適用されるようにOPatchに対して指示します。このコマンドをパッチのあるディレクトリから実行する場合は、パッチIDの指定は不要です。

    $ opatch apply -local
    
    

    ノードのグループを使用している場合は、次のようなコマンドを使用して、パッチが適用されるノードのグループにパッチを適用するようにOPatchに指示します。

    $ opatch apply -local_node docrac1 -remote_nodes docrac2,docrac3
    
    
  10. CRSホーム・ディレクトリにパッチを適用した場合、最初のグループ内の各ノードでrootユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    # CRS_home/bin/crsctl start crs
    
    

    グループ内の各ノードで、このコマンドを繰り返します。

  11. ノード・グループのnodeappsを停止した場合、パッチを適用した後にそのグループのノードでnodeappsを再起動します。nodeappsを起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1はパッチを適用したノード・グループ内のいずれかのノードです。

    $ CRS_home/bin/srvctl start nodeapps -n docrac1
     
    

    グループ内の各ノードに対して前述のコマンドを繰り返します。

  12. グループ内の各ノードでnodeappsを再起動した後、crs_statユーティリティを使用して、グループ内の各ノードでnodeappsが再起動されたことを確認します。

    $ CRS_home/bin/crs_stat -t
    
    

    いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のコマンドを使用すると、salesクラスタ・データベースのsales1インスタンスを再起動できます。

    $ CRS_home/bin/srvctl start instance -d sales -i "sales1"
     
    
  13. パッチを適用したノード・グループ内の各ノードで、ASMソフトウェアを使用するすべての単一インスタンス・データベース、およびOracleホームまたはASMホームを使用するすべてのユーザー・アプリケーションを再起動します。

  14. 次のノード・グループに対して手順2から手順8を繰り返します。

  15. 各ノードに個別にパッチを適用する場合、次のようなコマンドを使用して、次のノードにのみパッチが適用されるようにOPatchに対して指示します。このコマンドをパッチのあるディレクトリから実行する場合は、パッチIDの指定は不要です。

    $ opatch apply -remote_nodes docrac2
    
    

    ノードのグループにパッチを適用する場合は、次のようなコマンドを使用して、パッチが適用されるノードのグループにパッチを適用するようにOPatchに指示します。

    $ opatch apply -remote_nodes docrac4,docrac5,docrac6
    
    
  16. CRSホーム・ディレクトリにパッチを適用した場合、最近パッチを適用したグループ内の各ノードでrootユーザーとして次のコマンドを発行し、グループ内のノードのCRSデーモンを再起動します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリです。

    # CRS_home/bin/crsctl start crs
    
    

    グループ内の各ノードで、このコマンドを繰り返します。

  17. ノード・グループのnodeappsを停止した場合、パッチを適用した後にそのグループのノードでnodeappsを再起動します。nodeappsを起動するには、次のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、docrac1はパッチを適用したノード・グループ内のいずれかのノードです。

    $ CRS_home/bin/srvctl start nodeapps -n docrac1
     
    

    グループ内の各ノードに対して前述のコマンドを繰り返します。

  18. グループ内の各ノードでnodeappsを再起動した後、crs_statユーティリティを使用して、グループ内の各ノードでnodeappsが再起動されたことを確認します。

    $ CRS_home/bin/crs_stat -t
    
    

    いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のコマンドを使用すると、salesクラスタ・データベースのsales2インスタンスを再起動できます。

    $ CRS_home/bin/srvctl start instance -d sales -i "sales2"
     
    
  19. パッチを適用したノード・グループ内の各ノードで、ASMソフトウェアを使用するすべての単一インスタンス・データベース、およびOracleホームまたはASMホームを使用するすべてのユーザー・アプリケーションを再起動します。

  20. パッチ適用の対象となるノード・グループが3つ以上ある場合、クラスタ内のすべてのノードにパッチが適用されるまで、各ノード・グループに対して手順14から手順19を繰り返します。

  21. 次のように入力して、パッチ適用手順に示されているパッチ適用後のスクリプトを実行します。

    $ sqlplus /nolog 
    SQL> connect sys/password@sales1 AS SYSDBA
    SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql
    SQL> @Oracle_home/rdbms/admin/utlrp.sql
    SQL> exit
    
    

    参照:

     

最小停止時間でのパッチの適用

最小停止時間でのパッチの適用では、1つのセットのノードに対して、停止およびパッチの適用を順に実行します。最初のセットのノードにパッチを適用した後、2つ目のセットのノードを停止します。次に、最初のセットのノードを再起動し、2つ目のセットのノードにパッチを適用します。2つ目のセットのノードは、パッチの適用後に再起動します。この方法を使用した場合、同時にすべてのノードを停止する方法と比較すると、Oracle RACの停止時間が短くなります。

最小停止時間でのパッチの適用では、次のアクションが実行されます。

停止時間が最短の方法でクラスタ・データベースにパッチを適用するには、次の手順を実行します。
  1. 次のように入力して、解凍されたパッチがディスクにステージングされているディレクトリに移動します。

    $ cd Oracle_home/EMStagedPatches/4519934/4519934
    
    
  2. パッチ適用の対象となるノード・グループでOracle RACのホーム・ディレクトリを使用するユーザー・アプリケーションをすべて停止します。たとえば、ローカル・ノードのOracle Enterprise Manager Database Controlを停止するには、次のコマンドを使用します。ここで、Oracle_homeはOracle RACのホーム・ディレクトリです。

    $ Oracle_home/bin/emctl stop dbconsole
    
    
  3. ローカル・ノードでOracle RACインスタンスをすべて停止します。Oracle RACデータベースのインスタンスを停止するには、次の例のようなコマンドを入力します。ここで、CRS_homeはOracle Clusterwareのホーム・ディレクトリ、salesはデータベースの名前、sales1はインスタンスの名前です。

    $ CRS_home/bin/srvctl stop instance -d sales -i "sales1"
    
    
  4. 次のように入力して、ORACLE_HOME環境変数が、パッチを適用するソフトウェア・ディレクトリに設定されていることを確認します。

    $ echo $ORACLE_HOME
    /opt/oracle/11gR1/db_1
    
    
  5. パッチ・ディレクトリ内から次のコマンドを使用します。

    $ opatch apply -minimize_downtime
    
    

    パッチがディスクにステージングされているディレクトリからOPatchコマンドを実行する場合は、パッチIDを指定する必要はありません。

    ローカル・ノードにパッチを適用する準備ができているかどうか尋ねられます。ローカル・ノードのOracle RACインスタンスが停止していることを確認すると、ローカル・ノードのOracleホーム・ディレクトリにパッチが適用されます。その後、パッチ適用の対象となる次のノードを選択するよう求められます。

  6. クラスタ内の他のノードでOracle RACインスタンスを停止した後、ローカル・ノードのOracle RACインスタンスを再起動できます。次に、残りのノードにパッチを適用する準備ができたことをOPatchに知らせます。

  7. すべてのノードにパッチが適用されたら、クラスタ内の他のノードでOracle RACインスタンスを再起動します。次のコマンドは、salesというOracle RACデータベースのsales2インスタンスを起動する方法を示しています。

    $ CRS_home/bin/srvctl start instance -d sales -i "sales1"
     
    
  8. クラスタ内のノードですべてのnodeappsが再起動されたことを確認します。

    $ crs_stat -t
    
    

    いずれかのノード・アプリケーションが再起動しなかった場合、SRVCTLユーティリティを使用して再起動します。たとえば、次のようなコマンドを使用すると、docrac1ノードのリスナーを再起動できます。ここで、CRS_home はOracle Clusterwareのホーム・ディレクトリです。

    $ CRS_home/bin/srvctl start listener -n docrac1
     
    
  9. 次のように入力して、パッチ適用手順に示されているパッチ適用後のスクリプトを実行します。

    $ sqlplus /nolog 
    SQL> connect sys/password@sales1 AS SYSDBA
    SQL> @Oracle_home/cpu/CPUOct2007/catcpu.sql
    SQL> @Oracle_home/rdbms/admin/utlrp.sql
    SQL> exit
    
    

    参照:

     

パッチ・セットの適用

パッチ・セットは、完全にテストされ、統合された製品修正を提供するメカニズムです。パッチ・セット内のすべての修正が、テスト済で、互いに機能することが動作保証されています。パッチ・セットには影響が小さいパッチのみが含まれているため、サーバーに対するアプリケーションまたはツールの動作保証を行う必要はありません。

Red Hat Linux上のOracle RACデータベースおよびOracle Clusterwareに最新のパッチ・セットを適用する方法は、OracleMetaLink Webサイトのドキュメント、Oracle 11g リリース1(11.1)サポート・ステータスおよびアラートを検索してください。

このドキュメントはOracle 11g リリース1に使用可能なパッチ・セットの概要を提供します。このドキュメントを使用して、プラットフォームに合ったパッチ・セット・ノートを簡単に特定、確認できます。Oracle Databaseのパッチ・セット・ノートのドキュメントには次の情報が含まれています。

Oracle MetaLinkでパッチ・セット・ノートを検索するには、次の手順を実行します。
  1. Oracle MetaLinkにログインします。

  2. Patches & Updates」タブを選択します。

  3. 「Quick Links to the Latest Patchsets, Mini Packs, and Maintenance Packs」を選択します。

  4. 「Latest Oracle Server/Tools Patchsets」ヘッダーの下で「Oracle Database」を選択します。

    オペレーティング・システムのリストが表示されます。

  5. オペレーティング・システムと一致するエントリの上にカーソルを置くか、三角矢印を使用して、オペレーティング・システムを検索します。

    Linux x86などのオペレーティング・システムのエントリの上にカーソルを置く場合データベースのバージョンが表示されます。

  6. 「11.1.0」を選択します。

    「Advanced Search」ページが表示されます。

  7. このページの下までスクロールして、使用可能なパッチ・セットのリストを参照します。

  8. 表示またはダウンロードするパッチ・セットの「Patch」列の番号を選択します。

    パッチ・セットの説明およびダウンロード・ページが表示されます。

  9. 「View ReadMe」をクリックして、パッチ・セット・ノートを表示します。

    また、このページで「Download」をクリックしてご使用のコンピュータにパッチをダウンロードできます。

    参照:

     

パッチのデプロイメントに関するトラブルシューティング

この項では、パッチのデプロイメントに関するトラブルシューティングについて説明します。この項の内容は次のとおりです。

Oracle RACデータベースへのパッチの適用で問題が発生した場合、一般的な問題であれば、上述のトピックで解決方法を確認できます。発生した問題がこのリストにない場合は、ログおよびトレース・ファイルを確認します。

参照:

 

OPatch用のノード・リストの更新

OPatchによって自動的にOracle RACまたはそのノードが検出されない場合は、インベントリの内容を調べ、その内容が完全であることを確認します。

OPatchのノード・リストを更新するには、次の手順を実行します。

クラスタのノードのリストが完了していない場合、次の例に示すように、Oracle Universal Installerおよび-updateNodeListフラグを使用して更新できます。

Oracle_home/oui/bin/runInstaller -updateNodeList 
ORACLE_ HOME=/opt/oracle/11gR1/db_1 
CLUSTER_NODES=docrac1,docrac2,docrac3 -noClusterEnabled

参照:

 

OPatchログおよびトレース・ファイルの概要

ロギングおよびトレースは、デバッグの一般的な補助機能です。OPATCHではapplyrollbackおよびlsinventory操作のすべてのログが保持されます。ログ・ファイルはOracle_home/cfgtoollogs/opatchディレクトリに配置されます。各ログ・ファイルには操作のタイム・スタンプが付加されます。ログ・ファイルの名前は、opatch_mm-dd-yyyy_hh-mm-ss.logの形式になります。ここで、mm-dd-yyyyは現在の日付、hh-mm-ssは現在の時刻です。OPatchが実行されるたびに、新規ログ・ファイルが作成されます。

たとえば、ログ・ファイルが2007年5月17日の午後11時55分に作成された場合、ログ・ファイルの名前は次のようになります。

opatch_05-17-2007_23-55-00.log

OPatchでは、OPatchで実行されたコマンドの索引と、それに関連付けられているログ・ファイルもOracle_home/cfgtoollogs/opatchディレクトリのhistory.txtファイルに保持されます。history.txtファイルのサンプルを次に示します。

Date & Time : Tue Apr 26 23:00:55 PDT 2007
Oracle Home : /opt/oracle/11gR1/db_1/
OPatch Ver. : 11.1.0.0.0
Current Dir : /scratch/oui/OPatch
Command     : lsinventory
Log File    : 
/opt/oracle/11gR1/db_1/cfgtoollogs/opatch/opatch-2007_Apr_26_23-00-55-PDT_Tue.log

参照:

 

「有効なパッチ領域ではありません」エラーの解決

このエラーは、パッチの適用のためにOPatchユーティリティで使用されているディレクトリがOPatchユーティリティで確認されている内容のテンプレートと一致しない場合、またはOPatchユーティリティが無効なディレクトリから実行されている場合に発生する可能性があります。

Patch_Shiphomeディレクトリには、次の構造が存在する必要があります。

「有効なパッチ領域ではありません」エラーを解決するには、次の手順を実行します。

「部分的にインストールされた個別パッチを削除できません」エラーの解決

パッチ適用プロセスが中断された場合、パッチを再度インストールしようとすると、「部分的にインストールされた個別パッチを削除できません」エラーが発生する場合があります。

部分的にインストールされたパッチ・エラーを解決するには、次の手順を実行します。
  1. 環境変数ORACLE_HOMEが、パッチの適用先とするOracleホーム・ディレクトリに設定されていることを確認します。

  2. Oracle_home/.patch_storage/patch-id_timestampディレクトリに移動して、次のようにrestoreコマンドを実行します。

    Oracle_home/.patch_storage/patch-id_timestamp/restore.sh
    
    
  3. Oracle_home/.patch_storage/patch-id_timestamp/make.txtファイルを使用して(使用可能な場合)、オペレーティング・システムの環境を次のように変更します。

    /bin/sh make.txt
    
    
  4. 再度、パッチの適用を試行します。

    参照:

     


戻る 次へ
Oracle
Copyright © 2006, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引