oracle OPatch Release Update(RU) Patch 적용

반응형

아래의 이전 포스팅에서 oracle 19c를 설치해 보았습니다.

2023.12.06 - [Database/Oracle] - linux에 oracle 19c 설치

 

linux에 oracle 19c 설치

Oracle 19c는 Oracle에서 출시한 관계형 데이터베이스 관리 시스템(RDBMS)으로 2018년 12월 18일에 출시되었습니다. 이 글을 작성하는 현재(2023.12.) Oracle 19c 상세 버전은 아래와 같습니다. 구분 설치파일

blog.noyecube.com

 

이때 설치된 oracle 19c 버전은 19.3.0.0입니다. 현시점(2023.12.)의 oracle 19c 버전은 19.21.0.0입니다.

따라서 단순 학습목적이 아닌 실 사용을 위해서는 각종 버그 및 취약점이 존재 하는 19.3을 19.21로 버전 업데이트 할 필요가 있습니다.

 

이번 포스팅에서는 oracle19c 19.3 버전을 19.21로 업데이트하는 방법을 알아봅니다.

기본 설치 파일은 LINUX.X64_193000_db_home.zip 입니다.

필요한 Release Update 파일은 현시점 기준으로 p35643107_190000_Linux-x86-64.zip입니다.

이 파일을 적용하기 위해서는 OPatch 유틸리티도 12.2.0.1.37 이상의 버전으로 업데이트해야 합니다.(기본 설치 시 OPatch 버전은 12.2.0.1.17입니다.)

필요한 OPatch 설치 파일명은 p6880880_190000_Linux-x86-64.zip입니다.

 

그럼 OPatch (p6880880_190000_Linux-x86-64.zip) 적용 후 Release Update(p35643107_190000_Linux-x86-64.zip)를 진행하겠습니다.

 

1. OPatch

다음 명령어로 기존 OPatch 버전을 확인해 봅니다. 12.2.0.1.17로 나옵니다. 버전 업데이트가 필요합니다.

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.

 

기존 OPatch를 백업합니다. 단순히 폴더명을 변경해 주면 됩니다. OPatch 폴더가 존재하는 경로에서 아래 명령어를 실행.

$ mv ./OPatch ./OPatch_231206

 

새로운 OPatch를 기존 OPatch 폴더 위치에 압축을 풀어 줍니다.

저의 경우 VirtualBox 환경에서 호스트와의 공유폴더가 /media/sf_VmShare 경로에 마운트 되어 있음을 참고해 주세요.

$ unzip /media/sf_VmShare/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME/

 

이것으로 OPatch 업데이트가 끝났습니다. 변경된 OPatch 버전을 조회해 봅니다.

기존 12.2.0.1.17에서 12.2.0.1.40으로 변경되었습니다.

$ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.40

 

2. Release Update Patch

먼저 Oracle 엔진 백업을 합니다. 경로는 $ORACLE_HOME/../입니다. 저의 경우 tar.gz으로 압축하였습니다.

tar cvfz oracle_home_20231207.tar.gz ./19.3.0/

 

패치 충돌검사를 수행합니다.

p35643107_190000_Linux-x86-64.zip 파일 압축을 풀면 35643107 폴더가 있고 그 안에 패치 파일들이 존재합니다.

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -oh $ORACLE_HOME -phBaseDir /media/sf_VmShare/p35643107_190000_Linux-x86-64/35643107/

passed 메시지를 확인하면 충돌이 없다는 뜻입니다. 정상적인 충돌검사 완료 메시지를 참고하십시오.

Oracle Interim Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /oracle/app/oracle/product/19.3.0
Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/19.3.0/oraInst.loc
OPatch version    : 12.2.0.1.40
OUI version       : 12.2.0.7.0
Log file location : /oracle/app/oracle/product/19.3.0/cfgtoollogs/opatch/opatch2023-12-06_13-58-20PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

 

DB 업데이트 필요 공간을 확인합니다.

/tmp 경로에 txt 파일을 생성하고 거기에 패치파일 경로를 작성해 둡니다.

cat /tmp/patch_list_db.txt
/media/sf_VmShare/p35643107_190000_Linux-x86-64/35643107/

그리고 OPatch CheckSystemSpace 명령을 수행합니다.

$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -oh $ORACLE_HOME -phBaseFile /tmp/patch_list_db.txt
Oracle Interim Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /oracle/app/oracle/product/19.3.0
Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/19.3.0/oraInst.loc
OPatch version    : 12.2.0.1.40
OUI version       : 12.2.0.7.0
Log file location : /oracle/app/oracle/product/19.3.0/cfgtoollogs/opatch/opatch2023-12-06_14-03-29PM_1.log

Invoking prereq "checksystemspace"

Prereq "checkSystemSpace" passed.

OPatch succeeded.

 

이제 패치 파일경로로 이동하며 opatch apply 명령을 수행합니다.

그전에 리스너와 DB 인스턴스를 stop, shutdown 해두어야 합니다.

[oracle@noyeora p35643107_190000_Linux-x86-64]$ cd 35643107/
[oracle@noyeora 35643107]$ pwd
/media/sf_VmShare/p35643107_190000_Linux-x86-64/35643107
[oracle@noyeora 35643107]$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation.  All rights reserved.


Oracle Home       : /oracle/app/oracle/product/19.3.0
Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/19.3.0/oraInst.loc
OPatch version    : 12.2.0.1.40
OUI version       : 12.2.0.7.0
Log file location : /oracle/app/oracle/product/19.3.0/cfgtoollogs/opatch/opatch2023-12-06_14-21-50PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   35643107

Do you want to proceed? [y|n]

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/oracle/app/oracle/product/19.3.0')


Is the local system ready for patching? [y|n]

 

Release Update Patch가 정상적으로 완료되면 아래 메시지 확인 가능합니다.

Patch 35643107 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35643107].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /oracle/app/oracle/product/19.3.0/cfgtoollogs/opatch/opatch2023-12-06_14-21-50PM_1.log

OPatch succeeded.

 

3. Patch 결과 확인

다음 명령어로 패치 버전을 확인할 수 있습니다. 패치 전 버전 19.3에서 패치 후 버전 19.21을 확인할 수 있습니다. OCW의 경우 싱글 인스턴스 DB 구성에서는 사용하지 않기 때문에 패치하지 않았습니다.

$ORACLE_HOME/OPatch/opatch lspatches -oh $ORACLE_HOME
35643107;Database Release Update : 19.21.0.0.231017 (35643107)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

OPatch succeeded.

 

이상으로 Oracle 19c에 OPatch, Release Update를 진행해 보았습니다.

반응형