データベース -> ORACLE -> パッチ

Oracle に個別パッチを適用する

パッチ前の準備

 Oracle を停止する
SQL> shutdow immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> quit

 リスナー を停止する
$ lsnrctl stop

 パッチが失敗したときの為にバックアップを取得する。
$ cd /opt
$ tar cf - oracle | gzip > /var/backup/backup_oracle.tar.gz
$ tar cf - oradata | gzip > /var/backup/backup_oradata.tar.gz

パッチファイルを展開する
$ cd /tmp
$ unzip p5872000_10202_SOLARISx86.zip
Archive:  p5872000_10202_SOLARISx86.zip
   creating: 5872000/
   creating: 5872000/files/
   creating: 5872000/files/rdbms/
   creating: 5872000/files/rdbms/lib/
   creating: 5872000/files/rdbms/lib/libdbtools10.a/
  inflating: 5872000/files/rdbms/lib/libdbtools10.a/gimh.o
   creating: 5872000/files/lib/
   creating: 5872000/files/lib/libserver10.a/
  inflating: 5872000/files/lib/libserver10.a/ksih.o
   creating: 5872000/etc/
   creating: 5872000/etc/config/
  inflating: 5872000/etc/config/inventory
  inflating: 5872000/etc/config/actions
   creating: 5872000/etc/xml/
  inflating: 5872000/etc/xml/GenericActions.xml
  inflating: 5872000/etc/xml/ShiphomeDirectoryStructure.xml
  inflating: 5872000/README.txt
$

事前チェック(衝突)を行う

$ cd /tmp
$ $ORACLE_HOME/OPatch/opatch \
  prereq CheckConflictAgainstOHWithDetail \
  -phBaseDir ./5872000 /opt/oracle/oraInventory/oraInst.loc
Invoking OPatch 10.2.0.2.0

Oracle Interim Patch Installerバージョン10.2.0.2.0
Copyright (c) 2005, Oracle Corporation.  All rights reserved.。

PREREQ session

Oracleホーム       : /opt/oracle/product/10.2.0/db_1
中央インベントリ : /opt/oracle/oraInventory
   元           : /opt/oracle/product/10.2.0/db_1/oraInst.loc
OPatchのバージョン    : 10.2.0.2.0
OUIのバージョン       : 10.2.0.2.0
OUIの場所      : /opt/oracle/product/10.2.0/db_1/oui
ログ・ファイルの場所 : 
     /opt/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_04_15-54-15-JST_Wed.log

Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" not executed
Unable to create Patch Object.
Exception occured : PatchObject constructor: Input file "./5872000/README.txt/etc/config/actions" 
                                    or "./5872000/README.txt/etc/config/inventory" does not exist.

OPatch succeeded. ← メッセージが出れば成功
$

パッチ適用を行う

$ cd /tmp/5872000
$ $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /opt/oracle/oraInventory/oraInst.loc
Invoking OPatch 10.2.0.2.0

Oracle Interim Patch Installerバージョン10.2.0.2.0
Copyright (c) 2005, Oracle Corporation.  All rights reserved.。


Oracleホーム       : /opt/oracle/product/10.2.0/db_1
中央インベントリ : /opt/oracle/oraInventory
   元           : /opt/oracle/oraInventory/oraInst.loc
OPatchのバージョン    : 10.2.0.2.0
OUIのバージョン       : 10.2.0.2.0
OUIの場所      : /opt/oracle/product/10.2.0/db_1/oui
ログ・ファイルの場所 : 
   /opt/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_04_15-54-31-JST_Wed.log

ApplySessionは仮パッチ'5872000'をOH '/opt/oracle/product/10.2.0/db_1'に適用中
アクティブ・プロセスの確認のためにfuserを起動中です。
Invoking fuser on "/opt/oracle/product/10.2.0/db_1/bin/oracle"

OPatchによりインベントリから非クラスタのOracleホームが検出されたため、
                                                   ローカル・システムにのみパッチが適用されます。

ローカル・システムのこのORACLE_HOME以外で実行しているOracleインスタンスを停止してください。
(Oracleホーム = '/opt/oracle/product/10.2.0/db_1')

ローカル・システムにパッチを適用する準備ができましたか。

続行しますか。[y|n]
y
User Responded with: Y
Oracleホームのファイルとインベントリをバックアップ(自動ロールバック用ではない)しています
パッチ'5872000'の影響を受けるファイルをリストア用にバックアップしています。少し時間がかかります...
パッチ'5872000'の影響を受けるファイルをロールバック用にバックアップしています。
                                                                           少し時間がかかります...

コンポーネントoracle.rdbms.rsf, 10.2.0.2.0にパッチを適用中...
アーカイブ・ファイル"/opt/oracle/product/10.2.0/db_1/rdbms/lib/libdbtools10.a"を
                                                       "rdbms/lib/libdbtools10.a/gimh.o"で更新 中

コンポーネントoracle.rdbms, 10.2.0.2.0にパッチを適用中...
アーカイブ・ファイル"/opt/oracle/product/10.2.0/db_1/rdbms/lib/libdbtools10.a"を
                                                       "rdbms/lib/libdbtools10.a/gimh.o"で更新 中
アーカイブ・ファイル"/opt/oracle/product/10.2.0/db_1/lib/libserver10.a"を
                                                      "lib/libserver10.a/ksih.o"で更新中
ターゲットclient_sharedlibに対してメイクを実行中
ターゲットioracleに対してメイクを実行中
ApplySessionは仮パッチ'5872000'をインベントリに追加中

Verifying the update...
Inventory check OK: Patch ID 5872000 is registered in Oracle Home inventory with proper meta-data.
Files check OK: Files from Patch ID 5872000 are present in Oracle Home.

ローカル・システムにパッチが適用されました。ローカル・システムを再起動します。


OPatch succeeded.← メッセージが出れば成功
$

オフライン・データベース検査ユーティリティ(DBVERIFY)でパッチ適用後の確認を行う

$ dbv file = users01.dbf

DBVERIFY: Release 10.2.0.2.0 - Production on 水 8月 4 15:57:33 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

DBVERIFY - 検証を開始します: FILE = users01.dbf


DBVERIFY - 検証が完了しました

検査済ページ合計               : 640
処理済ページ合計   (データ)    : 181
エラーのページ合計 (データ)    : 0
処理済ページ合計   (索引)      : 71
エラーのページ合計 (索引)      : 0
処理済ページ合計   (その他)    : 364
処理済ページ合計   (セグメント): 0
エラーのページ合計 (セグメント): 0
空白のページ合計               : 24
破損とマークされたページ合計   : 0
インフラックス・ページ合計     : 0
最大ブロックSCN            : 1496311(0.1496311)
$

エラーがなければ成功


先頭へ

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google