2008.01.31

Oracle10gマイナーバージョンのアップグレード

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> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @ORACLE_BASE\ORACLE_HOME\rdbms\admin\catupgrd.sql
SQL> SPOOL OFF

SPOOLコマンドを実行しているのは、エラーが発生したときにファイルにログを残すためです。
今回の環境では、実行してから終わるまで10~20分程度時間がかかりました。

実行後、ログを確認します。
エラーが発生していて何らかの対処が必要な場合は、
その対処を行ってから再度スクリプトを実行します。

3.データベースを再起動
下記のコマンドを入力してデータベースを再起動します。

SQL> SHUTDOWN
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なんでしょうけど。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
yamaoka