본문 바로가기

WAS/WebLogic

[weblogic] WLS 11g (10.3.6) 패치

#01. SMARTUPDATE 설치하기

weblogic 패치를 적용하기 전,

패치 적용 시간 단축을 위해 SMARTUPDATE를 먼저 설치해야 한다.

SMARTUPDATE가 설치되지 않았을 시, 패치 적용 시간이 크게는 2시간 이상 소요되기도 함.

서버 downtime 최소화를 위해, SMARTUPDATE를 반드시 설치해야 한다.

 

SMARTUPDATE 관련 오라클 문서
Doc ID 2271366.1

SMART UPDATE 3.3
https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?_afrLoop=184546401279781&parent=DOCUMENT&patchId=12426828&sourceId=2271366.1&_afrWindowMode=0&_adf.ctrl-state=v10apto9o_192

SMART UPDATE V4
https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?_afrLoop=184593777195985&parent=DOCUMENT&patchId=31136426&sourceId=2271366.1&_afrWindowMode=0&_adf.ctrl-state=v10apto9o_213

 


 

설치 절차 #01.

{WEBLOGIC_HOME}/utils/bsu/cache_dir 디렉토리에 SMARTUPDATE 설치 파일을 위치시킨다.

패치 파일과 혼동하는 일이 없도록 cache_dir 하위에 SMARTUPDATE 디렉토리를 생성하여 그 안에 위치시킨다.

 


 

설치 절차 #02.

SMARTUPDATE를 silent 모드로 설치하는 것이 가능하다

silent 모드로 설치하기 위해 silent.xml 파일을 생성한다.

<?xml version="1.0" encoding="UTF-8"?>
<domain-template-descriptor>
   <input-fields>
       <data-value name="BEAHOME" value="weblogic홈디렉토리" />
       <data-value name="COMPONENT_PATHS" value="Common Infrastructure Engineering|Oracle WebLogic Smart Update" />
   </input-fields>
</domain-template-descriptor>

 

BEAHOME value값의 "weblogic홈디렉토리" 라 함은,

아래 이미지와 같이 .home 파일이 위치한 디렉토리를 의미한다.

 


 

설치 절차 #03.

SMARTUPDATE 설치 전, {WEBLOGIC_HOME}/utils/bsu 디렉토리의 bsu.sh 내용을 편집해야 한다.

 

MEM_ARGS 부분을 수정한다.

기본값 세팅으로는 Memory 가 부족하여 SMARTUPDATE 설치 및 패치 적용이 불가하다.

최소 2GB 로 세팅하는 것을 권장하며, 물리 Memory 여유가 된다면 4GB 로 세팅한다.

 


 

설치 절차 #04.

bsu.sh 에서 Memory 세팅 수정작업이 완료되었다면, SMARTUPDATE 3.3 설치를 진행한다.

{WEBLOGIC_HOME}/utils/bsu/cache_dir/SMARTUPDATE 디렉토리에서 SMARTUPDATE 3.3 설치파일을 압축 해제한다.

patch-client-installer330_generic32.jar 파일 확인.

 

설치 실행 명령어는 아래와 같음

{JAVA_HOME}/bin/java -jar patch-client-installer330_generic32.jar -mode=silent -silent_xml=silent.xml

 

JAVA_HOME 은 weblogic 에서 사용 중인 JAVA 를 의미하며,

해당 경로는 {WEBLOGIC_HOME}/utils/bsu/bsu.sh 에서 확인 가능하다.

 

아래와 같이 설치가 정상적으로 완료가 되었다면

 

아래와 같이 현재 SMARTUPDATE 버전을 확인한다

cd {WEBLOGIC_HOME}/utils/bsu
./bsu.sh -version

 


 

설치 절차 #05.

SMARTUPDATE 3.3 설치 완료 후, 이어서 SMARTUPDATE 4 를 설치한다.

{WEBLOGIC_HOME}/utils/bsu 디렉토리에서 SMARTUPDATE 4 설치파일을 압축 해제한다.

bsu_update 디렉토리 및 bsu_update.sh 파일 확인. (Windows 환경이라면 bsu_update.bat)

 

설치 실행 명령어는 아래와 같음

cd {WEBLOGIC_HOME}/utils/bsu
. ./bsu_update.sh install

 

아래와 같이 설치가 정상적으로 완료가 되었다면

 

아래와 같이 bsu_update 디렉토리, bsu_update.sh를 제외한 파일은 필요 없으므로 삭제한다.

(README.txt, bsu_update.bat 삭제)

 

아래와 같이 현재 SMARTUPDATE 버전을 확인한다

cd {WEBLOGIC_HOME}/utils/bsu
./bsu.sh -version

 

여전히 버전이 3.3 으로 표시되는데, 버그인 것으로 보인다.

앞서 SMARTUPDATE 4 설치 시 "Update was successful" 문구가 출력되었다면

정상적으로 설치 완료된 것이므로 상관 없다.

 


 

#02. PSU 패치 적용 전 주의사항

패치 적용 전, 모든 weblogic 프로세스가 SHUTDOWN 상태여야 한다.

weblogic 모든 도메인의 서버를 기동 정지 시킨 후 패치를 적용한다.

 


 

#03. PSU 패치 적용 / 확인, 제거

{WEBLOGIC_HOME}/utils/bsu/cache_dir 디렉토리에 패치 파일을 압축 해제한다.

반드시 cache_dir 디렉토리에 압축 해제해야 함!

패치 파일 압축 해제 후, 아래와 같이 총 4개의 파일 확인.

****.jar 파일이 패치에 필요한 파일이다.

 


 

패치 적용 절차

{WEBLOGIC_HOME}/utils/bsu 디렉토리로 이동한다.

패치 적용 명령어는 아래와 같다.

cd {WEBLOGIC_HOME}/utils/bsu
./bsu.sh -install -patchlist=패치파일명 -prod_dir={WEBLOGIC_HOME}/wlserver_10.3

 

"패치파일명" 이라 함은, 패치파일 압축 해제 후 생성된 .jar 파일의 이름을 의미한다.

NA7A.jar => 패치파일명은 NA7A

 

패치 적용 예시는 아래 이미지 확인

"Checking for conflicts.." 문구가 출력되기 까지 시간이 많이 소요되므로 기다려야 한다

 

패치 적용 완료 후,

cache_dir 디렉토리 내에서 README.txt 파일은 필요 없으므로 삭제한다.

(****.jar, patch-catalog**** 파일은 삭제하지 않는다)

 


 

패치 확인 절차

{WEBLOGIC_HOME}/utils/bsu 디렉토리로 이동한다.

패치 확인 명령어는 아래와 같다.

cd {WEBLOGIC_HOME}/utils/bsu
./bsu.sh -view -status=applied -prod_dir={WEBLOGIC_HOME}/wlserver_10.3

 

실행 예시는 아래 이미지 확인

 


 

패치 제거 절차

{WEBLOGIC_HOME}/utils/bsu 디렉토리로 이동한다.

패치 적용 명령어는 아래와 같다.

cd {WEBLOGIC_HOME}/utils/bsu
./bsu.sh -remove -patchlist=패치파일명 -prod_dir={WEBLOGIC_HOME}/wlserver_10.3

 

패치 제거 예시는 아래 이미지 확인

"Checking for conflicts.." 문구가 출력되기 까지 시간이 많이 소요되므로 기다려야 한다

 


 

#04. 패치 적용 후 유의사항

패치를 완전히 적용하려면 서버를 재기동 해야 함
그래서 패치 작업은 주로 새벽에 하는 경우가 많음
로그 파일을 통해 패치가 적용 되었는지를 확인할 수 있다
패치 확인 하면 로그 위치 어디인지 알려줌