0. patch란?
일반적으로 하는 patch는 Bug Patch 라고 하며, 이것은 기존에 Install Package 형태로 Install 한 기능중에서 어떠한 기능이 되지 않을 때 그 기능을 제대로 동작 하게 하며, 기능이 향상 되거나 또는 관련 법령이 변경되어 Update 한것을 patch 라고 한다.
patch 종류 : patchset, Opatch, CPU patch, PSU, interim patch (=one-off patch) 등..




1. patchset
오라클에서 patchset은 릴리즈 버전의 통합 패치 파일로 생각 하면 된다. 만약 10.2.0.1 버전을 patchset 을 설치할 경우 10.2.0.4 로 변경 되며 각종 실행 파일이 모두 10.2.0.4 로 변경된다. 결국 patchset은 릴리즈 버전의 업데이트 패치 파일이라고 생각 하시면 보다 쉽게 이해 될 것이다.




2. Interim patch(=One-off patch)
일회성 버그를 잡아주는 패치. 오라클 DB에 갑작스럽게 치명적인 버그가 발견되었을때 쓰이는 패치다.




3. PSU(Patch Set Update)
PSU 는 오라클에서정기적으로 권고하는 패치로서 중요한 단일 패치들을 통합한 것을 의미한다. (Interim patch  을 합쳐 놓은 것)

     PSU 출시 일정은 분기별로 제공 하며 일정은 다음과 같다.
            - 1월, 4월, 7월 10월 중순의 화요일 제공

     PSU 패치는 다음과 같은 내용을 포함 한다.
            - 실제 운영 환경에서 이미 검증
            - CPU 패치

     PSU 패치는 다음고 같은 내용을 포함하지 않는다.
            - 새로운 인증이 필요한 패치(optimizer plan 이 변경 가능한 패치)
            - Database 구성의 변경이 필요한 패치

     PSU 패치는 10.2.0.2.1~4 까지 가능하다.(분기별 4번)




4. CPU(Critical Patch Update)
CPU 는 오라클 제품의 보안 문제 해결을 위한 패치다.

     CPU 출시 일정은 분기별로 제공 하며 일정은 다음과 같다.
            - 1월, 4월, 7월, 10월 중순의 화요일 제공

     CPU 패치는 10.2.0.2.1~4 까지 가능하다.(분기별 4번)



5. Opatch
9i 에서부터 등장. 패치 조회 및 다운 등을 쉽게 하는 프로 그램. 설치되어 있는 패치를 조회하고 필요없는 패치를 삭제하는 등의 작업을 해준다.
metalink 에서 다운 받을 수 있으며 10g 에서부터 자동으로 설치된다. 9i 는 수동으로 설치해야 함. 



Question.  PSU가 Interim patch(=One-off patch)의 모음이라면, 왜 Interim patch(=One-off patch)를 따로 할까?
Answer.
PSU에 Interim patch(=One-off patch)에 있는 patch가 모두 들어가지는 않고 일부 빠진 경우도 있기 때문에 Interim patch(=One-off patch)가 필요한 경우가 종종 있다.





패치 순서 :  patchset  →  Interim patch(=One-off patch) 


패치셋 적용 - 대략적으로..
1. 모든 프로세스 종료
2. 다운받은 패치셋 파일 ./runInstaller
3. 기존에 설치한 오라클 버전 선택
4. 기존에 설치한 name 및 path 등 선택
5. Summary 후 설치 시작
6. configuration script 수행 - root 계정으로


원오프패치 적용
1. 모든 프로세스 종료
2. 패치 폴더 이동
ex)  6830856 패치 적용시 해당 폴더 이동 
$ cd /home/oracle/10.1.2.3_patches/6830856
3. 패치 실행  →  바로 실행안되면, path 등록  - opach 폴더 위치 : $ORACLE_HOME/OPatch
$ opatch apply
4. opatch lsinventory로 패치 된 것 확인




Question.
배우는 중엔 순서대로 설치하기 때문에 문제가 없지만, 실제로는 DB가 운영되고 있는 상태에서 패치를 해야 하는 경우가 있다. 
배우는중 : 10.2.0.1  → 10.2.0.4 →  dbca
실제 : 10.2.0.4 → dbca →  10.2.0.5 
이런경우 패치하는 순서는?
Answer.
patch 는 덮어 씌우는 것이기 때문에 사용중인 서비스는 (db shutdown, listener) 모두 종료 시키고, patch 를 실행 시켜야 한다. 엔진과 DB는 백업 받아 놓고 patch 해야 한다.

1. 모든 프로세스 중지  → Oracle Database에서 사용하는 모든 Process를 중단한다.

emctl stop dbconsole

$ isqlpluscrl stop

$ lsnrctl stop




2. Oracle Database를 종료

$ sqlplus / as sysdba

SQL> shutdown immediate

SQL> startup

SQL> shutdown




3. 만약을 대비하여 File System를 Backup



4. DB Parameter 값을 변경

SYSTEM tablespace에 여유공간이 50MB 이상 남아있어야 한다.

만약 50MB 이하라면 system Tablespace 공간을 늘려야 한다.

적용부분 : SHARED_POOL_SIZE, JAVA_POOL_SIZE

$ lsnrctl start

$ sqlplus / as sysdba

SQL> startup nomount

SQL> show parameter pfile;

SQL> show parameter shared_pool_size

SQL> show parameter java_pool_size

SQL> alter system set shared_pool_size='150M' scope=spfile;

SQL> alter system set java_pool_size='150M' scope=spfile;

SQL> shutdown




5. 윗 내용 모두 적용시키고 실행

$ lsnrctl start

$ sqlplus /nolog

SQL> CONNECT SYS/SYS_password AS SYSDBA

SQL> STARTUP UPGRADE

SQL> SPOOL patch.log

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

SQL> SPOOL OFF  → patch.log file 확인

SQL> SHUTDOWN

SQL> STARTUP

SQL> @?/rdbms/admin/utlrp.sql  → Invalid PL/SQL package를 compile




6. 마무리

$ cd $ORACLE_HOME/install/changePerm.sh



※ 참고 : DB 종료/시작, Listener 종료/시작 방법

1. DB 종료

$ sqlplus / as sysdba
SQL> shutdown immediate

Database closed.
Database dismounted.
ORACLE instance shut down.




2. DB 시작

$ sqlplus / as sysdba
SQL> startup




3. listener 종료

$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 26-DEC-2011 16:14:05
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully


 


4. listener 시작

$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 26-DEC-2011 16:15:42
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
Starting /home/oracle/product/10g/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.5.0 - Production
System parameter file is /home/oracle/product/10g/network/admin/listener.ora
Log messages written to /home/oracle/product/10g/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server122)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                26-DEC-2011 16:15:42
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
Listener Log File         /home/oracle/product/10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server122)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully





5. listener 상태 확인

$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 26-DEC-2011 16:18:00

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                26-DEC-2011 16:15:42
Uptime                    0 days 0 hr. 2 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
Listener Log File         /home/oracle/product/10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server122)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully



'Oracle > Oracle - 설치' 카테고리의 다른 글

RHEL4 + 10g 설치 _silent mode  (0) 2011.12.23
RHEL4 + 10g 설치 _OUI  (0) 2011.12.23
Oracle 삭제하기  (0) 2011.12.22
RHEL3 - 9i 설치 _silent mode  (0) 2011.12.22
RHEL4 - 9i 설치 _OUI  (2) 2011.12.21
Posted by 딩구르
,