[ORACLE] RAC Patch

반응형

1. 패치 용어

1) Oracle Patchset

- 오라클에서 Patchset은 릴리즈 버전의 통합 패치 파일. 만약 10.2.0.1 버전을 Patchset을 설치할 경우 10.2.0.4로 변경 되며 각종 실행 파일이 모두 10.2.0.4로 변경된다. 결국 Patchset은 릴리즈 버전의 업데이트 패치 파일이라고 생각하면된다.

2) Interim Pateh = (One-off patch)

 - 일회성 버그를 잡아주는 패치. 오라클 DB에 갑자기 치명적인 버그가 발견되었었때 쓰이는 패치다.

 

3) PSU(Patch Set Update)

 - 오라클에서 정기적으로 권고하는 패치로서 중요한 단일 패치들을 통합한 것을 의미한다. (Interim patch을 합쳐 놓은 것) 

 -> 용어가 바뀜 , RU(Release Update), RUR(Release Update Revision)

 

4) CPU (Critical Patch Update)

 - CPU는 오라클 제품의 보안 문제 해결을 위한 패치다.

 

5) OPatch

 - 9i부터 등장, 패치 조회 및 다운 등을 쉽게 하는 프로그램,. 설치되어 있는 패치를 조회하고 필요없는 패치를 삭제하는 등 작업을 해준다. 


2. 기존 패치 내역 확인

SQL> SET LINESIZE 400
COLUMN ACTION_TIME FORMAT A20
COLUMN ACTION FORMAT A20
COLUMN NAMESPACE FORMAT A20
COLUMN VERSION FORMAT A10
COLUMN COMMENTS FORMAT A30
COLUMN BUNDLE_SERIES FORMAT A10
 
SELECT TO_CHAR(ACTION_TIME, 'YYYYMMDD HH24:MI:SS') AS ACTION_TIME
   SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL>   2     ,ACTION
      ,NAMESPACE
      ,VERSION
      ,ID
      ,COMMENTS
      ,BUNDLE_SERIES
FROM   DBA_REGISTRY_HISTORY
ORDER BY ACTION_TIME  3    4    5    6    7    8    9  
 10  /

ACTION_TIME	     ACTION		  NAMESPACE	       VERSION		  ID COMMENTS			    BUNDLE_SER
-------------------- -------------------- -------------------- ---------- ---------- ------------------------------ ----------
20220126 21:52:07    RU_APPLY		  SERVER	       19.0.0.0.0	     Patch applied on 19.3.0.0.0: R
										     elease_Update - 190410122720

		     BOOTSTRAP		  DATAPATCH	       19		     RDBMS_19.3.0.0.0DBRU_LINUX.X64
										     _190417

 

 

3. 사전작업

[oracle@rac1 OPatch]$ ./opatch version -oh $GRID_HOME
OPatch Version: 12.2.0.1.17

OPatch succeeded.
[oracle@rac1 OPatch]$ ./opatch version -oh $ORACLE_HOME
OPatch Version: 12.2.0.1.17

OPatch succeeded.

RAC 패치

 

1) 필요한 OPatch 버전으로 교체 후 확인 

$GRID_HOME/OPatch/opatch version -oh $GRID_HOME
OPatch Version: 12.2.0.1.30

$ORACLE_HOME/OPatch/opatch version -oh $ORACLE_HOME
Patch Version: 12.2.0.1.30


2) db, grid 패치 버전 확인

$GRID_HOME/OPatch/opatch lspatches -oh $GRID_HOME

29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517247;ACFS RELEASE UPDATE 19.3.0.0.0 (29517247)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
29401763;TOMCAT RELEASE UPDATE 19.0.0.0.0 (29401763)

$ORACLE_HOME/OPatch/opatch lspatches -oh $ORACLE_HOME

29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)


3) 1번 2번, invaild 확인

select count(*) from dba_objects where status!='VALID';
 
  COUNT(*)
----------
     0



패치 적용해야는 파일 확인

 

4. 패치진행

 


$GRID_HOME/OPatch/opatchauto apply /home/oracle/patch_file/33803476 -analyze


Step 0. 사전 준비
 - oragrid, oracle 양쪽 노드에 최신 opatch 설치
 - 양쪽 노드에 패치 파일 업로드
 - 양쪽 노드 DB를 모두 내림

Step 1. root 계정으로 prepatch
root: $GRID_HOME/crs/install/rootcrs.sh -prepatch

Step 2. oragrid 계정으로 grid 패치

sh /home/oracle/patch_file/33803476/33806152/custom/scripts/prepatch.sh -dbhome $GRID_HOME
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /home/oracle/patch_file/33803476/33806152  --<Database Release Update>
sh /home/oracle/patch_file/33803476/33815596/custom/scripts/prepatch.sh -dbhome $GRID_HOME
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /home/oracle/patch_file/33803476/33815596  --<OCW Release Update>
sh /home/oracle/patch_file/33803476/33815596/custom/scripts/postpatch.sh -dbhome $GRID_HOME
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /home/oracle/patch_file/33803476/33815607 --<ACFS Release Update>
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /home/oracle/patch_file/33803476/33911149  --<Tomcat Release Update>
$GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /home/oracle/patch_file/33803476/33575402  --<DBWLM Release Update>


Step 3. oracle 계정으로 db 패치

sh /home/oracle/patch_file/33803476/33806152/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /home/oracle/patch_file/33803476/33806152  --<Database Release Update>
sh /home/oracle/patch_file/33803476/33815596/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /home/oracle/patch_file/33803476/33815596  --<OCW Release Update>
sh /home/oracle/patch_file/33803476/33815596/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME


Step 4. root계정으로 postpatch

sh $GRID_HOME/rdbms/install/rootadd_rdbms.sh
sh $GRID_HOME/crs/install/rootcrs.sh -postpatch

Step 5. 패치 결과 확인

oragrid : $GRID_HOME/OPatch/opatch lspatches -oh $GRID_HOME
oracle : $ORACLE_HOME/OPatch/opatch lspatches -oh $ORACLE_HOME

Step 6. 
 - Step 0으로 돌아가서 2번 노드에서도 동일한 작업 실행

Step 7. Datapatch 수행
- oracle 계정으로 한쪽 노드에서만 실행
% sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
SQL> quit
% cd $ORACLE_HOME/OPatch
% ./datapatch -verbose



 

 

 

반응형

'Database > Oracle' 카테고리의 다른 글

[ORACLE] Direct Path I/O  (0) 2022.08.25
[ORACLE] PAGING 처리  (0) 2022.08.18
[ORACLE] RAC Recovery  (0) 2022.06.16
[ORACLE] ASM 접속 및 용량 조회  (0) 2022.06.13
[ORACLE] RAC SCAN  (0) 2022.06.13