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)形式で提供せざるをえません。 共有ライブラリやバイナリファイルで提供すると修正が競合する可能性が非常に高くなることから個別の問題に対して都度修正パッチを出すのではなくパッチ・バンドルとして定期的に複数問題の修正パッチをリリースする方針としているものと予想されます。
入手方法
上記いずれもサポート契約を結んだ上で利用できるサポートサイト(OiscやMy 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解凍するだけで使用することが可能です。
パッチの適用状況の確認
・PSRPSRを適用した場合、バージョンの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