Windows Server 2003に入っているDBサーバで、
『Oracle10g Release 10.2.0.1.0』から『Oracle10g Release 10.2.0.2.0』へ
アップグレードする機会があったため、そのときの手順を紹介します。
1.パッチを適用
下記のサイトからパッチをダウンロードします。
http://support.oracle.co.jp/
今回はWindowsで「10.2.0.2.0」のバージョンにアップグレードするため、
「p4547817_10202_WINNT.zip」のファイルをダウンロードしました。
解答すると実行ファイルがあるので、そのファイルを実行してパッチを適用します。
2.アップグレードするスクリプトを実行
SQL Plusなどで以下のコマンドを実行します。
SQL> SPOOL patch.log
SQL> @ORACLE_BASE\ORACLE_HOME\rdbms\admin\catupgrd.sql
SQL> SPOOL OFF
SPOOLコマンドを実行しているのは、エラーが発生したときにファイルにログを残すためです。
今回の環境では、実行してから終わるまで10~20分程度時間がかかりました。
実行後、ログを確認します。
エラーが発生していて何らかの対処が必要な場合は、
その対処を行ってから再度スクリプトを実行します。
3.データベースを再起動
下記のコマンドを入力してデータベースを再起動します。
SQL> STARTUP
4.PL/SQLパッケージを再コンパイル
1~3の手順を行った後はPL/SQLパッケージが無効(INVALID)になるため、
パッケージを再コンパイルします。
SQL> @ORACLE_BASE\ORACLE_HOME\rdbms\admin\utlrp.sql
これでアップグレードは完了です。
※ちなみに、1の手順(パッチファイルの実行)のみ行った場合、
以下のようなエラーが発生します。
-------------------------------------------
○起動しようとすると・・・
・インスタンスは起動するが、データベースがオープンできない。
「ORA-01092: Oracleインスタンスが終了しました。 強制的に切断されます。」
○アラートログの中身は・・・
「ORA-00704: ブートストラップ・プロセス障害です。」
「ORA-39700: データベースは、UPGRADEオプションを使用してオープンしてください。」
-------------------------------------------
実際に作業を行うまで、ファイルを実行するだけでアップグレードできると思っていたので、
しばらくこのエラーで悩んでました・・・。
コメント (1)
oracleのパッチ適用わかりづらいですね・・・。
catupgrd.sqlもバイナリな文字列が大量に流れていくので、まとに動いているのか・・・最後のstatusでとりあえずVALIDだったのでOKなんでしょうけど。
投稿者: aim | 2009年3月 1日 06:25