1. 업그레이드 작업
A) preupgrade_fixups 스크립트 수행
preupgrade_fixups 수행
SET ECHO ON; SET SERVEROUTPUT ON; @/u01/app/oracle/cfgtoollogs/racdb/preupgrade/preupgrade_fixups.sql
{}
B) 11g 데이터베이스 중지
모든 노드의 11g 인스턴스 중지 (11g 데이터베이스 중지)
shutdown immediate
C) 재사용 파일 복제 및 신규 생성
1번 노드 재사용 파일 복제 및 패스워드 파일 생성
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1 export ORACLE_HOME=$DB_HOME cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $DB_HOME/network/admin/ cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb1.ora $DB_HOME/dbs/ orapwd file=$ORACLE_HOME/dbs/orapwracdb1 force=y format=12
2번 노드 재사용 파일 복제 및 패스워드 파일 생성
export DB_HOME=$ORACLE_BASE/product/19.0.0/db_1 export ORACLE_HOME=$DB_HOME cp $ORACLE_BASE/product/11.2.0/db_1/network/admin/*.ora $DB_HOME/network/admin/ cp $ORACLE_BASE/product/11.2.0/db_1/dbs/initracdb2.ora $DB_HOME/dbs/ orapwd file=$ORACLE_HOME/dbs/orapwracdb2 force=y format=12
D) 싱글 DB로 전환 및 Upgrade 모드 기동
싱글 DB 전환 후 1번 노드 upgrade 모드로 기동
conn / as sysdba startup nomount alter system set cluster_database=false scope=spfile; startup force upgrade
E) 업그레이드 수행
dbupgrade 스크립트 실행
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1 $ORACLE_HOME/bin/dbupgrade
F) Time Zone 업그레이드 수행
Upgrade 모드로 기동 후 Time Zone 버전 조회
startup upgrade; select * from V$TIMEZONE_FILE; select DBMS_DST.GET_LATEST_TIMEZONE_VERSION from dual;
Time Zone 업그레이드 영향도 분석
SET SERVEROUTPUT ON; exec DBMS_DST.BEGIN_PREPARE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION); exec DBMS_DST.FIND_AFFECTED_TABLES; select * from SYS.DST$AFFECTED_TABLES; select * from SYS.DST$ERROR_TABLE; select * from SYS.DST$TRIGGER_TABLE; exec DBMS_DST.END_PREPARE;
Time Zone 업그레이드 윈도우 시작 및 재기동
exec DBMS_DST.BEGIN_UPGRADE(DBMS_DST.GET_LATEST_TIMEZONE_VERSION); shutdown immediate startup
데이터베이스 Time Zone 업그레이드
SET SERVEROUTPUT ON; DECLARE failed_num PLS_INTEGER; BEGIN DBMS_DST.UPGRADE_DATABASE(failed_num); DBMS_OUTPUT.PUT_LINE('DBMS_DST.UPGRADE_DATABASE : ' || failed_num); END; /
Time Zone 업그레이드 윈도우 종료
SET SERVEROUTPUT ON; DECLARE failed_num PLS_INTEGER; BEGIN DBMS_DST.END_UPGRADE(failed_num); DBMS_OUTPUT.PUT_LINE('DBMS_DST.END_UPGRADE : ' || failed_num); END; /
Time Zone 업그레이드 결과 확인
select PROPERTY_NAME, PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME like 'DST_%' order by PROPERTY_NAME;
G) Fixed Objects 통계 수집
Fixed Objects 통계 수집
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
H) postupgrade_fixups 스크립트 수행
postupgrade_fixups 스크립트 수행
SET ECHO ON; SET SERVEROUTPUT ON; @/u01/app/oracle/cfgtoollogs/racdb/preupgrade/postupgrade_fixups.sql
I) 객체 재컴파일
Invalid 객체 및 컴포넌트 재컴파일
@?/rdbms/admin/utlrp.sql
J) 클러스터 DB로 전환
클러스터 DB로 전환 및 재기동을 위한 중지
alter system set cluster_database=true scope=spfile; shutdown immediate
데이터베이스 설정 업데이트 및 재기동
$DB_HOME/bin/srvctl upgrade database -d racdb -o $DB_HOME srvctl start database -d racdb
K) APEX 설치 (옵션)
19c에 호환되는 APEX 설치
@?/apex/catapx.sql <APEX 관리자 암호> SYSAUX SYSAUX TEMP /i/ NONE