opatch의기능및활용 - :: · pdf fileopatch의기능및활용...
TRANSCRIPT
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
남궁혁
한국오라클 (주) 제품지원실
Getting the most out of MetaLink
Opatch의기능및활용
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
1. OPatch 개요
2. 사용환경 및 구조
3. OPatch 사용법
4. OPatch Command5. OPatch for RAC6. 문제 발생 시 조치
7. 참고 자료
목차
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
ORACLE DATABASE에 INTERIM PATCH를 적용하기위한UTILITY ORACLE9 RELEASE2(9.2.0.2)이상 지원
지원 PLATFORM : UNIX, WINDOWS PLATFORM 기능• INTERIM PATCH를 적용(APPLY)• 설치된 INTERIM PATCH를 제거(ROLLBACK)• 기 설치된 INTERIM PATCH와 CONFLICT여부 점검
• 설치된 PRODUCT및 INTERIM PATCH를 REPORT• 주의사항 : PATCH적용전 반드시 INVENTORY를 BACKUP(TAR,
WINZIP, …)
OPatch개요
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch 사용 환경
PERL : 5.6이상이 권장됨. APACHE WEB SERVER를 설치하면$ORACLE_HOME/Apache/perl에 install됨.JDK :$ORACLE_BASE/jre/1.3.1/bin/javaINVENTORY : CENTRAL INVENTORY, LOCAL INVENTORYLIBRARY PATH 설정 : RAC인 경우 LIBRARY PATH에 다음
경로가 포함
Solaris :LD_LIBRARY_PATH =
$OUI_INSTALL_LOCATION/bin/solaris:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/srvm/lib HP-UX :SHLIB_PATH=$ORACLE_HOME/lib32:/usr/lib:$ORACLE_HOME/srvm/lib
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Opatch Download
METALINK에서 최신 버전을 DOWNLOAD• PATCHES BUTTON을 선택
• {Simple Search} LINK를 선택
• {Patch(s) Numbers} FORM에 ‘2617419’입력
• {Platform or Language} LIST에서 해당 PLATFORM선택
• Go 버튼을 선택
• 다음 항목을 선택: 2617419 Universal Installer: Patch OPATCH ARU PLACEHOLDER. (10.1.0.2)
• DOWNLOAD
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Opatch Setup
DOWN받은 p2617419_10102_GENERIC.zip를 UNIX SERVER로이동 후 UNCOMPRESS 한다.
OS환경변수인 PATH에 Opatch DIRECTORY를 등록
For Korn / Bourne shell % export PATH=$PATH:/oracle/opatch/Opatch
For C Shell % setenv PATH $PATH:/oracle/opatch/Opatch
$ unzip p2617419_10102_GENERIC.zip
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch Directory 구조
/docs/…/OPatch
/jlib
/perl_modules
관련 문서
Opatch에서 사용되는 CLASS FILE
PERL MODULES
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
INTERIM PATCH DIRECTORY 구조
/etc/<patch no>
/files PATCH 대상 LIBRARY
/config
/xml
/lib
/actions
/inventory
/GenericActions.xml/ShipHomeDirectoryStructure.xml
PATCH시 적용할ACTION
PATCH 정보
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch Command 사용법(1)
Usage: opatch [ -h[elp] ] [ -r[eport] ] [ command ] [command argument]Global argument
-h[elp] : 특정 command에 대한 설명
예) opatch –h lsinventory-r[report] : 실제 patch적용없이 처리과정을 화면 출력
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch Command 사용법(2)
COMMAND APPLY : PATCH적용
ATTACH : CENTRAL INVENTORY에 등록
LSINVENTORY : 적용된 PATCH조회
QUERY : INTERIM PATCH에 대한 정보
ROLLBACK : 적용된 PATCH를 ROLLBACKVERSION : OPATCH의 VERSION표시
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch 사용 예
opatch lsinventory –all –oh /opt/oracle
opatch rollback –id 3026584 –ph /opt/oracle/3026548
opatch apply –invPtrLoc$ORACLE_HOME/oraInst.loc
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch apply (1)
apply <patch_location> [ -delay <value> ] [ -force ][ -invPtrLoc <Path to oraInst.loc> ][ -jdk <LOC> ] [ -jre <LOC> ] [ -local ][ -minimize_downtime ] [ -no_bug_superset ][ -no_inventory ] [ -oh <ORACLE_HOME> ][ -retry <value> ] [ -silent ] [ -verbose ]
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch apply (2)
oraInst.loc의 위치-invPtrLoc
사용안함-error_on_conflict
이전에 설치한 patch와 conflict가 있을 경우이를 무시하도록 함
-force
Default jdk($ORACLE_HOME/jdk) 대신사용하려는 jdk의 경로
-jdk
Inventory directory lock을 얼마동안기다릴지를 정의
-delay
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch apply (3)
설치하려는 patch가 이미 설치한 patch의super-set인 경우 error발생
-no_bug_superset
Local node에 patch후 local의 inventory만update-local
뒤에 설명-minimize_downtime
Inventory read/update를 pass함. –local과같이 사용할수 없으며, 이 argument사용후는unsupport상태가 됨
-no_inventory
Default jre($ORACLE_HOME/jre) 대신사용하려는 jre의 경로
-jre
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch apply (4)
Interim patch의 위치(경로)Patch location
User-interaction을 모두 default값으로 적용-silent
더 많은 정보를 화면과 log file에 출력-verbose
정의된 $ORACLE_HOME대신에 사용할oracle home-oh
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch lsinventory
lsinventory [ -all ] [ -detail ] [ -invPtrLoc ] <Path to oraInst.loc>[ -jre <LOC> ] [ -oh <ORACLE_HOME> ]
설치된 모든 produce표시. –all과 같이 사용할수 없음
-detail
Default jre($ORACLE_HOME/jre) 대신사용하려는 jre의 경로
-jre
모든 oracle home의 이름과 경로 표시-all
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch rollback (1)
rollback -id <patch id> [ -invPtrLoc ] <Path to oraInst.loc>[ -jdk <LOC> ] -jre <LOC> -local [ -oh <ORACLE_HOME> [ -ph <patch dir> ] -silent -verbose
Default jdk($ORACLE_HOME/jdk) 대신사용하려는 jdk의 경로
-jdk
Default jre($ORACLE_HOME/jre) 대신사용하려는 jre의 경로
-jre
Rollback하려고 하는 patch id-id
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch rollback (2)
더 많은 정보를 화면과 log file에 출력-verbose
Patch directory의 위치-ph
oraInst.loc file의 위치 지정-invPtrLoc
User-interaction을 모두 default값으로 적용-silent
Rollback과 inventory update를 local node에만 적용
-local
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch attach
attach [-i[nvPtrLoc]<path to oraInst.loc>][-na[me] <ORACLE_HOME_NAME>][-no[des] <node1 node2 … >][-oh <ORACLE_HOME>] –ph <patch dir>
ORACLE_HOME의 name-name
추가할 node명-nodes
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch query (1)
query [ -all ] [ -get_base_bug ] [ -get_component ][ -get_date ] [ -get_os ] [ -get_system_change ][ -is_rolling ] [ -is_shutdown ]
패치시 요구되는 component-get_component
Patch 생성 일자-get_date
해당 patch에 의해 fix된 base bug표시-get_base_bug
패치에 대한 모든 정보를 표시-all
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch query (2)
Rolling patch적용 가능 여부-is_rolling
Patch적용 시 oracle instance를 down해야하는지 여부 (현재 지원 안됨)-is_shutdown
해당 patch적용 후 변경되는 내용
(현재 지원 안됨)-get_system_change
해당 patch가 지원하는 OS-get_os
Detailsoption
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch version
version– 사용 예
[rmtdcaix4]/apac/rdbms/3748283> ../OPatch/opatch versionPERL5LIB=/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
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch for RAC (1) – normal
SINGLE DATABASE PATCH절차와 동일함
• 모든 NODE의 INSTANCE를 SHUTDOWN• OPATCH는 LOCAL NODE부터 PATCH를 적용
• LOCAL NODE에 PATCH적용후 다른 NODE에 적용
• INVENTORY UPDATE
PATCH적용중 모든 INSTANCE가 DOWN되어야 한다.
SHARED $ORACLE_HOME인 경우는 이 방법만 사용해야한다.
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch for RAC (2) –minimize_downtime
DATABASE DOWNTIME을 최소화
MINIMIZE_DOWNTIME을 이용한 PATCH절차 ( 2 NODE RAC 경우 )
1. LOCAL NODE에 먼저 적용하기위해 LOCAL INSTANCE STOP하도록 MESSAGE를 받음
2. USER RESPONSE이후 PATCH적용
3. PATCH적용 후 다음에 적용할 NODE를 물어봄
4. 해당 NODE의 INSTANCE를 SHUTDOWN하도록 함
5. 정상적으로 SHUTDOWN후 PATCH적용한 NODE의INSTANCE는 STARTUP
6. 두번째 NODE PATCH7. INVENTORY UPDATE
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
$ opatch apply -minimize_downtimeThis node is part of an Oracle Real Application Cluster.Nodes are:
Please shut down Oracle instances running out of this ORACLE_HOME on this node.(Oracle Home = /apac_advfs/oracle/product/o9ir2)Is this node ready for updating?Please respond Y|N >yPatching...
사용 예
1
2
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Please enter the next node(s) to be patched on one line.NODE LIST:rmtddecclu2The nodes to patch first are:rmtddecclu2Is this list correct?Please respond Y|N >YPlease shut down Oracle instances on node(s):"rmtddecclu2"running out of ORACLE_HOME(Oracle Home = /apac_advfs/oracle/product/o9ir2)Is it ready for updating (are the instances down)?Please respond Y|N >YFiles for interim patch 3625594 have been propagated to rmtddecclu2.
3
두번째 node명을 입력
4
5
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch for RAC (3) – rolling patch
DATABASE의 DOWNTIME이 없다.절차 ( 2 NODE RAC경우 )
• SHUTDOWN INSTANCE 1• NODE 1에 PATCH적용
• STARTUP INSTANCE 1• SHUTDOWN INSTANCE 2• NODE 2에 PATCH적용
• STARTUP INSTANCE 2제한사항
• ROLLING PATCH를 지원하는 INTERIM PATCH만 가능
• OPATCH QUERY –IS_ROLLING 명령으로 확인
• SHARED ORACLE_HOME을 사용시는 적용할 수 없다.
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
OPatch for MS-Windows
METALINK에서 PATCH를 DOWNLOAD
최신버젼의 OPATCH사용
DOS창에서 ORACLE_HOME을 지정
– Set ORACLE_HOME=C:\ORACLE\9.2.0
OPATCH를 이용하여 INTERIM PATCH를 적용
주의사항 : PATCH APPLY전에 INVENTORY DIRECTORY를BACKUP
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch 적용 여부 확인
Opatch lsinventory로 조회
적용 LOG FILE을 확인
• $ORACLE_HOME/.patch_storage/<bug number> 에 적용된patch정보를 기록
– 과거에 적용된 모든 PATCH HISTORY가 저장됨
• Log file format : <bugnum>_Apply_<date>.log– APPLY를 실패했다면 실패한 횟수만큼 LOG FILE이 생성됨
LIBRARY FILE을 직접 확인
• ARCHIVE FILE에서 OBJECT FILE의 TIMESTAMP를 확인
• 예) kko.o file을 libserver9.a에 적용하는 경우
$ ar tv libserver9.a | grep kko.o
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch FAQ(1)
OPatch failed during pre-reqs check• Message
• 원인 : 대부분 patch corruption
• 조치
– Patch rollback후 다시 patch download
Error for command: make -f ins_rdbms.mk ioracleERROR: OPatch failed during pre-reqs check.
Note.266489.1
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch FAQ(2)
Apply시 ‘unknown error’발생
• Message
• 조치
– Patch directory에 permission이 있는지 확인
– Apply log를 확인하여 어느단계에서 발생하는지 확인
– Inventory check하는 부분을 생략하면 계속 진행되는지 check
Unknown error
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch FAQ(3)
‘fuser is not available’• Message
• 조치
– Fuser command가 PATH에 포함되었는지 확인
– 대부분 /sbin or /usr/sbin에 있음
Fuser is not available
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch FAQ(4)
‘patch is not for this operate system’• Message
• 조치
– Patch directory/etc/config/inventory file을 확인
Patch is not for this operate system
<os_platforms><platform name="Sun SPARC Solaris" id="453"/>
</os_platforms>
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
Patch FAQ(5)
abort patch apply• Patch진행중 ctrl+c로 취소한 경우 조치법
• 조치
– Patch를 다시 진행하여 완료한다.– 필요시 rollback
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
문제 발생시 조치(1)
opatch가 최신 버젼인지 확인
opatch를 실행하기위한 환경이 SETUP되었는지 확인– PERL, JDK, 환경변수(PATH, LIBRARY PATH, …)
FRESH INSTALL인지 확인
HP에서 fuser문제인 경우 NOTE. 234741.1 를 확인
점검사항이 모두 정상인 경우 METALINK에서 TAR를OPEN하고 다음 FILE들을 UPLOAD하고 ORACLE ENGINEER의 SUPPORT를 요청
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
문제 발생시 조치(2)
OS DEBUGGING OUTPUT– 예) truss -aefdD -o test.out opatch apply
oraInst.loc file$ORACLE_HOME/inventory/ContentsXML/comps.xml$ORACLE_HOME/.patch_storage directory 를 tar로 묶음
oraInst.loc 에 기록된 inventory directory밑의ContentsXML/inventory file
OS환경변수 OPATCH_DEBUG=TRUE를 SETTING후OPATCH적용 OUTPUT
PATCH NUMBER
Opatch의 기능 및 활용 기술적인 질문은 채팅으로 등록
참고문서
OPATCH USERS GUIDE (Opatch/docs directory)OPATCH FAQ (Opatch/docs directory)Note. 274526.1 How to download and install opatchNote.224346.1 Opatch - Where Can I Find the Latest Version of
Opatch?Note. 244241.1 Rolling Patch - OPatch Support for RAC Note. 189489.1 Oracle9i Data Server Interim Patch Installation Note. 229626.1 How to apply interim patches and the functionality
of opatch on windows