Windows Oracle Database にパッチを適用してみた
まずは情報収集
Windows版のOracleの場合、DBバンドルパッチという形で提供されているようなので、それを当てることにする。
その前に、MOS(My Oracle Support)で、パッチ検索しておく。
推奨は2件。
パッチ19852357 | ORACLE JAVAVM COMPONENT 12.1.0.1.1 DATABASE PSU - GENERIC JDBC PATCH (OCT2014) |
パッチ20160748 | WINDOWS DB BUNDLE PATCH 12.1.0.1.16 |
READMEを読むと、OPatchを新しくしとけってあるので、p6880880もダウンロードしておくこと。
パッチ適用準備
ダウンロードしておいたパッチのzipを解凍。
OPathのほうは、ORACLE_HOMEの下に既にOPatchが存在するので、OPatch_oldか何かにリネームしてp6880880のほうをコピペする。
それ以外のほうは、ORACLE_HOMEの下にpatchディレクトリを作って、その中にフォルダ毎放り込んでおく。
patchディレクトリの下に、19852357ディレクトリや20160748ディレクトリを置くことになる。
パッチ適用
ここから先はコマンドプロンプトで実行する。まずは、パスを通すのと、ディレクトリ移動。
set ORACLE_HOME=C:\app\oracle12c\product\12.1.0\dbhome_1 set PATH=%ORACLE_HOME%\OPatch;%ORACLE_HOME%\perl\bin;%PATH% cd %ORACLE_HOME%\patch\20160748
20160748のREADMEによれば、サービス停止しておけとあるのでサービス停止。
net stop OracleServiceORCL net stop OracleOraDB12Home1TNSListener net stop OracleVssWriterORCL net stop OracleOraDB12Home1MTSRecoveryService
パッチ状態の確認(事前)。
opatch lspatches opatch lsinventory
パッチ適用。
opatch apply
20160748のREADMEによれば(後略
net start OracleServiceORCL net start OracleOraDB12Home1TNSListener net start OracleVssWriterORCL net start OracleOraDB12Home1MTSRecoveryService sqlplus /nolog conn / as sysdba startup ←上のサービス開始で始まっているんだけど、README通りだとこれ。 quit
パッチ適用されているかどうかの確認。
opatch lspatches opatch lsinventory
20160748のREADMEによれば、これが必要。19852357ではこんなの書いていないので、READMEで各パッチ毎に指示があるはず。
datapatch -verbose
19852357のほうもREADME読みながらやってみた。こっちは基本上と同じ流れで、opatch applyのみで、datapatchはなし。
これでおしまい。振り返ってみると意外に簡単でした。