OPATCH(V9.2) 기능 및 사용가이드
2010.05.12 08:31
원문 : 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>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
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>