내용

* 소개
* 오라클 데이터베이스 12c 업그레이드에 관한 새로운 기능
* 오라클 데이터베이스 12c 업그레이드 준비
* DBUA(Database Upgrade Assistance)를 통한 오라클 데이터베이스 12c로 업그레이드
* 수동으로 오라클 데이터베이스 12c 업그레이드
* 오라클 데이터 펌프를 이용한 오라클 데이터베이스 12c로 업그레이드
* 업그레이드 롤백
* 업그레이드 후에 주의해야 할 몇 가지 변경사항

* 소개

  • 데이터베이스 업그레이드와 마이그레이션의 차이점
    • 업그레이드 : 데이터 딕셔너리를 이후 버전으로 변경
      • In-place : 기존 SW 경로에 새 SW 설치
      • Out-of-place : 새 SW 경로에 새 SW 설치
    • 마이그레이션 : 새로운 HW/OS 또는 다른 캐릭터셋으로 데이터베이스 이동
  • 업그레이드는 복잡하므로 신중하게 적용한다.
    • HW, 버전, 데이터베이스 기능 및 보안 기술등에 따라 아주 복잡 해짐
    • "Oracle Database Upgrade Guide 21c" 문서 숙지 필요
      • https://docs.oracle.com/database/121/UPGRD/toc.htm
        {tip:title=Changes in This Release for ...}
        대부분 메뉴얼에 있는 "Changes in This Release for ..." 를 통해 데이터베이스의 변화와 새로운 기능에 대한 포괄적인 내용 파악 가능.
        {tip}
  • 업그레이드를 하는 이유와 문제점
    • 보통 복잡성, 많은 절차등의 사유로 업그레이드를 미루는 경향이 있음
    • 업그레이드를 미룰 수록 지원 비용 상승
      • Premier / Waived Extended / Extended / Substaining
    • 약 8년 후 버그 수정이 중단 됨
    • 정기 보안 패치 필요

* 오라클 데이터베이스 12c 업그레이드에 관한 새로운 기능

  • 사전 업그레이드 정보 툴 (Pre-Upgrade Information Tool)
    • 수동 업그레이드 전/후 실행 스크립트 (DBUA 에 포함 됨)
    • 업그레이드 시 발생 문제 사전 식별 및 수정 (fixup 스크립트)
  • 데이터베이스 업그레이드를 위한 병렬 처리 (Parallel processing for database upgrades)
    • catupgrd.sql 이 병렬 처리 가능한 catctl.pl 로 대체 됨
  • 재시작 가능한 DBUA (Database Upgrade Assistant)
    • 과거 DBUA 실패/에러는 원복을 의미
    • 12c DBUA는 아카이브 로깅 과 보장된 Restore Point 생성으로 오류 복구 가능
  • 사전 및 사후 업그레이드 요약 리포트 기능 개선
    • DBUA 에서 HTML 기반 사전/사후 업그레이드 리포트 제공
  • 업그레이드 중 오라클 XML 데이터베이스의 설치
    • Oracle EM Express 에 필요한 XML DB 설치 필수

* 오라클 데이터베이스 12c 업그레이드 준비

"무엇보다 준비가 성공의 열쇠다"

읽고 또 읽기
테스트
  • 업그레이드 계획 중 가장 중요, 업그레이드 실패의 75%는 부족한 테스트로 인함
  • 테스트와 테스트 계획
    • 데이터베이스, 애플리케이션, 데이터베이스 및 애플리케이션 연결, 성능 및 데이터 무결성, 백업과 복구, 모니터링 및 경고, 기타 인프라 항목의 12c 호환 확인
    • 비상 상황에 대한 대비, 발생 문제에 대한 기록 및 공유
  • 인프라스트럭처 테스트
    • 테스트 환경의 부족(계획 안된 변경, 문서화 안된 변경, 잘 못 기록된 변경 등)으로 인한 업그레이드 실패 와 근본 원인
    • 테스트 환경은 고가용성 유지를 위한 첫 번째 단계
      • 시간과 비용으로 조용한 운영 오픈 보장, 무엇이 중요한가?
      • 운영 환경과 다른 테스트 환경은 위험 요소
    • 테스트 환경 구축 주의 사항 (자주 문제가 되는 부분)
      • 하드웨어 구성 요소, OS 패치 레벨, 네트워크 환경 (HW 설정, 스위치, 케이블 등), 클러스터웨어, 노드 수, DB 버전, 파라미터
      • 하드웨어(CPU, 메모리 등) 차이로 인한 파라미터 확인, 데이터 볼륨 (디스크 수, 물리적 연결 등)
      • 단독 혹은 믹스된 트랜잭션 타입 재현 (동시성, 공간 포함) : 부하테스트
      • 변화의 의미 추적을 위한 변경관리 프로세스
호환성 이슈 확인
  • 인프라스트럭처와 애플리케이션 호환성
    • 12c와 시스템 내 다른 구성요소와의 호환성 체크 필요
      • 12c를 지원하거나 인증된 애플리케이션
      • 12c를 지원하는 드라이버 (JDBC, ODBC...)
      • HW 관련 버전 서포트, 네트워크/스토리지 호환
      • 인프라스트럭처의 12c 지원
  • 운영체제와 하드웨어 호환성
    • OS, HW 와 12c 호환 확인 : 플랫폼 별 설치 가이드 확인 및 권장 패치와 구성요소 체크
  • 데이터베이스 COMPATIBLE 파라미터
    • COMPATIBLE 파라미터 목적 : 사용 기능 제어, 마이그레이션 후 롤백
    • 마이그레이션이 성공적으로 끝날 때까지 COMPATIBLE 값을 소스 DB 버전으로 유지 권고, 몇주후 변경 (11.0.0.0 → 12.0.0.0)
    • 업그레이드 후 문제는 문제 해결을 시도하고, 롤백은 최후의 순간에 고려
업그레이드하기 전에 Database Control의 삭제 여부 확인
  • Database Control 은 Oracle EM Database Express 로 대체 됨
  • 업그레이드 과정에서 Database Control 이 삭제 되나 미리 삭제 필요 (업그레이드 작업 시간 관리)
    • $ORACLE_HOME/rdbms/admin/emremove.sql
소스 데이터베이스 백업
  • RMAN을 사용한 물리적 백업 수행 (전체 온라인 백업, 아카이브 로그, 컨트롤 파일)
  • DataPump 는 물리적 백업 아니며 사본을 익스포트 하는 것임
업그레이드나 마이그레이션 방법 결정
  • 12c 로 업그레이드 방법
방법설명가능 소스 DB 버전
직접수작업 혹은 DBUA로 동일한 플랫폼에서 업그레이드10.2.0.5 이상, 11.1.0.7 이상, 12.2.0.2 이상
간접직접 가능 버전으로 업그레이드 후 다시 업그레이드
  • 12c 로 마이그레이션 방법
    • DataPump (Export/Import)
    • Transportable Tablespace (일부/전체)
    • Goldengate
    • CTAS
방법OS같음(DT30분내)OS같음(DT30분이상)OS다름
DBUA 업그레이드
수작업 업그레이드
Transportable Tablespace
Full Transportable Export/Import
Oracle Golden Gate
DataPump
CTAS
  • DBUA(Oracle Database Upgrade Assistant)를 이용한 업그레이드
    • 10.2.0.5, 11.1.0.7, 11.2.0.2 이후 버전 가능 (미만 버전은 한번더 업그레이드 필요)
  • 수동 업그레이드 방법을 이용한 업그레이드
    • 버전 조건은 DBUA 와 같음
    • 업그레이드 스크립트 직접 수행
  • DataPump
    • 12c 로 직접 업그레이드 하고 싶지 않을 때 사용
    • DataPump(Export/Import)로 메타/데이터 로드
    • 느림 : 개선을 위해 기능(압축, 네트워크 직결, 병렬) 제공
  • Transportable Tablespace
    • DB가 다른 플랫폼에 존재 할 때 사용
    • 특정 오브젝트나 스키마를 업그레이드 할 때 사용
    • 12c 는 Transportable Tablespace + DataPump 조합으로 다른 바이트 정렬 순서 플랫폼간 데이터 이동 지원
  • CTAS
    • Database Link 환경 필요
    • 단점 : 네트워크 대역폭 제한, 테이블별 CTAS 및 DDL 작업 필요
사전 업그레이드 정보 툴(Database Upgrade Assistant)에 대한 상세사항
  • 업그레이드 전 데이터베이스를 체크하고 점검 결과를 리포트
  • DBUA 와 사전 업그레이드 정보 툴 사용
    • DBUA 는 업그레이드 정보 툴을 내부적으로 실행
    • 경고/실패 항목 발생 하며 업그레이드 전 수정 필요
  • 사전 업그레이드 정보 툴을 수동으로 구동
    • 11g 환경에서 12c $ORACLE_HOME/rdbms/admin/preupgrd.sql 실행
    • $ORACLE_BASE/cfgtoollogs/orcl/preupgrade 에 로그와 스크립트 생성 됨
      • preupgrade.log
        • 카탈로그 뷰, 패키지, 타입, JVM, 그 외 모든 구성요소 및 공간/설정 체크
        • dbms_stats.gather_dictionary_stats 실행, Fixed Object 통계 수집, 기타 DB 관련 항목 수행 권고
      • preupgrade_fixups.sql : 업그레이드 전 이 스크립트 실행 필요 (실행 결과에 나오는 수정사항은 별도 실행 필요)
      • postupgrade_fixups.sql
업그레이드나 마이그레이션 준비
  • 소스 데이터베이스
    • Recycle Bin 비우기
    • DBA_INVALID_OBJECTS 내 SYS, SYSTEM 객체 제거
    • SYS, SYSTEM 내 중복 객체 제거
    • Deprecated 파라미터 제거
    • DBA_REGISTRY 내 구성요소 VALID 상태 유지
    • 사용하지 않는 구성요소 제거 (업그레이드 과정 단축)
    • AWR 성능 통계 정보 보존(업그레이드 전 한달) - 30분 간격, 보관 주기 31일 이상, V$SYSAUX_OCCUPANTS
      • 소스DB AWR 정보 Export ($ORACLE_HOME/rdbms/admin/awrextr.sql)
      • 타겟DB AWR 정보 Import ($ORACLE_HOME/rdbms/admin/awrload.sql)
    • 네트워크 확인 (대역폭, 안정성)
    • 블록 손상 검증 (RMAN - backup check logical validate database)
    • MOS 1565082.1 문서 (12.1.0.1 Base Release - Availability and Known Issues (문서 ID 1565082.1)) 참조
    • 클라이언트 버전 결정 (sqlnet.ora:allowed_logon_version_server=8,9,10,11,12,12a)
  • 타겟 데이터베이스
    • 필수 인증 요구 사항 체크 (HW, OS, Firmware 등)
    • 설치 요구 사항 확인 (HW 리소스 등)
    • 설치 SW, Patch 준비 및 설치 (PSU, BP, Interim)

* DBUA(Database Upgrade Assistance)를 통한 오라클 데이터베이스 12c로 업그레이드

DBUA 시작
DBUA Step 1

* Upgrade Oracle Database 선택
DBUA Step 2

* 업그레이드 대상 Oracle Home 및 Instance 선택
DBUA Step 3-1

* Pre-Upgrade 유틸리티, Database Upgrade Check 작업 수행
** 현재 DB의 업그레이드 적합 여부 체크
** 업그레이드 될 DB의 ORACLE_HOME 찾기 (/etc/oratab)
** ORACLE_HOME 의 OS 유저 OWNERSHIP 체크
** ASM 호환성 체크
DBUA Step 3-2

* Pre Upgrade Utility Checks, Database Upgrade Checks 결과 표시
* Fixable 이 Yes 인 경우 Action 선택 가능(Fix - Pre Upgrade, 무시, Revalidate)
* Action 컬럼이 비워져 있는 경우 수동 해결 후 "Check Again" 수행
DBUA Step 4-1

* 업그레이드 옵션 선택 (병렬도, Invalid Object Recompile, Upgrade Timezone Data, Gather Statistics, User Tablespace Read Only)
DBUA Step 4-2

* Custom SQL Script 수행 가능 (업그레이드 전 후 RMAN 백업 등)
DBUA Step 5

* EM Database Express 설정
* EM Cloud Control 설정
DBUA Step 6

* DBF/FRA 이동 선택
DBUA Step 7

* 마이그레이션 대상 DB 를 지원하는 리스너 선택/생성 가능
DBUA Step 8

* 업그레이드 과정에서 백업 수행 방법 선택(새로운 기능)
* Flashback Database 사용 가능(Guaranteed Restore Point) : 실패시 Restore Point 시점부터 재시작 가능
* Flashback Database 활성화로 인한 단점보다 DBUA 업그레이드 중 오류 발생시 얻을 수 있는 유연성이 더 큼
DBUA Step 9

* 전체 작업의 개요
DBUA Step 10




* DBUA 진행률 (진행 상황 표시)
** 사전 업그레이드 단계(Pre Upgrade Steps)
** 실제 데이터베이스 업그레이드(Database Upgrade Steps)
** 사후 업그레이드 단계(Post Upgrade Steps)
* Activity Log 관찰 가능
* Stop 버튼 클릭 시 백업에서 업그레이드된 데이터베이스를 복원
DBUA Step 11

* 업그레이드 시간은 메모리, CPU, I/O 속도에 의존적
* "Upgrade Results" 버튼 클릭 시 업그레이드 관련 오류/경고/세부 사항이 나오는 결과 페이지 표시
** 사전 업그레이드 체크 결과
** 업그레이드 작업 자체에 대한 상세 정보
** 업그레이드 개별 단계 특정 정보
*** 백업 내용과 복원 방법
*** SPFILE 정보
*** EM Database Express 설정 정보
*** 초기화 파라미터 변경 정보
* "Restore Database" 버튼 클릭 시 복원 됨
* 업그레이드 완료 시 백업 후 어플리케이션 연결

* 수동으로 오라클 데이터베이스 12c 업그레이드

  • DBUA 지원 버전은 수동 업그레이드 가능
    • 저자는 12c 부터 오류 복구 기능이 보완된 DBUA 사용 권장
  • 수동 업그레이드 사전 업그레이드 단계
    1. 대상 DB 백업
    2. 사전 업그레이드 정보 툴 수행($ORACLE_HOME/rdbms/admin/preupgrd.sql)
    3. 파라미터 파일을 새 ORACLE_HOME 으로 이동
수동 업그레이드 수행
    1. 기존 DB용 오라클 환경변수 설정 (. /usr/local/bin/oraenv)

[oracle@earth ~]$ . /usr/local/bin/oraenv
ORACLE_SID = [orcl11g] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@earth ~]$ env | grep ORA
ORACLE_SID=orcl11g
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

    1. DB shutdown immediate
    2. OS 가 Windows 일 경우 수행
      • Oracle 관련 서비스 종료
      • oradim 유틸리티로 Oracle 관련 서비스 제거
      • oradim 유틸리티로 Oracle 관련 서비스 등록
    3. /etc/oratab 수정 (대상 DB ORACLE_HOME 경로 수정)

[root@earth ~]# cat /etc/oratab | grep -v ^#
orcl12c:/u01/app/oracle/product/12.1.0/dbhome_1:N
orcl11g:/u01/app/oracle/product/11.2.0/dbhome_1:N
[root@earth ~]# vi /etc/oratab
[root@earth ~]# cat /etc/oratab | grep -v ^#
orcl12c:/u01/app/oracle/product/12.1.0/dbhome_1:N
orcl11g:/u01/app/oracle/product/11.1.0/dbhome_1:N

    1. 신규 DB용 오라클 환경 변수 설정 (. /usr/local/bin/oraenv)

[oracle@earth ~]$ . /usr/local/bin/oraenv
ORACLE_SID = [orcl12c] ? orcl11g
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@earth ~]$ env | grep ORA
ORACLE_SID=orcl11g
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1

    1. 기존 $ORACLE_HOME/dbs 에서 새 디렉터리로 pfile/spfile 복사

[oracle@earth dbs]$ pwd
/u01/app/oracle/product/12.1.0/dbhome_1/dbs
[oracle@earth dbs]$ ls *11g*
ls: cannot access *11g*: 그런 파일이나 디렉터리가 없습니다
[oracle@earth dbs]$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl11g.ora .
[oracle@earth dbs]$ ls *11g*
spfileorcl11g.ora
[oracle@earth dbs]$

    1. startup upgrade

[oracle@earth dbs]$ cd $ORACLE_HOME/rdbms/admin
[oracle@earth admin]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Mon Nov 7 16:29:43 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup upgrade
ORACLE instance started.

Total System Global Area  796917760 bytes
Fixed Size                  2929448 bytes
Variable Size             515902680 bytes
Database Buffers          272629760 bytes
Redo Buffers                5455872 bytes
Database mounted.
Database opened.
SQL>

    1. Desupport 파라미터 기록 (업그레이드 완료 후 제거)
    2. $ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql

-- 병렬로 수행 됨 (기본값)
[oracle@earth admin]$ $ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql

Argument list for [catctl.pl]
SQL Process Count     n = 0
SQL PDB Process Count N = 0
Input Directory       d = 0
Phase Logging Table   t = 0
Log Dir               l = 0
Script                s = 0
Serial Run            S = 0
Upgrade Mode active   M = 0
Start Phase           p = 0
End Phase             P = 0
Log Id                i = 0
Run in                c = 0
Do not run in         C = 0
Echo OFF              e = 1
No Post Upgrade       x = 0
Reverse Order         r = 0
Open Mode Normal      o = 0
Debug catcon.pm       z = 0
Debug catctl.pl       Z = 0
Display Phases        y = 0
Child Process         I = 0

catctl.pl version: 12.1.0.2.0
Oracle Base           = /u01/app/oracle

Analyzing file catupgrd.sql
Log files in /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin
catcon: ALL catcon-related output will be written to catupgrd_catcon_13433.lst
catcon: See catupgrd*.log files for output generated by scripts
catcon: See catupgrd_*.lst files for spool files, if any
Number of Cpus        = 2
SQL Process Count     = 0
New SQL Process Count = 4

------------------------------------------------------
Phases [0-73]
Serial   Phase #: 0 Files: 1

Phases [0-73]
Serial   Phase #: 0 Files: 1     Time: 131s
Serial   Phase #: 1 Files: 5     Time: 30s
Restart  Phase #: 2 Files: 1     Time: 0s
Parallel Phase #: 3 Files: 18    Time: 8s
Restart  Phase #: 4 Files: 1     Time: 0s
Serial   Phase #: 5 Files: 5     Time: 14s
Serial   Phase #: 6 Files: 1     Time: 8s
Serial   Phase #: 7 Files: 4     Time: 6s
Restart  Phase #: 8 Files: 1     Time: 0s
Parallel Phase #: 9 Files: 62    Time: 48s
Restart  Phase #:10 Files: 1     Time: 0s
Serial   Phase #:11 Files: 1     Time: 10s
Restart  Phase #:12 Files: 1     Time: 0s
Parallel Phase #:13 Files: 91    Time: 6s
Restart  Phase #:14 Files: 1     Time: 0s
Parallel Phase #:15 Files: 111   Time: 13s
Restart  Phase #:16 Files: 1     Time: 1s
Serial   Phase #:17 Files: 3     Time: 0s
Restart  Phase #:18 Files: 1     Time: 0s
Parallel Phase #:19 Files: 32    Time: 18s
Restart  Phase #:20 Files: 1     Time: 0s
Serial   Phase #:21 Files: 3     Time: 5s
Restart  Phase #:22 Files: 1     Time: 0s
Parallel Phase #:23 Files: 23    Time: 64s
Restart  Phase #:24 Files: 1     Time: 0s
Parallel Phase #:25 Files: 11    Time: 31s
Restart  Phase #:26 Files: 1     Time: 0s
Serial   Phase #:27 Files: 1     Time: 0s
Restart  Phase #:28 Files: 1     Time: 0s
Serial   Phase #:30 Files: 1     Time: 0s
Serial   Phase #:31 Files: 257   Time: 13s
Serial   Phase #:32 Files: 1     Time: 0s
Restart  Phase #:33 Files: 1     Time: 0s
Serial   Phase #:34 Files: 1     Time: 3s
Restart  Phase #:35 Files: 1     Time: 0s
Restart  Phase #:36 Files: 1     Time: 0s
Serial   Phase #:37 Files: 4     Time: 33s
Restart  Phase #:38 Files: 1     Time: 0s
Parallel Phase #:39 Files: 13    Time: 39s
Restart  Phase #:40 Files: 1     Time: 0s
Parallel Phase #:41 Files: 10    Time: 6s
Restart  Phase #:42 Files: 1     Time: 0s
Serial   Phase #:43 Files: 1     Time: 4s
Restart  Phase #:44 Files: 1     Time: 0s
Serial   Phase #:45 Files: 1     Time: 4s
Serial   Phase #:46 Files: 1     Time: 0s
Restart  Phase #:47 Files: 1     Time: 0s
Serial   Phase #:48 Files: 1     Time: 75s
Restart  Phase #:49 Files: 1     Time: 0s
Serial   Phase #:50 Files: 1     Time: 29s
Restart  Phase #:51 Files: 1     Time: 0s
Serial   Phase #:52 Files: 1     Time: 13s
Restart  Phase #:53 Files: 1     Time: 0s
Serial   Phase #:54 Files: 1     Time: 252s
Restart  Phase #:55 Files: 1     Time: 0s
Serial   Phase #:56 Files: 1     Time: 55s
Restart  Phase #:57 Files: 1     Time: 0s
Serial   Phase #:58 Files: 1     Time: 100s
Restart  Phase #:59 Files: 1     Time: 0s
Serial   Phase #:60 Files: 1     Time: 388s
Restart  Phase #:61 Files: 1     Time: 0s
Serial   Phase #:62 Files: 1     Time: 988s
Restart  Phase #:63 Files: 1     Time: 1s
Serial   Phase #:64 Files: 1     Time: 1s
Serial   Phase #:65 Files: 1 Calling sqlpatch with LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/dbhome_1/lib; export LD_LIBRARY_PATH;/u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/perl -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch/sqlpatch.pl -verbose -upgrade_mode_only > catupgrd_datapatch_upgrade.log 2> catupgrd_datapatch_upgrade.err
returned from sqlpatch
    Time: 65s
Serial   Phase #:66 Files: 1     Time: 61s
Serial   Phase #:68 Files: 1     Time: 0s
Serial   Phase #:69 Files: 1 Calling sqlpatch with LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/dbhome_1/lib; export LD_LIBRARY_PATH;/u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/perl -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin -I /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/../../sqlpatch/sqlpatch.pl -verbose > catupgrd_datapatch_normal.log 2> catupgrd_datapatch_normal.err
returned from sqlpatch
    Time: 37s
Serial   Phase #:70 Files: 1     Time: 173s
Serial   Phase #:71 Files: 1     Time: 0s
Serial   Phase #:72 Files: 1     Time: 0s
Serial   Phase #:73 Files: 1     Time: 20s

Grand Total Time: 2766s

LOG FILES: (catupgrd*.log)

Upgrade Summary Report Located in:
/u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/orcl11g/upgrade/upg_summary.log

Grand Total Upgrade Time:    [0d:0h:46m:6s]

    1. startup
    2. $ORACLE_HOME/rdbms/admin/utlu121s.sql 실행 : 업그레이드 결과 Summary 생성 및 리뷰

SQL> @utlu121s.sql

PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.





CATCTL REPORT = /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/orcl11g/upgrade/upg_summary.log

PL/SQL procedure successfully completed.






Oracle Database 12.1 Post-Upgrade Status Tool           11-07-2016 17:21:54

Component                               Current         Version  Elapsed Time
Name                                    Status          Number   HH:MM:SS

Oracle Server                          UPGRADED      12.1.0.2.0  00:08:15
JServer JAVA Virtual Machine              VALID      12.1.0.2.0  00:01:13
Oracle Workspace Manager                  VALID      12.1.0.2.0  00:00:44
OLAP Analytic Workspace                   VALID      12.1.0.2.0  00:00:12
OLAP Catalog                         OPTION OFF      11.2.0.3.0  00:00:00
Oracle OLAP API                           VALID      12.1.0.2.0  00:00:16
Oracle XDK                                VALID      12.1.0.2.0  00:00:29
Oracle Text                               VALID      12.1.0.2.0  00:00:32
Oracle XML Database                       VALID      12.1.0.2.0  00:03:39
Oracle Database Java Packages             VALID      12.1.0.2.0  00:00:10
Oracle Multimedia                         VALID      12.1.0.2.0  00:01:40
Spatial                                UPGRADED      12.1.0.2.0  00:06:27
Oracle Application Express                VALID     4.2.5.00.08  00:15:49
Final Actions                                                    00:01:54
Post Upgrade                                                     00:02:38

Total Upgrade Time: 00:44:28

PL/SQL procedure successfully completed.

SQL>
SQL> --
SQL> -- Update Summary Table with con_name and endtime.
SQL> --
SQL> UPDATE sys.registry$upg_summary SET reportname = :ReportName,
  2                                  con_name = SYS_CONTEXT('USERENV','CON_NAME'),
  3                                  endtime  = SYSDATE
  4         WHERE con_id = -1;

1 row updated.

SQL> commit;

Commit complete.

SQL>

수동 업그레이드 사후 업그레이드 단계
    1. utlrp.sql 수행 : Recompile Invalid Objects
    2. utluiobj.sql 수행 : 패키지/클래스 유효성 확인
    3. dbms_stats.gather_fixed_object_stats 수행 : Fixed 오브젝트 통계 정보 수집
    4. utluiobj.sql 또 수행
    5. 32K 확장 데이터 타입 사용시 선택 수행
      • max_string_size 파라미터 값 설정 EXTENDED
      • $ORACLE_HOME/rdbms/admin/utl32k.sql 수행
    6. 백업
고려해야 하는 기타 사후 업그레이드 단계
    1. 초기 테스트 완료 후 COMPATIBLE 파라미터 12.0.0.0 설정 (롤백 고려)
      • 12c 는 COMPATIBLE 값 10.0.0.0 이상 설정 가능
    2. 확장 데이터 타입 활성화 (MAX_STRING_SIZE = EXTENDED)
      • VARCHAR2, NVARCHAR2, RAW 데이터 타입을 32K 까지 정의 가능
    3. 하드웨어 기반으로 산출되는 PARALLEL_MIN_SERVERS 파라미터 값 확인
    4. RMAN 카탈로그 업그레이드
    5. DBUA 에서 업그레이드 후 Time Zone File 업그레이드 권고가 있었다면 수행
    6. 사용중인 제품(APEX, Database Vault 등)과 기능에 따라 추가 작업 발생 가능

* 오라클 데이터 펌프를 이용한 오라클 데이터베이스 12c로 업그레이드

  • DBUA, 수동 업그레이드 사용 불가 시 대안으로 DataPump 적용
  • DataPump 이점
    • 서로 다른 엔디언 포멧을 가진 플랫폼 간 업그레이드 가능

SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM;

PLATFORM_ID PLATFORM_NAME                    ENDIAN_FORMAT
----------- -------------------------------- --------------
          1 Solaris[tm] OE (32-bit)          Big
          2 Solaris[tm] OE (64-bit)          Big
          7 Microsoft Windows IA (32-bit)    Little
         10 Linux IA (32-bit)                Little
          6 AIX-Based Systems (64-bit)       Big
          3 HP-UX (64-bit)                   Big
          5 HP Tru64 UNIX                    Little
          4 HP-UX IA (64-bit)                Big
         11 Linux IA (64-bit)                Little
         15 HP Open VMS                      Little
          8 Microsoft Windows IA (64-bit)    Little
          9 IBM zSeries Based Linux          Big
         13 Linux 64-bit for AMD             Little
         16 Apple Mac OS                     Big
         12 Microsoft Windows 64-bit for AMD Little
         17 Solaris Operating System (x86)   Little
 
16 rows selected.

    • DBUA/수동 업그레이드 미지원 버전 업그레이드 가능
    • GoldenGate, Streams 등과 결합해 다운타임 최소화 가능 (타겟 DB 구축에 활용, RMAN)
    • 실제 전환 전 까지 영향도 파악, 검증 및 안정화 가능
  • DataPump 사용
    • RESUMABLE_TIMEOUT 설정 고려 (공간 문제로 실패 방지)
순번내용
1DBCA 로 새 DB 12c 생성
2DB로의 모든 연결에 대한 정합성 체크
3타겟DB 운영계화(모니터링, 백업 등) 체크
4마이그레이션, 테스트, 백아웃 절차 계획 완료
5테스트 마이그레이션 반복 수행
6타겟DB 테이블스페이스 확장
7소스DB METADATA_EXP_DIR 생성
8소스DB EXPORT 권한 유저 생성(DATAPUMP_EXP_FULL_DATABASE)
9소스DB META EXPORT 수행(INDEX 제외)
10타겟DB IMPORT 권한 유저 생성(DATAPUMP_IMP_FULL_DATABASE)
11롤백을 위해 GUARANTEED RESTORE POINT 생성 (IMPORT 롤백 필요시 FLASHBACK DATABASE 사용 고려)
12타겟DB META IMPORT 수행
13타겟DB DB_LINK TO 소스DB 생성
14DB_LINK 점검
15NETWORK_LINK 옵션과 함께 IMPORT 수행(FOREIGN KEY 주의)
16INDEX IMPORT 수행
17오든 오브젝트 재컴파일(utlrp.sql) 수행
18타겟DB 백업
19데이터 검사 및 클라이언트 전환

* 롤링 업그레이드

  • 다운타임 최소화 업그레이드 기능 제공
    • Oracle Clusterware 와 RAC
    • Data Guard 의 Standby DB
    • GoldenGate

* 업그레이드 롤백

  • 아래 버전으로 제한적인 롤백 가능
    • 11g R2 11.2.0.2, 11.2.0.3, 11.2.0.4
      • 패치셋 다운 그레이드는 11.2 지원 (11.2.0.1 제외)
    • 11g R1 11.1.0.7
    • 10g R2 10.2.0.5 (불가)
  • Compatible 파라미터
    • 10.0.0.0 : 11.0.0.0 변경 후 롤백 가능
    • 11.0.0.0, 11.1.0.0 : 롤백 가능
    • 12.0.0.0 : 롤백 불가능 (DataPump 혹은 Restore Point 를 통해서 가능)
  • Compatible 파라미터 12.0.0.0 설정 전 시스템의 원활한 가동 확인 필요
    • 설정 후 롤백이 복잡해 짐
  • 기타
    • 롤백에 대비해 GoldenGate 적용 가능
    • XE 는 다운그레이드 불가
    • 11.1.0.7 이전 버전 다운그레이드 불가

* 업그레이드 후에 주의해야 할 몇 가지 변경사항

  • ORACLE_HOME 소프트웨어 설치/제거에 Standalone Deinstallation 유틸리티 계속 지원
  • SEC_CASE_SENSITIVE_LOGON 파라미터 폐지 - 표준 패스워드 해싱 알고리즘(SHA-1, SHA-512)이 대소문자 암호 매칭 미지원
  • Audit Trail → Unified Audit
  • 참조 문서
    • Complete Checklist for Upgrading to Oracle Database 12c Release 1 using DBUA (문서 ID 1516557.1)
    • Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1) (문서 ID 1503653.1)
    • Master Note For Oracle Database 12c Release 1 (12.1) Database/Client Installation/Upgrade/Migration Standalone Environment (Non-RAC) (문서 ID 1520299.1)
    • Oracle Database 12c Release 1 (12.1) Upgrade New Features (문서 ID 1515747.1)