DevOps Days

主にインフラの話がメインです

Windows板Oracle10gにPatchsetをインストールする

前提条件

  • SGAが400MB以上あること
  • 自動メモリ管理(ASM)はONで構わない
  • SHRED_POOL_SIZEが150MB以上あること
  • JAVA_POOL_SIZEが150MB以上あること

サービスを停止する

OracleDBConsole[インスタンス名]
OracleOraDb10g_home1iSQL*Plus
OracleOraDb10g_home1TNSListener
OracleService[インスタンス名]
※以下はその他のサービスによりDLLをロックされる場合に停止
Distributed Transaction Coordinator
Windows Firewall/Internet Connection Sharing (ICS)
Windows Management Instrumentation

Pachsetのインストール

  1. Patchset CD-ROMから対象のZIPファイルをコピー
  2. ZIPファイルを解凍
  3. setup.exeを実行しUniversalInstallerを実行
  4. インストール先の指定、すでにインストールされているorahomeを指定し、上書きする

サービスを起動

OracleDBConsole[インスタンス名]
OracleService[インスタンス名]
OracleOraDb10g_home1iSQL*Plus
OracleOraDb10g_home1TNSListener

DBの更新準備

Oracleにinternalで接続

>sqlplus /NOLOG
SQL>connect / as sysdba
SQL>startup nomount

初期化方法の確認
  • システム初期化パラメータファイル(initsid.ora)を使用しているのか、サーバ・パラメータ・ファイルspfile[dbname].oraを使用しているのかを確認

SQL> show parameter pfile

NAME TYPE VALUE
spfile string E:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILE[インスタンス名].ORA
サーバパラメータの確認と修正
  • SGAターゲットのサイズを確認し350MB以下であれば修正

SQL> show parameter sga_target

NAME TYPE VALUE
sga_target big integer 280

SQL> ALTER SYSTEM SET SGA_TARGET='400M' SCOPE=spfile;

  • shared_pool_sizeのサイズを確認し150MB以下であれば修正

SQL> show parameter shared_pool_size

NAME TYPE VALUE
shared_pool_size big integer 0

SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
システムが変更されました。

  • java_pool_sizeのサイズを確認し150MB以下であれば修正

SQL> show parameter java_pool_size

NAME TYPE VALUE
java_pool_size big integer 0

SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
システムが変更されました。

  • DBを一旦終了

SQL> shutdown
ORA-01507: データベースがマウントされていません。
ORACLEインスタンスがシャットダウンされました。

DBの更新作業

DBをアップグレードモードで起動する

SQL> connect / as sysdba
アイドル・インスタンスに接続しました。
SQL> startup upgrade
ORACLEインスタンスが起動しました。

Total System Global Area 419430400 bytes
Fixed Size 1289832 bytes
Variable Size 322961816 bytes
Database Buffers 92274688 bytes
Redo Buffers 2904064 bytes

データベースがマウントされました。
データベースがオープンされました。

ログ取得の設定を行い、アップグレードスクリプトを実行する

SQL> spool patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> spool off

アップグレードログを確認

sqlplusを起動したカレントディレクトリに保存されたpatch.logを確認し異常がないことを確認する

DBの再起動

SQL> shutdown
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 419430400 bytes
Fixed Size 1289832 bytes
Variable Size 331350424 bytes
Database Buffers 83886080 bytes
Redo Buffers 2904064 bytes

データベースがマウントされました。
データベースがオープンされました。

utlrp.sqlスクリプトの実行
  • INVALIDステータスとなっているPL/SQLパッケージを再コンパイルします。この手順は必須ではありませんが、実行しておくことを推奨

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