読者です 読者をやめる 読者になる 読者になる

geek.conf.2

あるインフラエンジニアの備忘録

PSR

Oracle

はい、今回試験環境と本番環境でOracleDBのバージョンが異なるため
Oracleのマイナーバージョンアップをすることとなりました。

Linux X86アーキテクト OracleDB をバージョン10.2.0.1.0から10.2.0.3.0に上げます。

なんか、アプリの不具合が出てて上記バージョンの違いのせいじゃないか試験
環境で検証したいんですって。

その手順を以下に示します。

Oracle internet Support Center(通称OiSC)にてOracleDB 10.2.0.3.0の
パッチファイルを入手します。

#ちなみにOiSCはサポート登録必要です。
#ちなみにこのパッチは累積パッチです。

パッチをインストールする前にバックアップを取りましょうね。

そしたらOracleプロセスとそれを掴むもの全てサービスを停止します。以下例。

$ emctl stop dbconsole
$ isqlplusctl stop

$dbshut
$lsnrctl stop

次にDBを停止します。

$sqlplus "/as sysdba"

SQL >shutdown (immediate)

さて、インストーラを起動します。のでXアプリケーションを用いる準備をしてください。

$xhost +

次にパッチを展開したファイルに移動してインストーラを上げます。

$ cd patchset_directory/Disk1
$ ./runInstaller

インストーラにてインストール名とORACLE_HOMEを入力。
#すでに入力されている。

インストールのための環境チェックをパスしてインストールする。

完了し、$ORACLE_HOME/root.shの実行を促される場合に実行する。

インストーラを閉じてリスナーを起動する。

$lsnrctl start


Oracle Database Upgrade Assistant(以下DBUA)を起動する。

$dbua

DBUA内、アップグレードするDBを選択し、無効なオブジェクトの再コンパイルオプション
を選択する。

アップグレードを開始する。

DBUAを終了する。

次にDB自体をアップグレードする。

DBを起動して以降の出力をpatch.logに吐き出させながらDBアップグレードクエリ
を流し込む。

それからDB再起動。

$sqlplus "/as sysdba"

SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF

SQL> shutdown (immediate)
SQL> startup

次にINVALIDステータスとなっている PL/SQL パッケージを再コンパイルする。

SQL> @?/rdbms/admin/utlrp.sql

最後にパッチで作成されたディレクトリ、ファイルのアクセス権限を適正に直す。

$ cd $ORACLE_HOME/install
$./changePerm.sh

以上で終わりです。私の環境では所要時間2時間ちょいかかりました。
長かった。