ORACLEのパッチについて

ORACLEのパッチは大まかに以下の2種類があります。

・PSR(Patch Set Release)
・その他パッチ(個別パッチやCPU(Critical Patch Update)、PSU(Patch Set Update)等)

パッチの主な役割

・PSR(Patch Set Release)
PSRは複数バグの累積パッチでWindowsでいうサービスパックに近い位置づけになっています。 11.1までのPSRは新機能の追加等は基本的にしないという位置づけでしたが、11.2以降PSRの役割が変更されバグ修正だけではなく新機能の追加を含む可能性があるものに変更されました。 PSR適用による影響は広域にわたり、PSR適用前後で実行計画が変わることも珍しくないためアプリケーションの本番稼働後に適用する場合は基本的に一通りの稼働確認を行うことをお勧めします。 PSRを適用することでoracleの4桁目のバージョン(9.2.0.8、10.1.0.5、10.2.0.5、11.1.0.7、11.2.0.3等)が上がり、 累積パッチであるため例えばPSR10.2.0.5を適用するとPSR10.2.0.2~10.2.0.4までの全修正も適用された状態になります。

・CPU(Critical Patch Update)
CPUは四半期毎に出荷されるセキュリティ関連の重大な修正を複数含むパッチです。 システムの脆弱性の修正だけではなくインスタンスダウンやハング等重大な障害につながるバグの修正も含まれています。

・PSU(Patch Set Update)
PSUは10.2以降で提供されるようになった複数バグの累積パッチです。 PSUにはCPUの修正も含まれておりPSRよりアプリケーションへの影響を及ぼす可能性が低い小規模なPSR的な位置づけになっています。 PSUはPSR毎に提供されておりPSRのバージョンが適合するパッチのみ適用可能でPSR10.2.0.5の環境にはPSR10.2.0.4用のPSUを適用することはできません。

・個別パッチ
上記以外のパッチは個別パッチと呼ばれる場合が多くほとんどはある特定の問題の修正のみを含むパッチとなっています。

・Windowsパッチ・バンドル
Windows環境ではPSR以外の修正パッチはパッチ・バンドルという名前で複数の修正を含む累積パッチとして提供されています。 Windows以外のプラットフォームではパッチがリンク前のオブジェクトファイル(*.o)形式で提供されておりパッチ適用時にリリンクして共有ライブラリやバイナリファイル等を作成していますが、 Windows環境ではORACLEの動作要件にコンパイラやリンカが含まれないためオブジェクトファイルではなく共有ライブラリ(dll)やバイナリファイル(exe)形式で提供せざるをえません。 共有ライブラリやバイナリファイルで提供すると修正が競合する可能性が非常に高くなることから個別の問題に対して都度修正パッチを出すのではなくパッチ・バンドルとして定期的に複数問題の修正パッチをリリースする方針としているものと予想されます。

入手方法

上記いずれもサポート契約を結んだ上で利用できるサポートサイト(OiscMy Oracle Support(旧Metalink)等)からダウンロード可能です。 また、インストールメディアパックにもPSR等が同梱されている場合があります。

適用方法

パッチによって適用方法が異なります。

・PSRの場合
インストール時と同様にOUI(Oracle Universal Installer)を使用してGUIベースでの適用が可能です。 なお、データベースが作成済みの場合はPSR適用後、catPatch.sql、catupgrade.sql等のスクリプトを実行する必要があり、 その他にも各バージョン毎に追加で実行する手順がある場合があるため必ず付属のリリースノートの手順を確認します。   

・その他パッチの場合
9.2以降のバージョンではOpatchというツールを用いて適用を行います。 Opatchは10g以降であればインストール時に$ORACLE_HOME/OPatch配下にインストールされていますが、 9.2の場合や最新版のopatchを使用したい場合はoracleのサポートサイトからダウンロードする必要があります。 (Opatchが提供されたのは9.2以降でこれ以前の9.0や8.1等のバージョンではパッチ適用の仕組みが異なります) なお、opatchはjavaで実装されたツールのためインストール作業等は不要であり、ダウンロードしたopatchをzip解凍するだけで使用することが可能です。

パッチの適用状況の確認

・PSR
PSRを適用した場合、バージョンの4桁目の番号がアップするため4桁目のバージョンからどのPSRを適用しているのか確認できます。 例えば以下では「SQL*Plus: Release 10.2.0.4.0」の表示からクライアント(sqlplus)のバージョン、「Oracle Database 10g Enterprise Edition Release 10.2.0.4.0」の表示より接続先DBのバージョン共に10.2.0.4であることが確認できます。
C:\>sqlplus test/test

SQL*Plus: Release 10.2.0.4.0 - Production on 火 3月 2 17:00:58 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
に接続されました。
・その他パッチ
その他パッチの適用状況はOpatch lsinventoryの結果より確認を行います。
以下の例ではPSR10.2.0.4が適用されておりその他パッチ(仮パッチ)は8307237というパッチが一つだけ適用されていることがわかります。 (8307237は複数のバグ修正を含むパッチであり、その下の複数の数字が修正されたバグ番号の一覧)
C:\>set ORACLE_HOME=E:\oracle\product\10.2.0\db_1

C:\>E:\oracle\product\10.2.0\db_1\OPatch\opatch lsinventory
Invoking OPatch 10.2.0.4.2

Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracleホーム       : E:\oracle\product\10.2.0\db_1
中央インベントリ : C:\Program Files\Oracle\Inventory
   元           : n/a
OPatchのバージョン    : 10.2.0.4.2
OUIのバージョン       : 10.2.0.4.0
OUIの場所      : E:\oracle\product\10.2.0\db_1\oui
ログ・ファイルの場所 : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch2009-04-25_17-40-16午
後.log

Lsinventory Output file location : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\lsinv\lsinvent
ory2009-04-25_17-40-16午後.txt

--------------------------------------------------------------------------------
インストールされた最上位製品(2):

Oracle Database 10g                                                  10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
このOracleホームには2の製品がインストールされています。


仮パッチ(1) :

Patch  8307237      : applied on Sat Apr 25 17:39:38 JST 2009
   Created on 26 March 2009, 00:36:22 hrs PST8PDT
   Bugs fixed:
     8307237, 8208765, 8208643, 7319691, 7505535, 7489862, 7688543, 5945060
     7238163, 4459936, 7172531, 5147386, 6500033, 6908967, 7459192, 7694979
     4736319, 8210889, 8223481, 5893331, 7704811, 6143420, 7193068, 6367360
     8214576, 7162704, 6869712, 6999955, 5705196, 6642692, 8362683, 6638558
     7340448, 8258839, 5399610, 6370967, 7585970, 7378401, 7043173, 7159451
     6122696, 5697354, 6981690, 5256703, 8216864, 7697802, 7523475, 6838714
     7439465, 5730603, 8225197, 7592450, 5099019, 6319761, 7664560, 7509689
     7229351, 7278117, 7654407, 7690331, 7828479, 7003718, 6491175, 6737765
     6991626, 7634610, 7519687, 6896371, 5686407, 6379441, 6313035, 5849687
     6894671, 7170213, 8201796, 6656309, 6155146, 7516867, 7296258, 7715044
     7486155, 7450460, 6113018, 7447345, 7305703, 7513673, 6640411, 7558379
     7597059, 7372337, 7484102, 6730125, 6936368, 7648406, 6047490, 6270137
     6452035, 4902697, 7677780, 6661393, 7501180, 7592168, 7007924, 7295298
     7361423, 7453155, 6282093, 5701723, 7318276, 6652767, 7458976, 7241059
     7385253, 6759910, 7375077, 7272297, 7008262, 6870047, 6896554, 7263061
     7395972, 6939835, 7515898, 6454634, 7314091, 7439689, 6811031, 5229627
     5586604, 7196532, 7573151, 7254367, 7606362, 6083292, 6994490, 5718815
     7207932, 6013981, 7592319, 7415038, 6144426, 6145687, 7509964, 6629890
     7444320, 7579079, 6350579, 7584866, 7522608, 5648287, 5709135, 6430500
     6833602, 7211965, 7236148, 7257160, 7325597, 7429070, 7430474, 7439957
     7454131, 7522909, 7515828, 7462072, 6904068, 7145872, 7190477, 7498506
     6519198, 6770417, 6395755, 6782437, 6452766, 6775231, 7189447, 7330258
     7144872, 7395472, 6216149, 7477691, 5951091, 7448543, 7522473, 6967923
     6742924, 4695511, 7413928, 6054929, 7129643, 5879865, 7430745, 6923450
     6685261, 6415531, 6359490, 7196894, 6924458, 7151667, 6627593, 6766884
     6766956, 6791019, 7494876, 7336032, 6368000, 7037203, 6955040, 5945647
     5573896, 7246117, 7433792, 6670740, 7388606, 7118478, 6768289, 7002207
     5883691, 7251909, 7366749, 7280289, 7273832, 7155655, 7138405, 6845871
     7331569, 7188610, 7480785, 7359366, 6874522, 5343559, 7356443, 7144891
     6375150, 5059447, 7038750, 6877038, 6193945, 7309458, 6854919, 5490816
     6605106, 6472286, 6606749, 6067825, 6932206, 6455412, 6674196, 7362653
     6746196, 6774830, 6451626, 7364935, 4561087, 4440589, 7315642, 7411865
     5348308, 6865378, 7331929, 7191744, 7342082, 6506818, 5944239, 7271619
     6619922, 5926711, 5996457, 7326738, 7386320, 5131180, 7046751, 6672737
     7237571, 7269450, 6782276, 7113299, 7190270, 4235212, 7348412, 5712781
     7357454, 6978876, 7287289, 7162648, 6635214, 6844739, 7046187, 6962622
     6797677, 7154415, 7142215, 7300599, 6399597, 7013768, 6875111, 6959964
     6133008, 7123643, 6122097, 6678845, 7210296, 7216535, 6594005, 6527074
     6262792, 7340474, 7313129, 6504899, 5095023, 6134368, 6725634, 7210921
     6870937, 7014646, 7017637, 6805009, 6876196, 6972343, 6897966, 6809093
     6736159, 7244238, 7127618, 7195088, 6607486, 6822672, 6687129, 6655657
     6355282, 6489332, 6789923, 6454468, 7005671, 7140644, 7039080, 6695247
     6689334, 6936964, 6445329, 7253058, 6862248, 6082292, 7004914, 5690152
     6374297, 6653934, 5208177, 6119017, 6679303, 6600051, 7228971, 6988848
     7149751, 6221403, 6440977, 6972291, 7188932, 6344497, 6724838, 7218676
     7036589, 4033868, 5883585, 6944036, 6327692, 6163785, 6913090, 7027551
     6130317, 5868257, 5190885, 6798910, 6934892, 7022905, 6795880, 6935367
     6667800, 5386874, 6925163, 6076414, 6432837, 6956212, 6714608, 6336234
     6471770, 6771400, 6511850, 7003151, 6952800, 6656630, 6898054, 5688060
     7154241, 7150609, 6660648, 6954829, 6207468, 6455659, 5970301, 6530171
     6607505, 5213488, 5944121, 5843814, 6163771, 7117709, 6896701, 6833159
     6759032, 5900004, 4393920, 6645719, 5251842, 7019835, 6826661, 6883418
     7011807, 6241222, 6956461, 6193802, 7006942, 6986658, 5410059, 6626018
     5704108, 5890312, 5934363, 6760697, 6121357, 6110752, 6725855, 5923486
     6705635, 5234947, 5902962, 6143047, 5895190, 6917874, 6151380, 6456530
     5368296, 5386204, 6369463, 6768114, 6200820, 6972843, 5880921, 6506617
     6994160, 6345197, 6506816, 6670579, 6688740, 5961436, 6823287, 6604020
     6372848, 6414616, 6195891, 6822995, 6595426, 5747462, 6120483, 6981215
     6082832, 5623467, 4551675, 6329318, 6324944, 6376928, 6783426, 6051177
     6024730, 5935935, 6778404, 4169479, 5756769, 5714944, 6670551, 6607676
     6084232, 6815733



--------------------------------------------------------------------------------

OPatch succeeded.

アンインストール方法

・PSR
戻す適用前の状態に戻す為にはPSR適用により更新された全ファイルを元に戻す必要がありますのでパッチ適用前の全ファイルのバックアップがなければ基本的にはPSRを適用前の状態に戻すことはできません。

・その他パッチ
Opatch rollback -id <パッチ番号> というコマンドでパッチを適用前に戻すことができます。

マニュアル

OUIやOpatchについては以下のマニュアルが提供されています。

10.2マニュアル一覧
Oracle Universal InstallerおよびOpatchユーザーズ・ガイド10gリリース2(10.2) for Microsoft Windows and UNIX Systems
★ORACLE案件承ります