1. 환경 설정 및 프로세스 확인
OS 환경 설정
root 유저로 수행
export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/12.2.0/grid export DB_HOME=$ORACLE_BASE/product/12.2.0/db_1
프로세스 확인
root 유저로 수행
$GRID_HOME/bin/crsctl stat res -t
2. Grid 패치
A) Grid 패치 사전 준비
GRID_HOME의 OPatch 파일 업데이트
root 유저로 수행
$GRID_HOME/OPatch/opatch version mv $GRID_HOME/OPatch $GRID_HOME/OPatch.old unzip <패치 다운로드 경로>/p6880880_122010_Linux-x86-64.zip -d $GRID_HOME chown -R grid:oinstall $GRID_HOME/OPatch ll $GRID_HOME | grep OPatch $GRID_HOME/OPatch/opatch version
Grid 기존 패치 내역 확인
grid 유저로 수행
$GRID_HOME/OPatch/opatch lsinventory -oh $GRID_HOME
Grid 패치 충돌여부 검증
grid 유저로 수행
$GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27105253 $GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27335416 $GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27128906 $GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/26839277 $GRID_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27144050
Grid 패치 필요 공간 확인
grid 유저로 수행
vi /tmp/patch_list_gihome.txt # cat /tmp/patch_list_gihome.txt $GRID_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
B) Grid 패치
Grid 패치 사전 분석
root 유저로 수행
$GRID_HOME/OPatch/opatchauto apply <패치 압축 해제 경로>/27100009 -analyze
Grid 패치
root 유저로 수행
$GRID_HOME/OPatch/opatchauto apply <패치 압축 해제 경로>/27100009
C) MTMTDB 업그레이드
MGMTDB 접속
grid 유저로 수행
export ORACLE_SID=-MGMTDB sqlplus / as sysdba
MGMTDB 패치 결과 확인
MGMTDB 패치 내역 조회
select PATCH_ID, VERSION, ACTION, STATUS, ACTION_TIME from DBA_REGISTRY_SQLPATCH;
MGMTDB 업그레이드 적용
grid 유저로 수행
cd $GRID_HOME/OPatch ./datapatch -verbose
3. DB 패치
A) DB 패치 사전 준비
DB_HOME의 OPatch 파일 업데이트
root 유저로 수행
$DB_HOME/OPatch/opatch version mv $DB_HOME/OPatch $DB_HOME/OPatch.old unzip <패치 다운로드 경로>/p6880880_122010_Linux-x86-64.zip -d $DB_HOME chown -R grid:oinstall $DB_HOME/OPatch ll $DB_HOME | grep OPatch $DB_HOME/OPatch/opatch version
DB 기존 패치 내역 확인
grid 유저로 수행
$DB_HOME/OPatch/opatch lsinventory -oh $DB_HOME
DB 패치 충돌 여부 검증
oracle 유저로 수행
$DB_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27105253 $DB_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <패치 압축 해제 경로>/27100009/27335416
DB 패치 필요 공간 확인
oracle 유저로 수행
vi /tmp/patch_list_dbhome.txt # cat /tmp/patch_list_dbhome.txt $DB_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
B) DB 패치
DB 패치 사전 분석
root 유저로 수행
chown -R oracle:oinstall $DB_HOME $DB_HOME/OPatch/opatchauto apply <패치 압축 해제 경로>/27100009 -oh $DB_HOME -analyze
DB 패치
root 유저로 수행
$DB_HOME/OPatch/opatchauto apply <패치 압축 해제 경로>/27100009 -oh $DB_HOME
4. 패치 결과 확인
Grid 패치 결과 확인
grid 유저로 수행
$GRID_HOME/OPatch/opatch lsinventory -detail
DB 패치 결과 확인
oracle 유저로 수행
$DB_HOME/OPatch/opatch lsinventory -detail