02. 오라클 데이터베이스 12c로의 업그레이드와 마이그레이션
Added by 오화균, last edited by 오화균 on 11월 19, 2016 (view change)
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=30212122&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
내용
* 소개* 오라클 데이터베이스 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
Changes in This Release for ...
대부분 메뉴얼에 있는 "Changes in This Release for ..." 를 통해 데이터베이스의 변화와 새로운 기능에 대한 포괄적인 내용 파악 가능.
- https://docs.oracle.com/database/121/UPGRD/toc.htm
- 업그레이드를 하는 이유와 문제점
- 보통 복잡성, 많은 절차등의 사유로 업그레이드를 미루는 경향이 있음
- 업그레이드를 미룰 수록 지원 비용 상승
- 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 업그레이드 준비
"무엇보다 준비가 성공의 열쇠다" |
읽고 또 읽기
- "Oracle Database Upgrade Guide 12c" 설명서 필독
- https://docs.oracle.com/database/121/UPGRD/toc.htm
테스트
- 업그레이드 계획 중 가장 중요, 업그레이드 실패의 75%는 부족한 테스트로 인함
- 테스트와 테스트 계획
- 데이터베이스, 애플리케이션, 데이터베이스 및 애플리케이션 연결, 성능 및 데이터 무결성, 백업과 복구, 모니터링 및 경고, 기타 인프라 항목의 12c 호환 확인
- 비상 상황에 대한 대비, 발생 문제에 대한 기록 및 공유
- 인프라스트럭처 테스트
- 테스트 환경의 부족(계획 안된 변경, 문서화 안된 변경, 잘 못 기록된 변경 등)으로 인한 업그레이드 실패 와 근본 원인
- 테스트 환경은 고가용성 유지를 위한 첫 번째 단계
- 시간과 비용으로 조용한 운영 오픈 보장, 무엇이 중요한가?
- 운영 환경과 다른 테스트 환경은 위험 요소
- 테스트 환경 구축 주의 사항 (자주 문제가 되는 부분)
- 하드웨어 구성 요소, OS 패치 레벨, 네트워크 환경 (HW 설정, 스위치, 케이블 등), 클러스터웨어, 노드 수, DB 버전, 파라미터
- 하드웨어(CPU, 메모리 등) 차이로 인한 파라미터 확인, 데이터 볼륨 (디스크 수, 물리적 연결 등)
- 단독 혹은 믹스된 트랜잭션 타입 재현 (동시성, 공간 포함) : 부하테스트
- 변화의 의미 추적을 위한 변경관리 프로세스
호환성 이슈 확인
- 인프라스트럭처와 애플리케이션 호환성
- 12c와 시스템 내 다른 구성요소와의 호환성 체크 필요
- 12c를 지원하거나 인증된 애플리케이션
- 12c를 지원하는 드라이버 (JDBC, ODBC...)
- HW 관련 버전 서포트, 네트워크/스토리지 호환
- 인프라스트럭처의 12c 지원
- 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
- preupgrade.log
업그레이드나 마이그레이션 준비
- 소스 데이터베이스
- 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 1DBUA Step 2DBUA Step 3-1DBUA Step 3-2DBUA Step 4-1DBUA Step 4-2DBUA Step 5DBUA Step 6DBUA Step 7DBUA Step 8DBUA Step 9DBUA Step 10DBUA Step 11
|
|
|
|
|
|
|
|
|
|
|
|
|
* 수동으로 오라클 데이터베이스 12c 업그레이드
- DBUA 지원 버전은 수동 업그레이드 가능
- 저자는 12c 부터 오류 복구 기능이 보완된 DBUA 사용 권장
- 수동 업그레이드 사전 업그레이드 단계
- 대상 DB 백업
- 사전 업그레이드 정보 툴 수행($ORACLE_HOME/rdbms/admin/preupgrd.sql)
- 파라미터 파일을 새 ORACLE_HOME 으로 이동
수동 업그레이드 수행
-
- 기존 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
- DB shutdown immediate
- OS 가 Windows 일 경우 수행
- Oracle 관련 서비스 종료
- oradim 유틸리티로 Oracle 관련 서비스 제거
- oradim 유틸리티로 Oracle 관련 서비스 등록
- /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
- 신규 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
- 기존 $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]$
- 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>
- Desupport 파라미터 기록 (업그레이드 완료 후 제거)
- $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]
- startup
- $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>
- 기존 DB용 오라클 환경변수 설정 (. /usr/local/bin/oraenv)
수동 업그레이드 사후 업그레이드 단계
-
- utlrp.sql 수행 : Recompile Invalid Objects
- utluiobj.sql 수행 : 패키지/클래스 유효성 확인
- dbms_stats.gather_fixed_object_stats 수행 : Fixed 오브젝트 통계 정보 수집
- utluiobj.sql 또 수행
- 32K 확장 데이터 타입 사용시 선택 수행
- max_string_size 파라미터 값 설정 [EXTENDED]
- $ORACLE_HOME/rdbms/admin/utl32k.sql 수행
- 백업
고려해야 하는 기타 사후 업그레이드 단계
-
- 초기 테스트 완료 후 COMPATIBLE 파라미터 12.0.0.0 설정 (롤백 고려)
- 12c 는 COMPATIBLE 값 10.0.0.0 이상 설정 가능
- 확장 데이터 타입 활성화 (MAX_STRING_SIZE = EXTENDED)
- VARCHAR2, NVARCHAR2, RAW 데이터 타입을 32K 까지 정의 가능
- 하드웨어 기반으로 산출되는 PARALLEL_MIN_SERVERS 파라미터 값 확인
- RMAN 카탈로그 업그레이드
- DBUA 에서 업그레이드 후 Time Zone File 업그레이드 권고가 있었다면 수행
- 사용중인 제품(APEX, Database Vault 등)과 기능에 따라 추가 작업 발생 가능
- 초기 테스트 완료 후 COMPATIBLE 파라미터 12.0.0.0 설정 (롤백 고려)
* 오라클 데이터 펌프를 이용한 오라클 데이터베이스 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 설정 고려 (공간 문제로 실패 방지)
순번내용
1 | DBCA 로 새 DB 12c 생성 |
2 | DB로의 모든 연결에 대한 정합성 체크 |
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 생성 |
14 | DB_LINK 점검 |
15 | NETWORK_LINK 옵션과 함께 IMPORT 수행(FOREIGN KEY 주의) |
16 | INDEX 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 (불가)
- 11g R2 11.2.0.2, 11.2.0.3, 11.2.0.4
- 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)
'IT와' 카테고리의 다른 글
소프트웨어 개발 방법론의 종류 (0) | 2020.04.17 |
---|---|
Static vs. Dynamic SQL (0) | 2019.09.04 |
애자일·데브옵스로 IT서비스 개발·운영 관리 효율화 (0) | 2019.04.26 |
오라클 Lock (0) | 2019.04.25 |
OAS(Oracle Advanced Security) (0) | 2019.04.25 |
댓글