ORACLE Database / WAS (iAS) / SQL 자료실 - 포기하지 않으면 실패하지 않는다!
Vote Reply Modify Delete Forward Prev Next List

  Author   : 조성환 [ ladmin ] Vote: 1832, Modifies: 5, Hit: 4810, Lines: 132, Category: Etc.
Opatch (V9.2) 기능 및 사용 가이드

9i의 새 기능인 Opatch에 대한 소개와 기능, 사용 방법에 대한 내용을 소개하려 합니다.


[참고] Opatch 관련 문서

Opatch : 다재 다능한 패치 관리 유틸리티

http://www.wowunix.com/down/set/oracle/database/patch/opatch/





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를 사용한다. (Perl의 버전문제로 Opatch를 사용하지 못할 수도 있음.)

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 후, 압축을 푼다. 사용자가 임의로 원하는 디렉터리를 만들어서 그 디렉터리에 파일을 푼다. 가급적이면, Patch라는 Directory에 압축파일을 복사한 후, 작업한다.

$ 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 ]}


Prev: Opatch 설치하기 [강추]
Next: Oracle 9i Database 설치 가이드 [초강추]
2006/09/27(22:42) from 59.30.129.220
CrazyWWWBoard 2000

Vote Reply Modify Delete Forward Prev Next List
(c) Nobreak Technologies, Inc.