OPATCH(V9.2) 기능 및 사용가이드

2010.05.12 08:31

조인상 조회 수:6577

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


No. 22084

(V9.2) OPATCH 기능 및 사용가이드
================================

PURPOSE
-------

  이 문서는 9i의 새 기능인 Opatch에 대한 소개와 기능,
  사용 방법에 대한 내용을 소개한다.


Explanation
-----------

1. Opatch 소개

Oracle Server 9.2.0.2.0 부터는 interim patch(one-off patch, 즉
single patch)를 적용할 때 'opatch'라는 tool을 사용한다.

Metalink에서 항상 최신 Opatch tool 을 download받을 수 있도록
갱신된다.
Opatch는 <Bug:2617419> OPATCH ARU PLACEHOLDER. 에서 download받을 수 있다. 
2004년 11월 9일 현재, 10월 22일에 release된 최신 버젼 10.1.0.2.0을
받으면 된다.


2. Opatch 기능

Opatch는 interim patch를 적용하거나 다시 rollback할 때 사용하는
일종의 perl-based utility이다. Unix platform이나 Windows platform
에 Opatch를 사용할 수 있다.
Opatch는 기존에 오라클 데이타베이스에 적용되어 있는 patch list를
알게 해주고, 기 적용되어 있는 patch와 충돌 여부도 확인할 수 있는
기능이 있다.


3. Opatch 사용 환경

1) Opatch를 사용하기 위한 준비사항

Perl version은 최소한 5.005_03 이상을 요구하며 가급적 5.6 이상을
권장한다.
JRE는 $ORACLE_HOME에 설치된 JRE를 사용한다.


2) inventory

Inventory는 Oracle RDBMS 설치 시 두 개의 inventory가 생성된다.
하나는 oraInst.loc에서 지정된 inventory directory이고, 이것을
central inventory라고 한다.
다른 하나는 $ORACLE_HOME 아래에 생성되는 inventory directory이며
이것을 Local inventory라고 한다. Opatch 적용 시 반드시 이 두 개의
inventory가 정상적으로 유지되어야 한다.

3) RAC 환경인 경우 Oracle과 Cluster와의 인터페이스를 위하여
oracle library를 사용하는데 다음 경로가 library path에 포함되어
있어야 한다.
Sun solaris의 경우 LD_LIBRARY_PATH 이고, HP-UX의 경우 SHLIB_PATH이다. 


4. Opatch 설치

1) Metalink에서 최신 버젼 Opatch를 download받으면 p2617419_10102_GENERIC.zip
이라는 이름으로 화일이 존재한다.
이 화일을 OS에 COPY 후, 압축을 푼다.
사용자가 임의로 원하는 디렉토리를 만들어서 그 디렉토리에 화일을 푼다.

$ unzip p2617419_10102_GENERIC.zip

2) OS의 어느 디렉토리에서 사용하든지 상관없도록 하기 위해 환경변수
PATH에 Opatch가 설치되어 있는 디렉토리를 기술한다.

예) export PATH=$PATH:/oracle/opatch/Opatch
  setenv PATH $PATH:/oracle/opatch/Opatch


5. 주의 사항

Opatch 적용 시에는 반드시 기존의 inventory 즉, $ORACLE_HOME/inventory와
oraInst.loc에서 지시하는 central inventory를 backup받아 두어야 한다.
Windows의 경우 winzip, unix에서는 tar를 사용하면 된다.


<참고>
oraInst.loc 은 Unix마다 조금 다른데 다음 위치에 존재한다.

- AIX와 Linux : /etc directory
- 다른 Unix 기종 : /var/opt/oracle
- Windows : registry -> HKEY_LOCAL_MACHINE -> Software ->
        Oracle -> inst_loc 에서 지정된 위치.


Example
-------
1. opatch apply

  apply [ <ShipHome> ] [-force] [-oh <OracleHome>]
  opatch apply -invPrtLoc $ORACLE_HOME/oraInst.loc

  이 명령어는 oraInst.loc 화일의 위치가 default directory가 아닌
  경우 해당 위치를 지정하여 patch를 적용하는 명령이다.
  -local 옵션은 RAC 환경에서 patch를 다른 노드에 전파하지 않고
  Local 노드에만 적용할 때 사용한다. 이 경우 모든 노드에서 개별적으로
  patch가 진행되어야 한다.
  -force 옵션은 이전에 설치한 patch와 충돌이 있을 때 이를 무시하고
  진행하도록 한다.


2. opatch rollback

  rollback [ -id <patch id> ] [ -oh <OracleHome> ] [ -ph <patch dir> ]
  opatch rollback -id 3113008 -ph /opt/oracle/3113008

  이 명령어는 patch id 3113008을 depatch하며, 이 때 기존 patch file이
  있는 directory를 -ph argument를 이용하여 지시한다.
  기본적으로 사용하는 옵션은 -id 이다. -id는 depatch하려는 patch 번호이다.

  -local 옵션은 RAC 환경에서 depatch를 다른 노드에 전파하지 않고
  Local 노드에만 적용할 때 사용한다. 이 경우 모든 노드에서 개별적으로
  depatch가 진행되어야 한다.
 

3. opatch lsinventory

  lsinventory [-all] [-oh <OracleHome>]
  opatch lsinventory -all -oh /opt/oracle

  이 명령어는 현재 db 서버에 적용되어 있는 patch list를 보여준다.
  -all 옵션은 Central inventory에 등록된 모든 $ORACLE_HOME의 이름과
  경로를 보여준다.
  -oh 옵션은 기존의 $ORACLE_HOME 을 무시하고 새로운 $ORACLE_HOME을
  지정할 때 사용한다.
  -detail 옵션을 사용하면 install된 oracle product list를 version과
  함께 보여준다. 
 

  예) $ opatch lsinventory -all

    PRODUCT NAME                  VERSION
    ============                  =======
    Advanced Queueing (AQ) API          9.2.0.1.0
    Advanced Replication              9.2.0.1.0
    Agent Required Support Files        9.2.0.1.0
    .
    .
    .
    XML Transx                    9.2.0.1.0
    XSQL Servlet                  9.2.0.1.0
   
    Installed Patch List:

    1) Patch 3574853 applied on Sun Apr 25 03:27:43 JST 2004
      [ Base Bug(s): 3111457  ]
    2) Patch 3400911 applied on Sun Apr  25 03:24:40 JST 2004
      [ Base Bug(s): 3304290  ]
    3) Patch 3508417 applied on Sun Apr 04 22:53:59 JST 2004
      [ Base Bug(s): 3046394  ]
    4) Patch 3213774 applied on Sun Apr 04 09:12:08 JST 2004
      [ Base Bug(s): 3186503 3210293  ]
    5) Patch 3226815 applied on Sun Apr 04 09:09:22 JST 2004
      [ Base Bug(s): 3157063  ]
    6) Patch 3118677 applied on Sun Apr 04 09:06:28 JST 2004
      [ Base Bug(s): 3118677  ]
    7) Patch 3113003 applied on Sun Apr 04 09:04:45 JST 2004
      [ Base Bug(s): 2968709  ]


4. opatch query 

  이 명령어는 interim patch에 대한 정보를 조회한다.
  -get_base_bug 옵션은 해당 interim patch에 의해 fix된 base bug를 조회한다.
  -get_component 옵션은 해당 interim patch를 적용 시 요구되는
  oracle component 를 나타낸다.
  -get_date 옵션은 interim patch를 생성한 날짜를 보여준다.
  -get_os 옵션은 해당 interim patch가 지원하는 platform을 보여준다.
  -is_rolling 옵션은 rolling patch를 지원하는지에 대한 여부를 알려준다.
  -all option은 위의 모든 정보들을 알려준다.


5. opatch version

  이 명령어는 사용하는 opatch 유틸리티의 version을 보여준다.


6. 모든 opatch 명령어는 각 명령어에 대한 상세한 usage를 보여주는
  -help 옵션을 가진다.

  opatch.pl [ -h[elp] { [ apply | lsinventory | rollback | version ] }
 

Reference Documents
-------------------
<Note:189489.1>
<Note:242993.1>
서버에 요청 중입니다. 잠시만 기다려 주십시오...