[스크랩] OPatch
2011. 3. 11. 11:13ㆍOracle/Oracle Scrap
반응형
남궁혁 | 한국오라클
오라클에서는 패치 관리 유틸리티 Opatch를 통해 새로운 패치 관리 기능들을 제공하고 있다.
여기서는 Opatch의 구성 및 설치 방법과 각 명령어의 사용법을 소개한다.
아울러, 기존에 발생했던 몇 가지 문제들도 소개함으로써, 독자의 Opatch 사용에 도움을 줄 것이다.
오라클에서는 특정 문제를 완벽하게 해결한 패치셋(patchset)이나 차기 릴리즈를 발표하기 전에 임시 패치(interim patch, 혹은‘one-off’patch) 를 제공하여 해당 문제에 적용할 수 있도록 하고 있다. 물론, 이 임시 패치 는 특정 버전의 컴포넌트에만 적용할 수 있다. 예를 들어, Oracle Database 8.1.7.3에 대해 생성된 임시 패치는 Oracle Database 8.1.7.4에 는 적용할 수 없다. 그리고, 대부분의 임시 패치는 차기 패치셋에 포함된다. 그런데, 이 임시 패치는 해당 문제가 해결됐는지는 테스트하지만, 패 치가 적용된 후 발생할 수 있는 부작용 등을 테스트하는 리그레션 (Regression) 테스트는 하지 않는다. 이 리그레션 테스트는 패치셋에서 테 스트된다. 따라서 특별한 경우가 아니라면, 임시 패치를 적용하기보다는 패치셋을 적용할 것을 권한다.
임시 패치를 여러 개 적용하다 보면, 이전 임시 패치와의 충돌이 발생 하기도 한다. 이를 방지하기 위해서, 임시 패치를 요청할 경우에는 Oracle Support에 이전에 설치한 모든 임시 패치 리스트를 제공하여, 충돌여부를 확인하고, 만약 충돌 발생시 병합하는 과정을 거치도록 해야 한다(임시 패 치 적용시 또 하나 주의할 점은 함께 제공되는 해당 패치의 Readme 파일 을 꼭 확인하는 것이다).
Oracle Database 9.0.1 버전까지는 패치 적용시 셸 스크립트를 이용 하여 패치를 적용하도록 되어 있었다. 그러나 9.2 버전부터는‘Opatch’라 는 패치 관리 유틸리티가 등장하여, 이전에 없었던 새로운 패치 관리 기능 들을 제공하고 있다.
이 글에서는 Oracle Database 9.2에서 패치 적용시 사용되는 Opatch 의 구성 및 설치 방법, 각 명령어의 사용방법에 대해 알아보도록 하겠다. 그 리고 기존에 발생했던 대표적인 Opatch 적용시의 문제들도 간략하게 소 개한다.
Opatch 사용 환경 및 설치 방법
Opatch는 Oracle Database 9.2 이상의 오라클 데이타베이스와 Oracle Application Server 10g에 임시 패치를 적용하는 과정을 지원한다. 현재 지원되는 플랫폼은 Unix와 Windows 계열이며, 현재 IBM OS/390에 대 해서는 지원하지 않는다. 따라서, IBM OS/390에 대해서는 이전(Oracle Database 9.0.1 이전 방식)과 동일하게 임시 패치를 적용해야 한다.
Opatch는 Oracle Database 9.2에 포함되어 있지 않으며, 설치하려면 Oracle Metalink에서 다운로드해야 한다. 다운로드 절차는 다음과 같다.
1.Oracle Metalink(http://metalink.oracle.com)에 로그인한다.
2.PATCHES 버튼을 선택한다.
3.Simple Search 링크를 선택한다.
4.Patch(s) Numbers 폼에‘2617419’를 입력한다.
5.Platform or Language 리스트에서 해당 플랫폼을 선택한다.
6.Go 버튼을 선택한다.
7.다음 항목을 선택한다.
2617419 Universal Installer: Patch OPATCH ARU PLACEHOLDER. (10.1.0.2)
8.다운로드가 진행된다.
9.다운 받은 파일을 압축 해제한다.
$ unzip p2617419_10102_GENERIC.zip
10.User Path에 등록한다.
For Korn / Bourne shell : % export PATH=$PATH:/oracle/opatch/Opatch For C Shell : % setenv PATH $PATH:/oracle/opatch/Opatch
Opatch를 실행을 위한 요구사항.
● Perl : 최소 Perl 5.0.0.5_03 이상이 시스템에 설치되어야 하며, 5.6 버전 이상 이 권장된다. Perl은 오라클 설치시‘Typical’옵션으로 설치하거나, ‘Custom’설치시 Apache Web Server를 선택하면 $ORACLE_HOME/ Apache/perl에 설치된다.
● Inventory : 오라클 제품은 두 개의 인벤토리를 유지하는데, 하나는 oraInst.loc 파 일 에 서 지 시 하 는 센 트 럴 인 벤 토 리 이 며 , 보 통 $ORACLE_BASE/oraInventory의 이름으로 존재한다. 이 인벤토리는 설치 된 오라클 제품의 정보를 보관한다. 또 하나의 인벤토리는 로컬 인벤토리로, $ORACLE_HOME/inventory에 위 치 한 다 . 이 인 벤 토 리 에 는 특 정 ORACLE_HOME에 설치된 컴포넌트 정보를 저장한다. 이 두 개의 인벤토리 가 정상적으로 유지되어야 한다(참고로, oralnst.loc의 위치는 AIX, Linux는 /etc 디렉토리에 위치하며, 다른 Unix에서는 /var/opt/oracle에 위치한다. Windows는 레 지 스 트 리 에 서 HKEY_LOCAL_MACHINE/Software/ Oracle/Oracle/inst_loc 항목에 지정된 위치에 있다).
● Opatch : Oracle9i Database에는 Opatch 유틸리티가 번들되어 있지 않으므 로, 앞에서언급한것처럼Oracle Metalink에서다운받아야하며, 해당패치넘 버로 최신Opatch 버전이 업데이트되므로, 항상 최신 버전을 유지하도록 한다.
● Path : RAC(Real Application Cluster)에서 임시 패치 적용시, $ORACLE_ HOME/lib와$ORACLE_HOME/srvm/lib이 라이브러리 패치에 포함되어야 한다(예를 들어, Solaris의 경우 LD_LIBRARY_PATH, HP-UX의 경우 SHLIB_PATH).
Opatch를 설치한 후 디렉토리 구조를 보면 다음과 같이 구성되어 있다.
패치 파일을 다운 받아 압축을 풀면, 해당 패치 번호의 이름으로 디렉 토리가 생성되며, 이 밑에 etc와 files 두 개의 디렉토리가 생성된다. Files 디렉토리 밑에는 lib 디렉토리가 있고, 이 디렉토리에 실제로 적용할 객체 파일들이 있다.
etc 디렉토리 밑에는 config와 xml 디렉토리가 생성된다. Config 디렉토리 밑에 있는 Actions 파일은 패치가 적용되어야 하는 대상 아카이브 파일과 디렉토리, 메이크 파일 등이 기록되어 있다. Inventory 파일에는 패치 적용 후 오라클 인벤토리에 업데이트해야 하는 내용과 대상 플랫폼, 오라클 버전이 기록되어 있다.
Xml 디렉토리에는 GenericAction.xml 파일이 있다. 이 파일에는 각 운영체제별로 사용할 명령어가 정의되어 있다. ShipHomeDirectoryStructure. xml 파일에는 패치 디렉토리의 구조가 정의되어 있다.
Opatch의 사용 방법
Opatch의 기능을 정리하면 다음과 같다.
● 임시 패치의 적용
● 적용한 임시 패치의 제거
● 설치한 컴포넌트와 패치(임시 패치 및 패치셋)에대한정보조회
● 임시 패치에 대한 정보 조회
그러면 이런 기능들을 어떻게 사용하는지 하나씩 알아보자.
Usage : opatch [ -h[elp] ] [ -r[eport] ] [ command ] [ command argument ]
Global argument
-h[elp] : 특정 명령어에 대한 설명
예) opatch -h lsinventory
-r[report] : 실제 패치 적용 없이 처리과정을 화면 출력
패치 적용
패치 적용은 Apply 명령어를 사용한다. 기본적인 명령은 다음과 같다.
$ opatch apply [ -delay ] [ -force ]
[ -invPtrLoc ]
[ -jdk ] [ -jre ] [ -local ]
[ -minimize_downtime ] [ -no_bug_superset ]
[ -no_inventory ] [ -oh ]
[ -retry ] [ -silent ] [ -verbose ]
각각의명령어아규먼트(command argument)를설명하면, 다음과같다.
● force : 이전에 설치한 임시 패치와 충돌 발생시 이를 무시하고 설치하도록 한 다. 이 경우 기존의 객체 파일을 새로운 객체 파일로 대체하게 되므로 주의하여 야한다.
● invPtrLoc : oraInst.loc 파일의 위치를 수동으로 지정할 때 사용한다. 오라클 제품 설치시 별도의 옵션을 주지 않으면 oraInst.loc 파일은 각 플랫폼의 디폴 트 위치에 생성된다. 이 위치를 사용자가 변경하기 위해‘runInstaller - invPtrLoc <경로 및 파일명>’처럼 사용할 수 있다. Opatch에 oraInst.loc 파 일의 위치를 알려주기 위해 이 아규먼트를 사용해야 한다.
● jdk : 디폴트로 사용되는$ORACLE_HOME/jdk 이외의 jdk를 이용하여 패치 할 때 이 아규먼트를 사용한다.
● jre : 디폴트로 사용되는 $ORACLE_HOME/jre 이외의 jre를 이용하여 패치 할 때 이 아규먼트를 사용한다.
● local : RAC에서 사용할 수 있으며, 패치 적용을 다른 노드에 전파하지 않고 로컬 노드에만 적용한 후 인벤토리도 로컬 노드에서만 업데이트한다. 이 경우 다른 노드에서도 개별적으로 로컬 아규먼트를 이용하여 즉시 패치가 적용되어 야한다. 일부 노드만 패치를 적용해 운영하는 것은 허용되지 않는다.
● minimize_downtime : 임시 패치 적용중 RAC의 다운타임을 최소화하기 위해 사용할 수 있다.
● no_bug_superset : 설치하려는 패치가 이미 설치한 패치의 슈퍼셋인 경우 에러를 발생시킨다.
● no_inventory : 패치 적용 과정 중에서 인벤토리를 읽거나 업데이트하는 과 정을 생략한다. 이 명령어 아규먼트는 인벤토리 변조 등으로 인해 정상적으로 인벤토리를 읽거나 업데이트할 수 없을 때만 사용해야 하며, 일단 사용 후에는 미지원 상태가 되므로 사용에 주의해야 한다. 그리고 위에서 설명한 로컬 명령 어 아규먼트는와는 같이 사용할 수 없다
● oh : 정의된$ORACLE_HOME 대신에사용할ORACLE_HOME을지정한다.
● silent : 사용자 인터랙션을 모두 디폴트 값으로 적용하여 패치를 진행한다.
● verbose : 기본적으로 나타나는 정보보다 더 자세한 내용을 화면과 로그 파일 에 출력한다.
● Patch_location : 설치하려는 임시 패치의 모든 경로를 표시한다.
그러면, 패치 적용의 사용 예를 간단히 알아보자.
$ opatch apply
단순히 이 명령으로 패치를 적용할 수 있다.
$ opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc -silent
이 명령으로 oraInst.loc 파일의 위치를 알려주고, 모든 사용자 인터랙 션은 디폴트 값으로 설정한 후 패치를 적용할 수 있다.
패치 제거
패치 제거를 위해서는 Rollback 명령어를 사용한다.
$ opatch rollback -id [ -invPtrLoc ]
[ -jdk ] -jre -local
[ -oh [ -ph ]
-silent -verbose
Rollback 명령어 아규먼트 중 Apply 명령어 아규먼트와 중복되지 않 는 아규먼트는 다음과 같다.
● id : 제거하려는 임시 패치 번호이다.
● ph : 패치 스테이지의 위치, 즉 패치를 제거할 때도 패치 파일이 필요하다.
간단한 패치 제거 사용 예는 다음과 같다.
$ opatch -id 380927 -ph /opt/oracle/920/380927
위의 명령으로 패치 번호 380927을 롤백하게 된다.
패치 정보 조회
패치 정보 조회를 위한 명령은 다음과 같다.
$ opatch query [ -all ] [ -get_base_bug ] [ -get_component ]
[ -get_date ] [ -get_os ] [ -get_system_change ]
[ -is_rolling ] [ -is_shutdown ]
패치의 조회는 Query 명령어를 사용하며, 다운 받은 임시 패치 자체 의 정보를 확인할 때 사용한다.
Query 명령어의 아규먼트는 다음과 같다.
● all : 모든 아규먼트로 조회되는 정보를 알려준다.
● get_base_bug : 해당 패치에 의해 수정된 베이스 버그를 알려준다.
● get_component : 패치 적용시 요구되는 컴포넌트를 알려준다.
● get_date : 패치가 생성된 일자를 알려준다.
● get_os : 패치 파일이 지원하는 운영체제를 알려준다.
● get_system_change : 해당 패치를 적용한 후 시스템에 변경되는 사항을 알 려주는 아규먼트이지만, 현재는 지원되지 않는다.
● is_rolling : 해당 패치가 롤링 패치가 가능한지 알려준다.
● is_shutdown : 해당 패치 적용시 인스턴스를 다운해야 하는지 여부를 알려주 지만, 현재는 지원되지 않는다.
설치된 패치 리스트 조회
ORACLE_HOME에 설치된 오라클 제품 컴포넌트를 조회하거나, 적용된 임 시 패치를 조회할 때는 lsinventory 명령어를 사용한다.
$ opatch lsinventory [ -all ] [ -detail ]
[ -invPtrLoc ]
[ -jre ] [ -oh ]
이 명령어의 아규먼트는 다음과 같다.
● all : ORACLE_BASE 밑에 설치된 모든ORACLE_HOME 정보를 표시한다.
● detail : 설치된 패치 내에 포함된 라이브러리 파일까지 표시해 주므로 패치 적 용시 충돌되는 객체 파일을 확인할 수 있다.
Opatch 버전 조회
Opatch의 버전을 조회하는 실제 예는 다음과 같다. 여기서 현재 사용한 Opatch는 1.0.0.0.50 버전임을 알 수 있다.
[rmtdcaix4]/apac/rdbms/3748283> ../OPatch/opatch version
PERL5LIB=/apac/rdbms/64bit/app/oracle/product/9.2.0.4/Apache/perl/lib/5.00503:../
OPatch/perl_modules; export PERL5LIB
/apac/rdbms/64bit/app/oracle/product/9.2.0.4/Apache/perl/bin/perl
../OPatch/opatch.pl version
../OPatch/opatch.pl version: 1.0.0.0.50
RAC에서의 Opatch 사용
기본적으로 임시 패치 적용시는 인스턴스를 다운한 후 적용해야 하므로, 패 치 적용시는 서비스를 할 수 없게 된다. RAC에서는 몇 가지 아규먼트를 사용 하여 다운타임을 최소화할 수 있다.
대략적으로RAC에서 패치가 적용되는 방법을 적어보면 다음과 같다.
If (사용자가 패치 적용방법을minimize_downtime으로 설정)
patching mechanism = Minimize Downtime
else if (패치가 롤링 패치를 지원)
patching mechanism = Rolling
else
patching mechanism = All-Node
여기서, 주의할 점은 CFS 등의 공유 파일 시스템에 오라클 제품을 설치 하여 여러 노드에서 공유하는 경우에는 minimize_downtime과 롤링 패치 가 적용되지 않는다는 것이다.
그러면 각각의 방법에 대해 알아보자.
All-Node
이것은 일반적인 데이타베이스에 패치를 적용하는 것처럼, 모든 인스턴스를 다운한 후, 한 노드씩 순차적으로 진행한다. ORACLE_HOME을 여러 노드 에서 공유하는 경우는 이 방식으로 패치를 적용해야 한다.
Minimize_downtime
Minimize_downtime은 RAC 운영시 다운타임을 최소화하기 위해 사용된 다. 2노드RAC의 경우를 예로 패치 절차를 알아보자.
1.먼저 로컬 노드의 인스턴스를 셧다운한다.
‘opatch apply -minimize_downtime’명령으로 패치를 시작한다.
2. ‘Is this node ready for updating?’질문에‘Yes’로 답하면, 로컬 노드에 패치가 적용된다.
3.패치 적용 후 다음에 적용할 노드명을 물어본다.
4.해당 노드명을 입력하면, 이 노드의 인스턴스를 셧다운하도록 요청한다.
5.요청받은 노드의 인스턴스는‘Shutdown immediate’로 셧다운한 후, 셧 다운이 완료되면 이미 패치가 적용된 노드의 인스턴스가 셧다운한다.
6.두 번째 노드에 패치를 적용한다.
7.인벤토리 정보가 업데이트된다.
8.패치가 완료되면 두 번째 인스턴스도 셧다운한다.
Minimize_downtime 아규먼트를 사용해도 모든 인스턴스가 다운되는 단계는 있지만, 5번 단계에서만 해당되므로, 다운타임을 최소화할 수 있다.
Rolling Patch
롤링 패치가 Minimize_downtime과 틀린 점은 다운타임이 전혀 없다는 것이다. 적용 절차는 다음과 같다.
1.먼저 인스턴스1을 셧다운한다. 이 단계에서 인스턴스2는 서비스 중이다.
2.노드1에서‘opatch apply’명령으로 패치를 적용한다.
3.노드1에 패치가 적용되었으면, 인스턴스1을 시동하라는 메시지를 받는다.
그리고 다음에 적용할 노드를 입력하도록 메시지를 받는다.
4.인스턴스2를 셧다운한다.
5.3번 세션에서 계속 이어서 노드2에 패치를 적용한다.
6.패치 적용후 인스턴스2를 시동한다.
롤링 패치는 모든 패치가 다 가능한 것은 아니고, 롤링 패치를 지원하도 록 설계된 패치만 가능하다. 롤링 패치가 가능한지 여부는‘opatch query - is_rolling’명령으로 확인할 수 있다.
Windows 플랫폼에서 Opatch 사용
Windows에서 Opatch를 사용할 때도 기본적인 명령어는 동일하다.
Opatch 명령을 실행하면 Windows 레지스트리에 ORACLE_HOME 이 등록되어 있어도, ORACLE_HOME이 지정되지 않았다는 메시지가 나 온다. Opatch 명령어를 사용할 때 -oh 아규먼트를 사용하여 ORACLE_HOME을 지정하거나, DOS 프롬프트에서 다음 명령으로 ORACLE_HOME을 지정한다.
C:\> Set ORACLE_HOME =
트러블슈팅
>임시 패치가 적용되었는지 어떻게 확인할 수 있는가?
일반적으로 패치가 적용되었는지를 보려면‘opatch lsinventory’를 사용하 여 확인한다.
Oracle Database 9.2 이 상 에 서 임 시 패 치 를 적 용 하 면 ,
$ORACLE_HOME/.patch_storage 디렉토리 밑에 해당 패치 번호를 이름 으로 디렉토리가 생성되고, 이 디렉토리 밑에 패치 적용 로그와 패치 적용 이전의 라이브러리 파일, 롤백시 적용할 스크립트가 있다. 여기서 로그 파 일을 보는 것도 패치가 적용되었는지 확인하는 방법이 될 수 있다. 이 로그 파일은 패치 적용을 실행하는 횟수만큼 생성된다.
또 한 가지 방법은 아카이브 파일을 Ar 명령으로 조회해 보는 것이다.
예를 들어, kko.o 파일을 libserver9.a에 적용하는 경우, ‘ar tv libserver 9.a|grep kko.o’명령으로 kko.o의 타임스탬프를 조회할 수 있다.
Windows에서 Opatch 실패
Windows 플랫폼에서Opatch를실행하면다음메시지가나오는경우가있다.
C:\oracle\ora92\OPatch>opatch lsinventory
“You have to invoke the patch tool manually.”
“The syntax is:”
“ perl /opatch.pl ”
“If everything is installed correctly you should be able to run”
“ perl /opatch.pl”
“ and see the basic help message.”
C:\oracle\ora92\OPatch>perl opatch.pl lsinventory
<< 중략 >> Required Jar File under Oracle Universal Installer = jlib\OraInstaller.jar
‘“”C:\Program’은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
Get inventory loc. from C:Program Files...
<< 생략 >>
Opatch 사용시 권장되는 Perl 버전은 5.6 이상이지만, 이상하게도 Windows에서 Perl 5.6 이상을 사용하여 Opatch를 실행하면 위와 같은 에러 메시지가 발생한다. 이 경우 $ORACLE_HOME/Apache /perl을 사 용하도록 한다.
컴포넌트/버전의 불일치
This Oracle Home does not have components/versions required by the patch.
ERROR: OPatch failed during pre-reqs check.
위와 같은 메시지는 적용하려는 임시 패치가 요구하는 컴포넌트가 설치되 지 않았거나, 지원하는 버전이 틀린 경우이다.
패치 파일의 요구사항은‘opatch-query’명령으로 조회해 볼 수 있다.
혹은 patch stage/etc/config/inventory 파일을 열고, 항목을 확인해도 된다.
유효한 패치 영역이 아닌 경우
Not a valid patch area
이 경우는 현재의 작업 디렉토리가 패치 디렉토리가 아니거나 패치 디렉토 리명이 패치 ID와 같지 않아서 발생하는 문제이다.
패치 디렉토리가 현재 디렉토리가 아닌 경우는 경로를 명시해 주어야 한다. 예를 들어서, 현재 디렉토리는‘/oracle’이고, 패치는‘/oracle/3809254’에 있는 경우, ‘opatch apply /oracle/3809254’라고 명령을 내려야 한다.
패치 디렉토리가 패치 ID와 이름이 다른 경우는 먼저 패치 ID를 확인 한다. 이 정보는‘opatch query -all’로 확인하거나‘patch stage/etc /config/inventory’파일에서 reference_id 항목에서 확인할 수 있다. 이 후 디렉토리명을 패치 번호와 동일하게 맞춰 준다.
java.lang.UnsatisfiedLinkError
Exception in thread “main”java.lang.UnsatisfiedLinkError:
no oraInstaller in java.library.path
이 경우 원인은 대부분 liboraInstaller.so가 라이브러리 경로에 포함 되지 않았기 때문이다.
이 파일은 $ORACLE_HOME/oui/bin/ 디렉토리에 있 다. 이 경로를 라이브러리 경로에 추가하고, 다시 패치를 적용한다.
java.lang.NullPointerException
Exception in thread “main”java.lang.NullPointerException at XXX.main...
오라클 제품의 최초 설치시 RunInstaller를 -invPtrLoc 옵션을 사용해서 실행한 경우일 수 있다. 이 경우 Opatch를 사용할 때도 동일한 -invPtrLoc 를 사용하여 oraInst.loc의 위치를 명시해 주어야 한다.
Oracle Support에 문의해야 하는 경우
모든 문제가 그렇지만, Opatch 실행시 발생하는 문제도 거의 유형별로 다 르기 때문에, 위와 같이 일반화 하는 것이 힘들다. 따라서 일단 문제가 발생 하면, 다음과 같이 기본적인 점검을 하고, 다음 사항을 검토한다.
● Opatch가 최신 버전인지 확인
● Opatch를 실행하기 위한 환경이 셋업되었는지 확인
PERL, JDK, 환경변수(PATH, LIBRARY PATH, …)
● Fresh Install인지 확인
● HP에서 fuser 문제인 경우 NOTE. 234741.1를확인
더 이상 확인이 안될 경우는 Oracle Metalink(http://www. metalink. com)에서TAR를연후Oracle Support 엔지니어와 같이 문제를 해결해야 한다. 이 경우 다음 정보들을 미리 준비하여 Oracle Support에 전달하면 문제 해결에 도움이 될 수 있다.
● 운영체제 디버깅 아웃풋
예 : truss -aefdD -o test.out opatch apply
● oraInst.loc 파일
● $ORACLE_HOME/inventory/ContentsXML/comps.xml
● $ORACLE_HOME/.patch_storage 디렉토리를 압축
● oraInst.loc에 기록된 인벤토리 디렉토리 밑의 ContentsXML/inventory 파일
● 운영체제 환경변수‘OPATCH_DEBUG=TRUE’를 세팅한 후 Opatch 적용시의 아웃풋
● 문제가 발생하고 있는 임시 패치 번호
오라클 관리자의 필수 유틸리티
Oracle Database 9.2부터 지원되는 Opatch는 임시 패치 관리에 있어서 많은 편리한 기능을 제공한다. 애플리케이션 서버도 Oracle Application Server 10g부터는 Opatch로 임시 패치를 관리하게 되므로, 오라클 관리 자에게 Opatch는 필수 유틸리티라고 할 수 있다.
마지막으로 당부하고 싶은 것은 임시 패치 적용 전 반드시 센트럴 인 벤토리와 로컬 인벤토리를 백업하여 예기치 못한 인벤토리 충돌시 복구가 가능하도록 하기 바란다.
제공 : DB포탈사이트 DBguide.net
출처명 : 한국오라클
오라클에서는 패치 관리 유틸리티 Opatch를 통해 새로운 패치 관리 기능들을 제공하고 있다.
여기서는 Opatch의 구성 및 설치 방법과 각 명령어의 사용법을 소개한다.
아울러, 기존에 발생했던 몇 가지 문제들도 소개함으로써, 독자의 Opatch 사용에 도움을 줄 것이다.
오라클에서는 특정 문제를 완벽하게 해결한 패치셋(patchset)이나 차기 릴리즈를 발표하기 전에 임시 패치(interim patch, 혹은‘one-off’patch) 를 제공하여 해당 문제에 적용할 수 있도록 하고 있다. 물론, 이 임시 패치 는 특정 버전의 컴포넌트에만 적용할 수 있다. 예를 들어, Oracle Database 8.1.7.3에 대해 생성된 임시 패치는 Oracle Database 8.1.7.4에 는 적용할 수 없다. 그리고, 대부분의 임시 패치는 차기 패치셋에 포함된다. 그런데, 이 임시 패치는 해당 문제가 해결됐는지는 테스트하지만, 패 치가 적용된 후 발생할 수 있는 부작용 등을 테스트하는 리그레션 (Regression) 테스트는 하지 않는다. 이 리그레션 테스트는 패치셋에서 테 스트된다. 따라서 특별한 경우가 아니라면, 임시 패치를 적용하기보다는 패치셋을 적용할 것을 권한다.
임시 패치를 여러 개 적용하다 보면, 이전 임시 패치와의 충돌이 발생 하기도 한다. 이를 방지하기 위해서, 임시 패치를 요청할 경우에는 Oracle Support에 이전에 설치한 모든 임시 패치 리스트를 제공하여, 충돌여부를 확인하고, 만약 충돌 발생시 병합하는 과정을 거치도록 해야 한다(임시 패 치 적용시 또 하나 주의할 점은 함께 제공되는 해당 패치의 Readme 파일 을 꼭 확인하는 것이다).
Oracle Database 9.0.1 버전까지는 패치 적용시 셸 스크립트를 이용 하여 패치를 적용하도록 되어 있었다. 그러나 9.2 버전부터는‘Opatch’라 는 패치 관리 유틸리티가 등장하여, 이전에 없었던 새로운 패치 관리 기능 들을 제공하고 있다.
이 글에서는 Oracle Database 9.2에서 패치 적용시 사용되는 Opatch 의 구성 및 설치 방법, 각 명령어의 사용방법에 대해 알아보도록 하겠다. 그 리고 기존에 발생했던 대표적인 Opatch 적용시의 문제들도 간략하게 소 개한다.
Opatch 사용 환경 및 설치 방법
Opatch는 Oracle Database 9.2 이상의 오라클 데이타베이스와 Oracle Application Server 10g에 임시 패치를 적용하는 과정을 지원한다. 현재 지원되는 플랫폼은 Unix와 Windows 계열이며, 현재 IBM OS/390에 대 해서는 지원하지 않는다. 따라서, IBM OS/390에 대해서는 이전(Oracle Database 9.0.1 이전 방식)과 동일하게 임시 패치를 적용해야 한다.
Opatch는 Oracle Database 9.2에 포함되어 있지 않으며, 설치하려면 Oracle Metalink에서 다운로드해야 한다. 다운로드 절차는 다음과 같다.
1.Oracle Metalink(http://metalink.oracle.com)에 로그인한다.
2.PATCHES 버튼을 선택한다.
3.Simple Search 링크를 선택한다.
4.Patch(s) Numbers 폼에‘2617419’를 입력한다.
5.Platform or Language 리스트에서 해당 플랫폼을 선택한다.
6.Go 버튼을 선택한다.
7.다음 항목을 선택한다.
2617419 Universal Installer: Patch OPATCH ARU PLACEHOLDER. (10.1.0.2)
8.다운로드가 진행된다.
9.다운 받은 파일을 압축 해제한다.
$ unzip p2617419_10102_GENERIC.zip
10.User Path에 등록한다.
For Korn / Bourne shell : % export PATH=$PATH:/oracle/opatch/Opatch For C Shell : % setenv PATH $PATH:/oracle/opatch/Opatch
Opatch를 실행을 위한 요구사항.
● Perl : 최소 Perl 5.0.0.5_03 이상이 시스템에 설치되어야 하며, 5.6 버전 이상 이 권장된다. Perl은 오라클 설치시‘Typical’옵션으로 설치하거나, ‘Custom’설치시 Apache Web Server를 선택하면 $ORACLE_HOME/ Apache/perl에 설치된다.
● Inventory : 오라클 제품은 두 개의 인벤토리를 유지하는데, 하나는 oraInst.loc 파 일 에 서 지 시 하 는 센 트 럴 인 벤 토 리 이 며 , 보 통 $ORACLE_BASE/oraInventory의 이름으로 존재한다. 이 인벤토리는 설치 된 오라클 제품의 정보를 보관한다. 또 하나의 인벤토리는 로컬 인벤토리로, $ORACLE_HOME/inventory에 위 치 한 다 . 이 인 벤 토 리 에 는 특 정 ORACLE_HOME에 설치된 컴포넌트 정보를 저장한다. 이 두 개의 인벤토리 가 정상적으로 유지되어야 한다(참고로, oralnst.loc의 위치는 AIX, Linux는 /etc 디렉토리에 위치하며, 다른 Unix에서는 /var/opt/oracle에 위치한다. Windows는 레 지 스 트 리 에 서 HKEY_LOCAL_MACHINE/Software/ Oracle/Oracle/inst_loc 항목에 지정된 위치에 있다).
● Opatch : Oracle9i Database에는 Opatch 유틸리티가 번들되어 있지 않으므 로, 앞에서언급한것처럼Oracle Metalink에서다운받아야하며, 해당패치넘 버로 최신Opatch 버전이 업데이트되므로, 항상 최신 버전을 유지하도록 한다.
● Path : RAC(Real Application Cluster)에서 임시 패치 적용시, $ORACLE_ HOME/lib와$ORACLE_HOME/srvm/lib이 라이브러리 패치에 포함되어야 한다(예를 들어, Solaris의 경우 LD_LIBRARY_PATH, HP-UX의 경우 SHLIB_PATH).
Opatch를 설치한 후 디렉토리 구조를 보면 다음과 같이 구성되어 있다.
패치 파일을 다운 받아 압축을 풀면, 해당 패치 번호의 이름으로 디렉 토리가 생성되며, 이 밑에 etc와 files 두 개의 디렉토리가 생성된다. Files 디렉토리 밑에는 lib 디렉토리가 있고, 이 디렉토리에 실제로 적용할 객체 파일들이 있다.
etc 디렉토리 밑에는 config와 xml 디렉토리가 생성된다. Config 디렉토리 밑에 있는 Actions 파일은 패치가 적용되어야 하는 대상 아카이브 파일과 디렉토리, 메이크 파일 등이 기록되어 있다. Inventory 파일에는 패치 적용 후 오라클 인벤토리에 업데이트해야 하는 내용과 대상 플랫폼, 오라클 버전이 기록되어 있다.
Xml 디렉토리에는 GenericAction.xml 파일이 있다. 이 파일에는 각 운영체제별로 사용할 명령어가 정의되어 있다. ShipHomeDirectoryStructure. xml 파일에는 패치 디렉토리의 구조가 정의되어 있다.
Opatch의 사용 방법
Opatch의 기능을 정리하면 다음과 같다.
● 임시 패치의 적용
● 적용한 임시 패치의 제거
● 설치한 컴포넌트와 패치(임시 패치 및 패치셋)에대한정보조회
● 임시 패치에 대한 정보 조회
그러면 이런 기능들을 어떻게 사용하는지 하나씩 알아보자.
Usage : opatch [ -h[elp] ] [ -r[eport] ] [ command ] [ command argument ]
Global argument
-h[elp] : 특정 명령어에 대한 설명
예) opatch -h lsinventory
-r[report] : 실제 패치 적용 없이 처리과정을 화면 출력
패치 적용
패치 적용은 Apply 명령어를 사용한다. 기본적인 명령은 다음과 같다.
$ opatch apply [ -delay ] [ -force ]
[ -invPtrLoc ]
[ -jdk ] [ -jre ] [ -local ]
[ -minimize_downtime ] [ -no_bug_superset ]
[ -no_inventory ] [ -oh ]
[ -retry ] [ -silent ] [ -verbose ]
각각의명령어아규먼트(command argument)를설명하면, 다음과같다.
● force : 이전에 설치한 임시 패치와 충돌 발생시 이를 무시하고 설치하도록 한 다. 이 경우 기존의 객체 파일을 새로운 객체 파일로 대체하게 되므로 주의하여 야한다.
● invPtrLoc : oraInst.loc 파일의 위치를 수동으로 지정할 때 사용한다. 오라클 제품 설치시 별도의 옵션을 주지 않으면 oraInst.loc 파일은 각 플랫폼의 디폴 트 위치에 생성된다. 이 위치를 사용자가 변경하기 위해‘runInstaller - invPtrLoc <경로 및 파일명>’처럼 사용할 수 있다. Opatch에 oraInst.loc 파 일의 위치를 알려주기 위해 이 아규먼트를 사용해야 한다.
● jdk : 디폴트로 사용되는$ORACLE_HOME/jdk 이외의 jdk를 이용하여 패치 할 때 이 아규먼트를 사용한다.
● jre : 디폴트로 사용되는 $ORACLE_HOME/jre 이외의 jre를 이용하여 패치 할 때 이 아규먼트를 사용한다.
● local : RAC에서 사용할 수 있으며, 패치 적용을 다른 노드에 전파하지 않고 로컬 노드에만 적용한 후 인벤토리도 로컬 노드에서만 업데이트한다. 이 경우 다른 노드에서도 개별적으로 로컬 아규먼트를 이용하여 즉시 패치가 적용되어 야한다. 일부 노드만 패치를 적용해 운영하는 것은 허용되지 않는다.
● minimize_downtime : 임시 패치 적용중 RAC의 다운타임을 최소화하기 위해 사용할 수 있다.
● no_bug_superset : 설치하려는 패치가 이미 설치한 패치의 슈퍼셋인 경우 에러를 발생시킨다.
● no_inventory : 패치 적용 과정 중에서 인벤토리를 읽거나 업데이트하는 과 정을 생략한다. 이 명령어 아규먼트는 인벤토리 변조 등으로 인해 정상적으로 인벤토리를 읽거나 업데이트할 수 없을 때만 사용해야 하며, 일단 사용 후에는 미지원 상태가 되므로 사용에 주의해야 한다. 그리고 위에서 설명한 로컬 명령 어 아규먼트는와는 같이 사용할 수 없다
● oh : 정의된$ORACLE_HOME 대신에사용할ORACLE_HOME을지정한다.
● silent : 사용자 인터랙션을 모두 디폴트 값으로 적용하여 패치를 진행한다.
● verbose : 기본적으로 나타나는 정보보다 더 자세한 내용을 화면과 로그 파일 에 출력한다.
● Patch_location : 설치하려는 임시 패치의 모든 경로를 표시한다.
그러면, 패치 적용의 사용 예를 간단히 알아보자.
$ opatch apply
단순히 이 명령으로 패치를 적용할 수 있다.
$ opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc -silent
이 명령으로 oraInst.loc 파일의 위치를 알려주고, 모든 사용자 인터랙 션은 디폴트 값으로 설정한 후 패치를 적용할 수 있다.
패치 제거
패치 제거를 위해서는 Rollback 명령어를 사용한다.
$ opatch rollback -id [ -invPtrLoc ]
[ -jdk ] -jre -local
[ -oh [ -ph ]
-silent -verbose
Rollback 명령어 아규먼트 중 Apply 명령어 아규먼트와 중복되지 않 는 아규먼트는 다음과 같다.
● id : 제거하려는 임시 패치 번호이다.
● ph : 패치 스테이지의 위치, 즉 패치를 제거할 때도 패치 파일이 필요하다.
간단한 패치 제거 사용 예는 다음과 같다.
$ opatch -id 380927 -ph /opt/oracle/920/380927
위의 명령으로 패치 번호 380927을 롤백하게 된다.
패치 정보 조회
패치 정보 조회를 위한 명령은 다음과 같다.
$ opatch query [ -all ] [ -get_base_bug ] [ -get_component ]
[ -get_date ] [ -get_os ] [ -get_system_change ]
[ -is_rolling ] [ -is_shutdown ]
패치의 조회는 Query 명령어를 사용하며, 다운 받은 임시 패치 자체 의 정보를 확인할 때 사용한다.
Query 명령어의 아규먼트는 다음과 같다.
● all : 모든 아규먼트로 조회되는 정보를 알려준다.
● get_base_bug : 해당 패치에 의해 수정된 베이스 버그를 알려준다.
● get_component : 패치 적용시 요구되는 컴포넌트를 알려준다.
● get_date : 패치가 생성된 일자를 알려준다.
● get_os : 패치 파일이 지원하는 운영체제를 알려준다.
● get_system_change : 해당 패치를 적용한 후 시스템에 변경되는 사항을 알 려주는 아규먼트이지만, 현재는 지원되지 않는다.
● is_rolling : 해당 패치가 롤링 패치가 가능한지 알려준다.
● is_shutdown : 해당 패치 적용시 인스턴스를 다운해야 하는지 여부를 알려주 지만, 현재는 지원되지 않는다.
설치된 패치 리스트 조회
ORACLE_HOME에 설치된 오라클 제품 컴포넌트를 조회하거나, 적용된 임 시 패치를 조회할 때는 lsinventory 명령어를 사용한다.
$ opatch lsinventory [ -all ] [ -detail ]
[ -invPtrLoc ]
[ -jre ] [ -oh ]
이 명령어의 아규먼트는 다음과 같다.
● all : ORACLE_BASE 밑에 설치된 모든ORACLE_HOME 정보를 표시한다.
● detail : 설치된 패치 내에 포함된 라이브러리 파일까지 표시해 주므로 패치 적 용시 충돌되는 객체 파일을 확인할 수 있다.
Opatch 버전 조회
Opatch의 버전을 조회하는 실제 예는 다음과 같다. 여기서 현재 사용한 Opatch는 1.0.0.0.50 버전임을 알 수 있다.
[rmtdcaix4]/apac/rdbms/3748283> ../OPatch/opatch version
PERL5LIB=/apac/rdbms/64bit/app/oracle/product/9.2.0.4/Apache/perl/lib/5.00503:../
OPatch/perl_modules; export PERL5LIB
/apac/rdbms/64bit/app/oracle/product/9.2.0.4/Apache/perl/bin/perl
../OPatch/opatch.pl version
../OPatch/opatch.pl version: 1.0.0.0.50
RAC에서의 Opatch 사용
기본적으로 임시 패치 적용시는 인스턴스를 다운한 후 적용해야 하므로, 패 치 적용시는 서비스를 할 수 없게 된다. RAC에서는 몇 가지 아규먼트를 사용 하여 다운타임을 최소화할 수 있다.
대략적으로RAC에서 패치가 적용되는 방법을 적어보면 다음과 같다.
If (사용자가 패치 적용방법을minimize_downtime으로 설정)
patching mechanism = Minimize Downtime
else if (패치가 롤링 패치를 지원)
patching mechanism = Rolling
else
patching mechanism = All-Node
여기서, 주의할 점은 CFS 등의 공유 파일 시스템에 오라클 제품을 설치 하여 여러 노드에서 공유하는 경우에는 minimize_downtime과 롤링 패치 가 적용되지 않는다는 것이다.
그러면 각각의 방법에 대해 알아보자.
All-Node
이것은 일반적인 데이타베이스에 패치를 적용하는 것처럼, 모든 인스턴스를 다운한 후, 한 노드씩 순차적으로 진행한다. ORACLE_HOME을 여러 노드 에서 공유하는 경우는 이 방식으로 패치를 적용해야 한다.
Minimize_downtime
Minimize_downtime은 RAC 운영시 다운타임을 최소화하기 위해 사용된 다. 2노드RAC의 경우를 예로 패치 절차를 알아보자.
1.먼저 로컬 노드의 인스턴스를 셧다운한다.
‘opatch apply -minimize_downtime’명령으로 패치를 시작한다.
2. ‘Is this node ready for updating?’질문에‘Yes’로 답하면, 로컬 노드에 패치가 적용된다.
3.패치 적용 후 다음에 적용할 노드명을 물어본다.
4.해당 노드명을 입력하면, 이 노드의 인스턴스를 셧다운하도록 요청한다.
5.요청받은 노드의 인스턴스는‘Shutdown immediate’로 셧다운한 후, 셧 다운이 완료되면 이미 패치가 적용된 노드의 인스턴스가 셧다운한다.
6.두 번째 노드에 패치를 적용한다.
7.인벤토리 정보가 업데이트된다.
8.패치가 완료되면 두 번째 인스턴스도 셧다운한다.
Minimize_downtime 아규먼트를 사용해도 모든 인스턴스가 다운되는 단계는 있지만, 5번 단계에서만 해당되므로, 다운타임을 최소화할 수 있다.
Rolling Patch
롤링 패치가 Minimize_downtime과 틀린 점은 다운타임이 전혀 없다는 것이다. 적용 절차는 다음과 같다.
1.먼저 인스턴스1을 셧다운한다. 이 단계에서 인스턴스2는 서비스 중이다.
2.노드1에서‘opatch apply’명령으로 패치를 적용한다.
3.노드1에 패치가 적용되었으면, 인스턴스1을 시동하라는 메시지를 받는다.
그리고 다음에 적용할 노드를 입력하도록 메시지를 받는다.
4.인스턴스2를 셧다운한다.
5.3번 세션에서 계속 이어서 노드2에 패치를 적용한다.
6.패치 적용후 인스턴스2를 시동한다.
롤링 패치는 모든 패치가 다 가능한 것은 아니고, 롤링 패치를 지원하도 록 설계된 패치만 가능하다. 롤링 패치가 가능한지 여부는‘opatch query - is_rolling’명령으로 확인할 수 있다.
Windows 플랫폼에서 Opatch 사용
Windows에서 Opatch를 사용할 때도 기본적인 명령어는 동일하다.
Opatch 명령을 실행하면 Windows 레지스트리에 ORACLE_HOME 이 등록되어 있어도, ORACLE_HOME이 지정되지 않았다는 메시지가 나 온다. Opatch 명령어를 사용할 때 -oh 아규먼트를 사용하여 ORACLE_HOME을 지정하거나, DOS 프롬프트에서 다음 명령으로 ORACLE_HOME을 지정한다.
C:\> Set ORACLE_HOME =
트러블슈팅
>임시 패치가 적용되었는지 어떻게 확인할 수 있는가?
일반적으로 패치가 적용되었는지를 보려면‘opatch lsinventory’를 사용하 여 확인한다.
Oracle Database 9.2 이 상 에 서 임 시 패 치 를 적 용 하 면 ,
$ORACLE_HOME/.patch_storage 디렉토리 밑에 해당 패치 번호를 이름 으로 디렉토리가 생성되고, 이 디렉토리 밑에 패치 적용 로그와 패치 적용 이전의 라이브러리 파일, 롤백시 적용할 스크립트가 있다. 여기서 로그 파 일을 보는 것도 패치가 적용되었는지 확인하는 방법이 될 수 있다. 이 로그 파일은 패치 적용을 실행하는 횟수만큼 생성된다.
또 한 가지 방법은 아카이브 파일을 Ar 명령으로 조회해 보는 것이다.
예를 들어, kko.o 파일을 libserver9.a에 적용하는 경우, ‘ar tv libserver 9.a|grep kko.o’명령으로 kko.o의 타임스탬프를 조회할 수 있다.
Windows에서 Opatch 실패
Windows 플랫폼에서Opatch를실행하면다음메시지가나오는경우가있다.
C:\oracle\ora92\OPatch>opatch lsinventory
“You have to invoke the patch tool manually.”
“The syntax is:”
“ perl /opatch.pl ”
“If everything is installed correctly you should be able to run”
“ perl /opatch.pl”
“ and see the basic help message.”
C:\oracle\ora92\OPatch>perl opatch.pl lsinventory
<< 중략 >> Required Jar File under Oracle Universal Installer = jlib\OraInstaller.jar
‘“”C:\Program’은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
Get inventory loc. from C:Program Files...
<< 생략 >>
Opatch 사용시 권장되는 Perl 버전은 5.6 이상이지만, 이상하게도 Windows에서 Perl 5.6 이상을 사용하여 Opatch를 실행하면 위와 같은 에러 메시지가 발생한다. 이 경우 $ORACLE_HOME/Apache /perl을 사 용하도록 한다.
컴포넌트/버전의 불일치
This Oracle Home does not have components/versions required by the patch.
ERROR: OPatch failed during pre-reqs check.
위와 같은 메시지는 적용하려는 임시 패치가 요구하는 컴포넌트가 설치되 지 않았거나, 지원하는 버전이 틀린 경우이다.
패치 파일의 요구사항은‘opatch-query’명령으로 조회해 볼 수 있다.
혹은 patch stage/etc/config/inventory 파일을 열고, 항목을 확인해도 된다.
유효한 패치 영역이 아닌 경우
Not a valid patch area
이 경우는 현재의 작업 디렉토리가 패치 디렉토리가 아니거나 패치 디렉토 리명이 패치 ID와 같지 않아서 발생하는 문제이다.
패치 디렉토리가 현재 디렉토리가 아닌 경우는 경로를 명시해 주어야 한다. 예를 들어서, 현재 디렉토리는‘/oracle’이고, 패치는‘/oracle/3809254’에 있는 경우, ‘opatch apply /oracle/3809254’라고 명령을 내려야 한다.
패치 디렉토리가 패치 ID와 이름이 다른 경우는 먼저 패치 ID를 확인 한다. 이 정보는‘opatch query -all’로 확인하거나‘patch stage/etc /config/inventory’파일에서 reference_id 항목에서 확인할 수 있다. 이 후 디렉토리명을 패치 번호와 동일하게 맞춰 준다.
java.lang.UnsatisfiedLinkError
Exception in thread “main”java.lang.UnsatisfiedLinkError:
no oraInstaller in java.library.path
이 경우 원인은 대부분 liboraInstaller.so가 라이브러리 경로에 포함 되지 않았기 때문이다.
이 파일은 $ORACLE_HOME/oui/bin/ 디렉토리에 있 다. 이 경로를 라이브러리 경로에 추가하고, 다시 패치를 적용한다.
java.lang.NullPointerException
Exception in thread “main”java.lang.NullPointerException at XXX.main...
오라클 제품의 최초 설치시 RunInstaller를 -invPtrLoc 옵션을 사용해서 실행한 경우일 수 있다. 이 경우 Opatch를 사용할 때도 동일한 -invPtrLoc 를 사용하여 oraInst.loc의 위치를 명시해 주어야 한다.
Oracle Support에 문의해야 하는 경우
모든 문제가 그렇지만, Opatch 실행시 발생하는 문제도 거의 유형별로 다 르기 때문에, 위와 같이 일반화 하는 것이 힘들다. 따라서 일단 문제가 발생 하면, 다음과 같이 기본적인 점검을 하고, 다음 사항을 검토한다.
● Opatch가 최신 버전인지 확인
● Opatch를 실행하기 위한 환경이 셋업되었는지 확인
PERL, JDK, 환경변수(PATH, LIBRARY PATH, …)
● Fresh Install인지 확인
● HP에서 fuser 문제인 경우 NOTE. 234741.1를확인
더 이상 확인이 안될 경우는 Oracle Metalink(http://www. metalink. com)에서TAR를연후Oracle Support 엔지니어와 같이 문제를 해결해야 한다. 이 경우 다음 정보들을 미리 준비하여 Oracle Support에 전달하면 문제 해결에 도움이 될 수 있다.
● 운영체제 디버깅 아웃풋
예 : truss -aefdD -o test.out opatch apply
● oraInst.loc 파일
● $ORACLE_HOME/inventory/ContentsXML/comps.xml
● $ORACLE_HOME/.patch_storage 디렉토리를 압축
● oraInst.loc에 기록된 인벤토리 디렉토리 밑의 ContentsXML/inventory 파일
● 운영체제 환경변수‘OPATCH_DEBUG=TRUE’를 세팅한 후 Opatch 적용시의 아웃풋
● 문제가 발생하고 있는 임시 패치 번호
오라클 관리자의 필수 유틸리티
Oracle Database 9.2부터 지원되는 Opatch는 임시 패치 관리에 있어서 많은 편리한 기능을 제공한다. 애플리케이션 서버도 Oracle Application Server 10g부터는 Opatch로 임시 패치를 관리하게 되므로, 오라클 관리 자에게 Opatch는 필수 유틸리티라고 할 수 있다.
마지막으로 당부하고 싶은 것은 임시 패치 적용 전 반드시 센트럴 인 벤토리와 로컬 인벤토리를 백업하여 예기치 못한 인벤토리 충돌시 복구가 가능하도록 하기 바란다.
제공 : DB포탈사이트 DBguide.net
출처명 : 한국오라클
[출처] 오라클 OPatch 사용법|작성자 sulgata
반응형
'Oracle > Oracle Scrap' 카테고리의 다른 글
[스크랩] CHECKPOINT NOT COMPLETE에 대해서 (0) | 2011.11.23 |
---|---|
[스크랩] 대기 이벤트 (0) | 2011.04.14 |
[스크랩] Patch Set, CPU, PSU 차이점 분석 (0) | 2011.03.03 |
[스크랩]ORA-12801 (0) | 2011.01.26 |
[스크랩] 테이블 스페이스, 데이타 파일, 익스텐트 , 프리스페이스 관리하기 (0) | 2010.11.30 |