Upload
others
View
11
Download
2
Embed Size (px)
Citation preview
오브젝트 스토리지를 사용해 데이터베이스를
Oracle Cloud Infrastructure로 마이그레이션
ORACLE 백서 | 2018년 11월
2 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
면책 조항
본 자료에서는 오라클의 전반적인 제품 방향을 소개하고 정보를 제공할 목적으로 작성되었으며
어떠한 계약에도 포함되지 않을 수 있습니다. 따라서 이 정보는 어떤 자료, 코드 또는 기능을
제공한다는 약속을 의미하는 것이 아니므로 구매 결정에 참고해서는 안됩니다. 여기 설명되어
있는 오라클 제품에 대한 모든 특징 또는 기능의 개발, 발표 및 시기는 오라클의 단독 재량에
따라 변경될 수 있습니다.
개정 이력
다음은 본 백서가 최초 발간 이후 지금까지 개정된 이력을 나타낸 것입니다.
날짜 개정
2018년 10월 26일 최초 발간
Oracle Cloud Infrastructure 최신 백서는 https://cloud.oracle.com/iaas/technical-resources에서 찾아볼
수 있습니다.
3 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
목차
서론 5
오브젝트 스토리지를 사용해 Oracle 데이터베이스를 마이그레이션하는 단계 5
1단계: RMAN을 통한 Oracle 데이터베이스 백업 6
전체 (Level 0) 백업 6
증분 (Level 1) 백업 8
2단계: Oracle 데이터베이스 백업 파일을 오브젝트 스토리지로 이동 10
데이터 전송 디스크 11
데이터 전송 어플라이언스 11
스토리지 게이트웨이 12
CLI 12
3단계: 컴퓨트 인스턴스 생성 및 대상 데이터베이스 시작 14
SSH 키 생성 14
컴퓨트 인스턴스 생성 14
컴퓨트 인스턴스 연결 15
Oracle 데이터베이스 설치 15
4단계: Database Cloud Backup Module 구성 18
Auth 토큰 생성 18
Database Cloud Backup Module 다운로드 19
Database Cloud Backup Module 설치 19
5단계: 오브젝트 스토리지에서 백업 파일 복구 19
SBT 메타데이터 파일 생성 20
매개변수 파일 복구 21
제어 파일 위치 생성 21
제어 파일 복구 22
4 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
데이터베이스 복구 및 복원 22
결론 25
부록: 데이터베이스 마이그레이션 보안 26
암호화 26
액세스 제어 세분화 26
인증 및 권한 부여 27
5 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
서론
Oracle 데이터베이스는 다중 모델 관계형 데이터베이스 관리 시스템으로서, 비즈니스 트랜잭션을
구성하는 여러 단계에서 널리 사용될 뿐만 아니라 모든 규모의 기업에서 다양한 형식의 데이터를
관리할 수 있도록 배치됩니다. Oracle 데이터베이스는 흔히 온라인 트랜잭션 처리 (OLTP) 워크로드,
데이터 웨어하우징 (DW) 워크로드 또는 OLTP와 DW가 혼합된 데이터베이스 워크로드를 실행하는 데
사용됩니다. Oracle Cloud Infrastructure는 Oracle 데이터베이스 워크로드를 온프레미스 환경에서
Oracle Cloud Infrastructure로 배포할 수 있는 포괄적인 서비스와 도구를 제공합니다.
Oracle Cloud Infrastructure는 Oracle Cloud Infrastructure 컴퓨트 인스턴스에서 직접, 혹은
서비스형 데이터베이스 (DBaaS) 관리형 인스턴스에서 Oracle 데이터베이스를 실행할 수 있는
여러 가지 기능을 제공합니다. Oracle 데이터베이스를 컴퓨트 인스턴스에서 실행할 경우에는
사용자가 전체 데이터베이스와 관련 인프라의 설정을 완벽히 제어할 수 있습니다. 이러한
프로세스에서는 사용자가 필요에 따라 인스턴스, 네트워킹, 스토리지 볼륨, 확장성, 보안 등 모든
구성요소를 설정, 구성 및 관리하여야 합니다. 운영 시스템 수준에서 데이터베이스와 인스턴스를
제어할 수 있기 때문에 컴퓨트 인스턴스에서 데이터베이스를 실행하는 것은 고객이 소유한
서버에서 데이터베이스를 실행하는 것과 유사합니다. 그 밖에 모니터링 및 관리 에이전트를
실행할 수 있습니다.
이번 백서에서는 Oracle 데이터베이스 워크로드를 Oracle Cloud Infrastructure 컴퓨트 인스턴스로
마이그레이션하는 방법에 대해 자세히 설명하고, 마이그레이션에 도움이 되는 몇 가지 옵션과
예시에 대해 살펴보겠습니다. 데이터베이스를 DBaaS 관리형 인스턴스로 마이그레이션하는 방법은
해당 백서인 "Migrating Databases to Oracle Cloud Infrastructure Database Using Object
Storage"에 자세히 소개되어 있습니다.
오브젝트 스토리지를 사용해 Oracle 데이터베이스를
마이그레이션하는 단계
Oracle 데이터베이스를 온프레미스 환경에서 Oracle Cloud Infrastructure로 마이그레이션하는
작업은 Oracle 데이터베이스를 고객이 소유한 서버로 마이그레이션하는 작업과 유사합니다.
다음은 Oracle 데이터베이스를 Oracle Cloud Infrastructure 컴퓨트 인스턴스로 마이그레이션할 때
사용되는 고수준의 단계입니다.
1. Oracle RMAN (Recovery Manager)을 사용해 Oracle 데이터베이스를 백업합니다.
2. 다음 Oracle Cloud Infrastructure 데이터 마이그레이션 서비스 중 하나를 사용해 백업
파일을 Oracle Cloud Infrastructure 오브젝트 스토리지로 복사합니다.
○ 데이터 전송 디스크
○ 데이터 전송 어플라이언스
○ 스토리지 게이트웨이
6 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
○ 명령줄 인터페이스(CLI)
3. 컴퓨트 인스턴스를 생성하고 대상 데이터베이스를 시작합니다.
4. Oracle 데이터베이스 Cloud Backup Module을 다운로드하여 컴퓨트 인스턴스에
구성합니다.
5. 오브젝트 스토리지의 백업 파일을 자체 관리형 컴퓨트 인스턴스에 Oracle 데이터베이스로
복구합니다.
1단계: RMAN을 통한 Oracle 데이터베이스 백업
Oracle RMAN은 Oracle 데이터베이스 백업 및 복구를 실행하고 관리합니다. 또한 전체 및 증분
백업 (차등, 누적)을 실행한 후 백업 카탈로그를 유지하기 때문에 복구 프로세스가 간단하며 믿을
수 있습니다. 그 밖에도, 백업 파일에서 또는 활성 데이터베이스에서 데이터베이스를 복사
(duplicate) 또는 복제 (clone)할 수 있습니다.
참고: 이번 단원에서는 RMAN을 사용해 중소 규모의 Oracle 데이터베이스를 간단하게 백업하는
방법을 소개합니다. 고가용성을 요하는 대규모의 데이터베이스일 때는 Oracle 데이터베이스 백업
및 복구 모범 사례에 따라 중단 시간을 최소화하여 데이터베이스를 빠르고 안전하게
마이그레이션하는 것이 좋습니다.
전체 (Level 0) 백업
RMAN을 사용해 아래 명령을 실행하여 Oracle 데이터베이스 전체를 백업하고 암호화합니다.
본 예제에서는 RMAN 패스워드 기반 암호화를 사용하며, RMAN 백업은 myPassword라는 암호를
사용하여 암호화됩니다. 하지만 데이터베이스를 백업하면서 SET ENCRYPTION ON IDENTIFIED
BY '<password>' only 명령을 사용해 고유하고 안전한 암호를 선택해 구성하는 것이 좋습니다.
복구 과정에서 백업 파일을 대상 인스턴스에서 복호화할 때도 동일한 암호를 사용합니다.
$ rman target /
RMAN> SET ENCRYPTION ON IDENTIFIED BY 'myPassword' only;
executing command: SET encryption
RMAN>set compression algorithm 'medium';
executing command: SET compression
RMAN> run
{
configure controlfile autobackup off;
backup as compressed backupset
device type disk
tag dta_level0
incremental level 0
format '/u01/backups/fullbackup_%U'
section size 24g
database
include current controlfile spfile
7 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
plus archivelog
format '/u01/backups/Al_fullbackup_%U';
}
Starting backup at 25-SEP-18
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=273 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=24 RECID=1 STAMP=987786352
input archived log thread=1 sequence=25 RECID=2 STAMP=987786424
input archived log thread=1 sequence=26 RECID=3 STAMP=987786588
input archived log thread=1 sequence=27 RECID=4 STAMP=987786670
.
.
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/fullbackup_8cte0snd_1_1 tag=DTA_LEVEL0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/fullbackup_8dte0snf_1_1 tag=DTA_LEVEL0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 25-SEP-18
Starting backup at 25-SEP-18
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=38 RECID=15 STAMP=987788017
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/Al_fullbackup_8ete0snh_1_1 tag=DTA_LEVEL0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 25-SEP-18
RMAN> exit
$
위의 명령은 백업 파일을 /u01/backups 파일 시스템에 저장합니다. 백업을 마치면 다음 단계를
진행합니다.
1. controlfile과 spfile의 백업 파일 이름을 기록합니다. 두 파일의 이름은 데이터베이스를
8 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
마이그레이션하는 데 필요합니다. 여기서는 fullbackup_8cte0snd_1_1과
fullbackup_8dte0snf_1_1이 각각 controlfile과 spfile의 이름입니다. controlfile과
spfile은 나머지 백업 파일보다 먼저 복구됩니다.
2. 데이터베이스가 원본에서 암호화되어 있다면 sqlnet.ora 파일과 TDE (Transparent Data
Encryption) wallet 파일을 백업 파일과 함께 복사합니다. 이 두 파일은 RMAN 백업
프로세스에서 복사되지 않기 때문에 따로 복사해야 합니다.
참고: 모범 사례로서, TDE wallet 파일을 데이터베이스 백업 파일과 함께 복사하지
마십시오. 이 파일은 보안을 위해 따로 복사하는 것이 좋습니다.
ENCRYPTION_WALLET_LOCATION은 sqlnet.ora 파일을 참조하십시오.
$ cat $ORACLE_HOME/network/admin/sqlnet.ora
ENCRYPTION_WALLET_LOCATION =
(SOURCE = (METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /etc/oracle/wallets/cdb1/)))
$ ls /etc/oracle/wallets/cdb1/
cwallet.sso cwallet.sso.lck ewallet.p12 ewallet.p12.lck
$
증분 (Level 1) 백업
아래 명령을 실행해 데이터베이스를 증분 백업하여 마지막 전체 백업 이후 변경된 데이터를
수집합니다.
본 예제에서는 RMAN 패스워드 기반 암호화를 사용하며, RMAN 백업은 myPassword라는 암호를
사용하여 암호화됩니다. 하지만 데이터베이스를 백업하면서 SET ENCRYPTION ON IDENTIFIED
BY '<password>' only 명령을 사용해 고유하고 안전한 암호를 선택해 구성하는 것이
좋습니다. 복구 과정에서 백업 파일을 대상 인스턴스에서 복호화할 때도 동일한 암호를
사용합니다.
$ rman taget /
RMAN> SET ENCRYPTION ON IDENTIFIED BY 'myPassword' only;
executing command: SET encryption
RMAN>set compression algorithm 'medium';
executing command: SET compression
RMAN> run
{
backup as compressed backupset
device type disk
tag dta_level1
cumulative incremental level 1
format '/u01/backups/Incremental_%U'
section size 24g
database
include current controlfile spfile
9 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
plus archivelog
format '/u01/backups/Al_Incremental_%U';
}
Starting backup at 25-SEP-18
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=24 RECID=1 STAMP=987786352
input archived log thread=1 sequence=25 RECID=2 STAMP=987786424
input archived log thread=1 sequence=26 RECID=3 STAMP=987786588
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/Incremental_8lte0spt_1_1 tag=DTA_LEVEL1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/Incremental_8mte0spv_1_1 tag=DTA_LEVEL1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 25-SEP-18
Starting backup at 25-SEP-18
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=40 RECID=17 STAMP=987788096
channel ORA_DISK_1: starting piece 1 at 25-SEP-18
channel ORA_DISK_1: finished piece 1 at 25-SEP-18
piece handle=/u01/backups/Al_Incremental_8nte0sq0_1_1 tag=DTA_LEVEL1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 25-SEP-18
RMAN>
백업을 마치면 다음 단계를 진행합니다.
1. controlfile과 spfile의 백업 파일 이름을 기록합니다. 두 파일의 이름은 데이터베이스를
마이그레이션하는 데 필요합니다. 위의 예에서는 Incremental_8lte0spt_1_1과
Incremental_8mte0spv_1_1이 각각 controlfile 이름과 spfile 이름입니다.
2. 원본 데이터베이스에서 다음 쿼리를 실행하여 원본 데이터베이스의 DBID를 기록합니다.
이 정보는 spfile을 복구하는 프로세스에서 필요합니다.
$ sqlplus / as sysdba;
SQL> select dbid from v$database;
SQL*Plus: Release 12.2.0.1.0 Production on Wed Sep 19 20:01:09 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
10 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> select dbid from v$database;
DBID
----------
960474975
SQL>
2단계: Oracle 데이터베이스 백업 파일을 오브젝트
스토리지로 이동
Oracle Cloud Infrastructure는 데이터를 안전하게 마이그레이션할 수 있는 몇 가지 솔루션을
제공합니다. 이용할 서비스의 유형은 데이터 크기, 고객의 네트워크와 Oracle Cloud Infrastructure
사이의 네트워크 연결 방식 등 다양한 요인에 의해 결정됩니다.
다음 표는 데이터 마이그레이션 서비스의 사용 사례별 권장 서비스를 나타낸 것입니다. 공용
인터넷을 통한 데이터 업로드가 1주일 이상 걸린다면 데이터 전송 어플라이언스 또는 데이터
전송 디스크의 사용을 권장합니다. 표 다음에는 각 서비스에 대한 설명이 이어집니다.
버킷 데이터
세트 크기
네트워크
연결
데이터 전송 권장 서비스 대략적인 데이터
업로드/전송 시간
10TB
100Mbps 데이터 전송 어플라이언스
데이터 전송 디스크
1주
1Gbps
명령줄 인터페이스 (CLI)
스토리지 게이트웨이
22시간
10Gbps
명령줄 인터페이스 (CLI)
스토리지 게이트웨이
2시간
100TB 100Mbps
데이터 전송 어플라이언스
데이터 전송 디스크
1주
1Gbps
데이터 전송 어플라이언스
데이터 전송 디스크
1주
10Gbps
명령줄 인터페이스 (CLI)
스토리지 게이트웨이
24시간
11 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
버킷 데이터
세트 크기
네트워크
연결
데이터 전송 권장 서비스 대략적인 데이터
업로드/전송 시간
500TB 100Mbps
데이터 전송 어플라이언스
다수의 전송 어플라이언스가 필요합니다.
어플라이언스 하나로는 최대 150TB 까지만
데이터를 전송할 수 있습니다.
1주
1Gbps
데이터 전송 어플라이언스
다수의 전송 어플라이언스가 필요합니다.
어플라이언스 하나로는 최대 150TB 까지만
데이터를 전송할 수 있습니다.
1주
10Gbps CLI 5일
1TB
모든
대역폭
데이터 전송 어플라이언스
다수의 전송 어플라이언스가 필요합니다.
어플라이언스 하나로는 최대 150TB 까지만
데이터를 전송할 수 있습니다.
2주
데이터 전송 디스크
데이터 전송 디스크는 하드 디스크 드라이브를 사용해 데이터를 오브젝트 스토리지로 안전하게
마이그레이션할 수 있는 오프라인 데이터 마이그레이션 서비스입니다. 고객은 하드 디스크
드라이브를 필요한 만큼 구매하여 데이터를 드라이브로 복사한 후 데이터가 오브젝트 스토리지로
전송되는 Oracle 데이터 전송 현장으로 드라이브를 발송해야 합니다. 데이터 전송 프로세스가
종료되면 가져온 데이터를 오브젝트 스토리지에서 사용할 수 있습니다.
데이터를 작성하여 디스크에 복사하기 위한 사전 작업과 세부 지침은 데이터 전송 디스크
설명서를 참조하십시오. 패키지가 데이터 전송 현장에 도착하면 데이터베이스 백업 파일을 고객
테넌시의 오브젝트 스토리지 버킷에 복사합니다.
데이터 전송 어플라이언스
데이터 전송 어플라이언스는 기능성 스토리지 어플라이언스를 사용해 페타바이트급 데이터
세트를 오브젝트 스토리지로 안전하게 마이그레이션할 수 있는 오프라인 데이터 마이그레이션
서비스입니다. 데이터를 2개 이상의 안전한 대용량 전송 어플라이언스 파일로 저장하여 데이터
전송 현장으로 발송합니다. 데이터 전송 현장의 담당자는 파일을 고객 테넌시에서 원하는
오브젝트 스토리지 버킷에 업로드합니다.
데이터를 작성하여 데이터 전송 어플라이언스에 복사하기 위한 사전 작업과 세부 지침은 데이터
전송 어플라이언스 설명서를 참조하십시오.
12 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
데이터 전송 어플라이언스 사용 시 고려 사항
• 전송 어플라이언스 하나로 최대 150TB까지 데이터를 전송할 수 있습니다. 150TB가 넘는
데이터를 전송해야 할 경우 여러 개의 어플라이언스를 요청하면 됩니다.
• 전송 어플라이언스를 사용하면 네트워크 파일 시스템 (NFS) 마운트 포인트가 노출됩니다.
데이터베이스 백업 파일을 전송 어플라이언스로 복사할 때는 일반적인 파일 시스템
명령을 사용하십시오.
스토리지 게이트웨이
Oracle Cloud Infrastructure 스토리지 게이트웨이는 온프레미스 환경을 오브젝트 스토리지와
연결하는 데 유용합니다. 스토리지 게이트웨이를 사용할 경우, NFS 대상에 데이터를 저장할 수
있는 어플리케이션이라면 어플리케이션을 수정하여 REST API를 구현하지 않고도 데이터를
오브젝트 스토리지로 손쉽게 마이그레이션할 수 있습니다. 또한 NFS 마운트 포인트를 노출시켜
NFS 클라이언트를 지원하는 호스트에 마운팅할 수 있습니다. 그러면 스토리지 게이트웨이가 NFS-
REST API 변환을 실행합니다.
스토리지 게이트웨이의 다운로드, 설치 및 구성에 필요한 사전 작업과 세부 지침은 스토리지
게이트웨이 설명서를 참조하십시오. 스토리지 게이트웨이를 구성하여 파일 시스템이
마운트되었으면 이제 일반적인 파일 시스템 명령을 사용해 데이터를 복사합니다.
CLI
Oracle Cloud Infrastructure CLI는 Oracle Cloud Infrastructure 작업에서 사용되는 기본 명령줄 기반
유틸리티입니다. CLI를 사용하면 다수의 파일을 오브젝트 스토리지로 대량 업로드할 수 있습니다.
CLI를 사용하려면 먼저 설치가 필요합니다. CLI의 설치와 구성에 대한 세부 지침은 CLI 설명서를
참조하십시오.
CLI 유틸리티가 설치되고 나면, 다음 명령을 실행하여 백업 파일을 대량으로 업로드합니다. 여기서
NAMESPACE와 BUCKET을 원하는 값으로 변경하십시오.
$ oci os object bulk-upload -ns NAMESPACE -bn BUCKET --src-dir /u01/backups
Uploaded fullbackup_8ate0smf_1_1 [####################################] 100%
{
"skipped-objects": [],
"upload-failures": {},
"uploaded-objects": {
"Al_Incremental_8fte0spl_1_1": {
"etag": "7759CBAFC7C71DE0E053C224C00A290C",
"last-modified": "Wed, 03 Oct 2018 20:37:35 GMT",
"opc-content-md5": "1vDoDp6cgehgR2ruNpT5cQ=="
},
"Al_Incremental_8nte0sq0_1_1": {
"etag": "7759AB55DDD6FB6FE053C224C00A63A0",
13 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
"last-modified": "Wed, 03 Oct 2018 20:37:19 GMT",
"opc-content-md5": "fUL3C73C99pHYjfUVjxZUg=="
},
"Al_fullbackup_86te0skc_1_1": {
"etag": "7759C2A94ED31619E053C224C00A8275",
"last-modified": "Wed, 03 Oct 2018 20:27:50 GMT",
"opc-content-md5": "J1Ii5ql/h402FaM0j7sZvg=="
},
"Al_fullbackup_8ete0snh_1_1": {
"etag": "77598368C90CD873E053C224C00A4BF8",
"last-modified": "Wed, 03 Oct 2018 20:37:19 GMT",
"opc-content-md5": "x9U46uswut5bRzDBStGhLA=="
},
"Incremental_8gte0spp_1_1": {
"etag": "7759EB66D0C225BBE053C224C00AF220",
"last-modified": "Wed, 03 Oct 2018 20:37:26 GMT",
"opc-content-md5": "pKvXd9Zx2dpyw9SIe/rKBQ=="
},
"Incremental_8lte0spt_1_1": {
"etag": "7759E196205811FDE053C224C00A067E",
"last-modified": "Wed, 03 Oct 2018 20:37:21 GMT",
"opc-content-md5": "wg7VWdNtBUykH4yJfu5ZuA=="
},
"Incremental_8mte0spv_1_1": {
"etag": "7759AFCAFF0F0309E053C224C00AE36F",
"last-modified": "Wed, 03 Oct 2018 20:37:20 GMT",
"opc-content-md5": "cos5pHd7X9gtiTWrNp81zg=="
},
"fullbackup_88te0slg_1_1": {
"etag": "7759B2AC7E6D0806E053C224C00A1917",
"last-modified": "Wed, 03 Oct 2018 20:40:00 GMT",
"opc-multipart-md5": "5YXUspvgRDCj6cWF9MjC2g==-2"
},
"fullbackup_89te0sm0_1_1": {
"etag": "7759E196217411FDE053C224C00A067E",
"last-modified": "Wed, 03 Oct 2018 20:40:00 GMT",
"opc-multipart-md5": "OKbSRaAIsrwiPGuOMfIXtw==-2"
},
"fullbackup_8ate0smf_1_1": {
"etag": "77594C3415F19D55E053C224C00AC1EF",
"last-modified": "Wed, 03 Oct 2018 20:30:30 GMT",
"opc-multipart-md5": "hR0aFDtagw7yq9Sd30GB3g==-2"
},
"fullbackup_8bte0smu_1_1": {
"etag": "77597209CC34B88AE053C224C00A85A0",
"last-modified": "Wed, 03 Oct 2018 20:40:00 GMT",
"opc-multipart-md5": "BxPABMX8Yq2vMylkdlmnvw==-2"
},
"fullbackup_8cte0snd_1_1": {
"etag": "7759E18C068211FAE053C224C00AFEBE",
"last-modified": "Wed, 03 Oct 2018 20:37:21 GMT",
"opc-content-md5": "QMhVC+z2E7+NxVJQGw6h+Q=="
},
"fullbackup_8dte0snf_1_1": {
"etag": "7759B476B5240C55E053C224C00A9519",
"last-modified": "Wed, 03 Oct 2018 20:27:45 GMT",
14 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
"opc-content-md5": "zYZbBl0SnRXGfvojpiC6rA=="
}
}
}
$
3단계: 컴퓨트 인스턴스 생성 및 대상 데이터베이스 시작
Oracle Cloud Infrastructure 컴퓨트 서비스에서는 컴퓨트 인스턴스를 프로비저닝하여 관리할 수
있습니다. 인스턴스는 컴퓨트 및 어플리케이션 요건에 따라 필요한 만큼 생성할 수 있습니다.
인스턴스를 생성한 후에는 고객의 컴퓨터에서 인스턴스에 액세스하여 다시 시작하고, 볼륨을 연결
또는 분리하고, 작업을 마친 후 종료할 수 있습니다. 인스턴스를 종료하면 인스턴스의 로컬
드라이브에 대한 변경 사항이 모두 사라지지만 인스턴스에 연결되어 저장된 볼륨 변경 사항은
그대로 남습니다.
SSH 키 생성
인스턴스를 생성할 때는 SSH 공개 키를 Open SSH 형식으로 입력해야 합니다. 이 키는 SSH
세션을 인증하는 데 사용됩니다. SSH 키 쌍이 없다면 다음 명령을 사용해 새로운 SSH 키 쌍을
생성할 수 있습니다.
$ ssh-keygen -t rsa -N "" -b 2048 -f .ssh/linstance_rsa
Generating public/private rsa key pair.
Your identification has been saved in .ssh/linstance_rsa.
Your public key has been saved in .ssh/linstance_rsa.pub.
The key fingerprint is:
SHA256:4O3i0ZWzkfYEoQDgzyAKU2dXPV88EXukKyrz7N/wtj0
$
참고: 위에서 PATH와 ROOT_NAME을 원하는 값으로 변경하십시오. PATH는 키 쌍이 저장되는
위치입니다. ROOT_NAME은 파일의 루트 이름입니다.
컴퓨트 인스턴스 생성
Oracle Cloud Infrastructure 콘솔에 로그인하여 Create Instance를 클릭하고 새로운 인스턴스를
생성합니다. 그러면 인스턴스 생성에 필요한 정보를 입력하라는 시스템 메시지가 표시됩니다.
이때, 앞에서 생성한 SSH 키 쌍의 공개 키를 선택해야 합니다.
자세한 내용은 컴퓨트 설명서를 참조하십시오.
15 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
컴퓨트 인스턴스 연결
컴퓨트 인스턴스가 생성되면 다음 명령을 사용하여 권한을 설정하고 인스턴스에 연결합니다.
$ chmod 400 linstance_rsa
$ ssh -i linstance_rsa opc@PUBLIC_IP_ADDRESS
Last failed login: Fri Sep 28 02:03:25 GMT 2018 from 209.141.40.49 on ssh:notty
There were 1 failed login attempts since the last successful login.
Last login: Wed Sep 26 22:57:07 2018 from 160.34.93.141
$
참고: PUBLIC_IP_ADDRESS를 원하는 값으로 변경하십시오.
Oracle 데이터베이스 설치
참고: 이 단원에서는 Oracle 데이터베이스를 손쉽게 설치할 수 있는 방법을 설명합니다. 대규모의
프로덕션 인스턴스를 설정할 때는 Oracle 설치 모범 사례를 참조하는 것이 좋습니다.
Oracle 데이터베이스를 컴퓨트 인스턴스에 설치하려면 먼저 OTN (Oracle Technology
Network)에서 설치 파일을 다운로드한 후, 설치할 Oracle 데이터베이스 버전의 설치 지침을
따라야 합니다(원본 데이터베이스 인스턴스의 버전과 동일해야 합니다).
1. 루트 사용자로 Oracle 데이터베이스를 설치하려면 다음 명령을 실행합니다.
# yum install wget zip unzip -y
# mkdir -p /u01/software
# cd /u01/software
#
2. 다음 명령을 실행하여 사전에 필요한 요소를 자동으로 설치합니다. 사전 설치는 설치할
Oracle 데이터베이스의 버전에 따라 달라집니다. 여기서는 Oracle 12c Release 2 사전
설치를 진행해보겠습니다.
# yum install oracle-database-server-12cR2-preinstall -y
# yum update -y
#
Oracle 사전 설치에서는 Oracle 데이터베이스 설치에 필요한 모든 요소들을 설치합니다.
이 과정에서 Oracle 사용자가 생성됩니다.
3. 다음 명령을 실행하여 Oracle 사용자의 암호를 재설정합니다.
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
#
16 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
4. 다음 명령을 실행하여 Oracle 데이터베이스 설치에 필요한 환경 변수를 설정합니다.
# mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
# mkdir /home/oracle/scripts
# cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=ol7-122.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=cdb1
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
# echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
#
5. Oracle 데이터베이스 설치 소프트웨어 (여기서는 Oracle 12c Release 2)를 /u01/software
디렉토리에 복사한 후 다음 명령을 실행해 설치 프로세스를 시작합니다.
# unzip linuxx64_12201_database.zip
# cd database
# chown -R oracle.oinstall /u01
# su - oracle
$ cd /u01/software/database
$
Silent 방식 설치는 대부분의 클라우드 기반 설치에서 이용할 수 있는 가장 간단한 방식입니다.
다음 명령은 이름이 db_install.rsp인 응답 파일을 사용하는 소프트웨어 전용 silent 방식
설치를 나타낸 것입니다. Silent 방식 설치를 위해 응답 파일을 작성하는 방법은 이 백서에서
다루지 않습니다. 자세한 내용은 OUI (Oracle Universal Installer) 자동 설치 설명서를 참조하십시오.
$ ./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress –
silent -responseFile /u01/software/database/response/db_install.rsp
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 26602 MB Passed
Checking swap space: must be greater than 150 MB. Actual 8191 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-09-21_12-22-
16AM. Please wait ...You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2018-09-21_12-22-16AM.log
Prepare in progress.
.................................................. 8% Done.
Prepare successful. Copy files in progress.
.................................................. 17% Done.
.................................................. 22% Done.
.................................................. 27% Done.
17 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
..................................................
.................................................. 75% Done.
.................................................. 80% Done.
....................
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
..............................
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
Finish Setup successful.
The installation of Oracle Database 12c was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2018-09-21_12-22-
16AM.log' for more details.
Setup Oracle Base in progress.
Setup Oracle Base successful.
.................................................. 95% Done.
As a root user, execute the
following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh
.................................................. 100% Done.
Successfully Setup Software.
$
Oracle 데이터베이스가 설치되면 Oracle Universal Installer 화면에 다음 스크립트를 실행하라는
메시지가 표시됩니다.
• /u01/app/oraInventory/orainstRoot.sh
• /u01/app/oracle/product/12.2.0.1/db_1/root.sh
# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read, write permissions for group.
Removing read, write,execute permissions for world
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of script is complete.
# $ORACLE_HOME/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1
18 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ....
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now? yes|[no] : yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /u01/app/oracle/product/12.2.0/dbhome_1/install/root_instance-20180911-
1539_2018-09-11_23-22-25-911263805.log
Finished installing Oracle Trace File Analyzer (TFA)
#
4단계: Database Cloud Backup Module 구성
Oracle Database Cloud Backup Module에서는 클라우드 백업 및 복구가 가능합니다. 이 모듈은
RMAN과 통합되는 시스템 테이프 백업 (SBT) 인터페이스로서, 여기에서 RMAN 명령을 사용하여
백업, 복구, 복원 및 유지 관리 작업을 할 수 있습니다.
Auth 토큰 생성
Oracle Database Cloud Backup Module은 Swift 프로토콜을 사용해 오브젝트 스토리지와
상호작용합니다. 오브젝트 스토리지에 대한 액세스는 Auth 토큰을 통해 인증됩니다. Auth 토큰을
생성하려면 Oracle Cloud Infrastructure 콘솔에 로그인한 후 다음 단계를 따르십시오.
1. 메뉴를 열고 Identity와 Users로 차례대로 이동합니다.
2. 사용자 ID와 Auth Tokens를 차례대로 선택합니다.
3. Generate Token을 클릭하여 인증 토큰을 생성합니다.
19 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
Auth 토큰 생성에 대한 자세한 내용은 설명서를 참조하십시오.
Database Cloud Backup Module 다운로드
Database Cloud Backup Module을 OTN (Oracle Technology Network)에서 다운로드한 후 대상
인스턴스의 /tmp 디렉토리에 업로드합니다. 그런 다음 opc_installer.zip 파일의 압축을
풉니다.
Database Cloud Backup Module 설치
다음 명령을 실행하여 Database Cloud Backup Module를 설치합니다. 여기에서 USER_ID,
BUCKET_NAME, AUTH_TOKEN, REGION 및 TENANCY를 원하는 값으로 변경합니다.
# mkdir -p /home/oracle/cbm/cbm_lib
# export vcbm_lib=/home/oracle/cbm/cbm_lib
# export vcbm_config=/home/oracle/cbm/cbm_config
# export vcbm_wallet=/home/oracle/cbm/cbm_wallet
# su - oracle
$ cd /tmp/opc_installer
$ $ORACLE_HOME/jdk/bin/java -jar opc_install.jar -opcId USER_ID -
opcPass 'AUTH_TOKEN' -container BUCKET_NAME -walletDir $vcbm_wallet -libDir $vcbm_lib
-configfile $vcbm_config -host
https://swiftobjectstorage.REGION.oraclecloud.com/v1/TENANCY
Oracle Database Cloud Backup Module Install Tool, build 12.2.0.1.0DBBKPCSBP_2018-06-
12
Oracle Database Cloud Backup Module credentials are valid.
Backups would be sent to container <bucket_name>
Oracle Database Cloud Backup Module wallet created in directory
/home/oracle/cbm/cbm_wallet.
Oracle Database Cloud Backup Module initialization file /home/oracle/cbm/cbm_config
created.
Downloading Oracle Database Cloud Backup Module Software Library from
file opc_linux64.zip.
Download Completed.
$
5단계: 오브젝트 스토리지에서 백업 파일 복구
마이그레이션할 데이터베이스가 원본에서 암호화되어 있다면 백업 프로세스 시 복사된
sqlnet.ora 파일과 TDE wallet 파일을 wallet 위치에 다운로드합니다. 데이터베이스 복구
프로세스를 시작하기 전에 먼저 자동 로그인 wallet을 생성합니다. sqlnet.ora 파일에서
ENCRYPTION_WALLET_LOCATION이 정확한지 확인합니다.
$ cat $ORACLE_HOME/network/admin/sqlnet.ora
ENCRYPTION_WALLET_LOCATION
=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/etc/oracle/wallets/cdb1/)
$ cd /etc/oracle/wallets/cdb1
$ ls
cwallet.sso cwallet.sso.lck ewallet.p12 ewallet.p12.lck
$
20 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
SBT 메타데이터 파일 생성
본 예제에서는 원본에서 Database Cloud Backup Module을 사용하지 않고 RMAN에서 직접 백업
파일을 생성했습니다. Database Cloud Backup Module 없이 백업 파일을 생성한 경우 Database
Cloud Backup Module을 사용해 백업 파일을 오브젝트 스토리지에서 복구하려면 SBT 메타데이터
파일을 생성해야 합니다.
다음 명령을 실행하여 오브젝트 스토리지에 저장된 백업 파일에 사용할 SBT 메타데이터를
생성합니다.
$ rman target /
RMAN> startup nomount force;
RMAN> set decryption identified by 'myPassword';
RMAN> run {
allocate channel t1 device type sbt
parms='SBT_LIBRARY=/home/oracle/cbm/cbm_lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/ora
cle/cbm/cbm_config)';
send channel t1 '
export backuppiece fullbackup_8ate0smf_1_1;
export backuppiece fullbackup_8bte0smu_1_1;
export backuppiece fullbackup_8cte0snd_1_1;
export backuppiece fullbackup_8dte0snf_1_1;
export backuppiece fullbackup_87te0skd_1_1;
export backuppiece fullbackup_88te0slg_1_1;
export backuppiece fullbackup_89te0sm0_1_1;
export backuppiece Incremental_8gte0spp_1_1;
export backuppiece Incremental_8lte0spt_1_1;
export backuppiece Incremental_8mte0spv_1_1;
export backuppiece Al_fullbackup_8ete0snh_1_1;
export backuppiece Al_fullbackup_86te0skc_1_1;
export backuppiece Al_Incremental_8fte0spl_1_1;
export backuppiece Al_Incremental_8nte0sq0_1_1; ';
}
allocated channel: t1
channel t1: SID=120 device type=SBT_TAPE
channel t1: Oracle Database Backup Service Library VER=12.2.0.2
sent command to channel: t1
released channel: t1
RMAN>
위의 명령을 실행하면 다음 메타데이터 파일이 오브젝트 스토리지 버킷에 생성됩니다.
• sbt_catalog/fullbackup_8ate0smf_1_1/metadata.xml
• sbt_catalog/fullbackup_8bte0smu_1_1/metadata.xml
• sbt_catalog/fullbackup_8cte0snd_1_1/metadata.xml
• sbt_catalog/fullbackup_8dte0snf_1_1/metadata.xml
• sbt_catalog/fullbackup_87te0skd_1_1/metadata.xml
• sbt_catalog/fullbackup_88te0slg_1_1/metadata.xml
• sbt_catalog/fullbackup_89te0sm0_1_1/metadata.xml
21 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
• sbt_catalog/Incremental_8gte0spp_1_1/metadata.xml
• sbt_catalog/Incremental_8lte0spt_1_1/metadata.xml
• sbt_catalog/Incremental_8mte0spv_1_1/metadata.xml
• sbt_catalog/Al_fullbackup_8ete0snh_1_1/metadata.xml
• sbt_catalog/Al_fullbackup_86te0skc_1_1/metadata.xml
• sbt_catalog/Al_Incremental_8fte0spl_1_1/metadata.xml
• sbt_catalog/Al_Incremental_8nte0sq0_1_1/metadata.xml
매개변수 파일 복구
spfile을 복구하려면 먼저, 오브젝트 스토리지를 가리키도록 구성된 테이프 장치에서 spfile을
복구하는 데 필요한 RMAN 매개변수를 구성합니다. 이때 원본 데이터베이스에서 기록한 DBID를
사용하고, 원본 인스턴스에서 백업 파일을 암호화하는 데 사용한 것과 동일한 암호 (set
decryption에서)를 사용합니다.
다음 명령을 실행하여 spfile을 복구합니다.
$ rman target /
RMAN> set dbid 960474975;
RMAN> startup force nomount;
RMAN> set decryption identified by 'myPassword';
RMAN> run
{
allocate channel t1 device type sbt
parms='SBT_LIBRARY=/home/oracle/cbm/cbm_lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/ora
cle/cbm/cbm_config)';
restore spfile from 'fullbackup_8dte0snf_1_1';
}
released channel: ORA_DISK_1
allocated channel: t1
channel t1: SID=120 device type=SBT_TAPE
channel t1: Oracle Database Backup Service Library VER=12.2.0.2
Starting restore at 25-SEP-18
channel t1: restoring spfile from AUTOBACKUP fullbackup_8dte0snf_1_1
channel t1: SPFILE restore from AUTOBACKUP complete
Finished restore at 25-SEP-18
released channel: t1
RMAN>
제어 파일 위치 생성
다음 명령을 실행하여 controlfile 위치를 생성합니다.
$ sqlplus / as sysdba;
SQL> create pfile='/tmp/pfile.ora' from spfile;
File created.
SQL>exit
Disconnected
22 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
# mkdir /u01/app/oracle/admin/cdb1/adump
# mkdir /u01/app/oracle/oradata/cdb1/
# chown -R oracle.oinstall /u01/app/oracle/oradata/cdb1/
# chown -R oracle.oinstall /u01/app/oracle/admin/cdb1/
#
제어 파일 복구
다음 명령을 실행하여 증분 제어 파일 백업에서 데이터베이스 controlfile을 복구합니다. 원본
인스턴스에서 백업 파일을 암호화할 때 사용한 것과 동일한 암호 (set decryption)를 사용합니다.
$ rman target /
RMAN> set decryption identified by 'myPassword';
RMAN >run {
allocate channel c1 device type sbt
PARMS 'SBT_LIBRARY=/home/oracle/cbm/cbm_lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/or
acle/cbm/cbm_config)';
restore controlfile from 'Incremental_8lte0spt_1_1';
}
allocated channel: t1
channel t1: SID=237 device type=SBT_TAPE
channel t1: Oracle Database Backup Service Library VER=12.2.0.2
Starting restore at 25-SEP-18
channel t1: restoring control file
channel t1: restore complete, elapsed time: 00:00:03
output file name=/u01/app/oracle/oradata/cdb1/control01.ctl
output file name=/u01/app/oracle/oradata/cdb1/control02.ctl
Finished restore at 25-SEP-18
released channel: t1
RMAN> alter database mount;
Statement processed
RMAN>
데이터베이스 복구 및 복원
다음 명령을 실행하여 데이터베이스를 복구 및 복원합니다.
$ rman target /
RMAN> configure channel device
type 'sbt_tape' PARMS 'SBT_LIBRARY=/home/oracle/cbm/cbm_lib/libopc.so, SBT_PARMS=(OP
C_PFILE=/home/oracle/cbm/cbm_config)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE
TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/home/oracle/cbm/cbm_lib/libopc.so, SBT_PARMS=(OP
C_PFILE=/home/oracle/cbm/cbm_config)';
new RMAN configuration parameters are successfully stored
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
new RMAN configuration parameters:
23 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored
RMAN> crosscheck backup device type sbt;
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=258 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=12.2.0.2
RMAN> delete noprompt expired backup;
using channel ORA_DISK_1
specification does not match any backup in the repository
RMAN> catalog device type sbt
backuppiece 'fullbackup_8ate0smf_1_1', 'fullbackup_8bte0smu_1_1', 'fullbackup_8cte0sn
d_1_1','fullbackup_8dte0snf_1_1', 'fullbackup_87te0skd_1_1', 'fullbackup_88te0slg_1_
1',
'fullbackup_89te0sm0_1_1','Incremental_8gte0spp_1_1','Incremental_8lte0spt_1_1', 'Inc
remental_8mte0spv_1_1','Al_fullbackup_8ete0snh_1_1'
'Al_fullbackup_86te0skc_1_1','Al_Incremental_8fte0spl_1_1','Al_Incremental_8nte0sq0_1
_1';
released channel: ORA_SBT_TAPE_1
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=258 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=12.2.0.2
cataloged backup piece
backup piece handle=fullbackup_8ate0smf_1_1 RECID=160 STAMP=987804189
cataloged backup piece
backup piece handle=fullbackup_8bte0smu_1_1 RECID=161 STAMP=987804189
cataloged backup piece
backup piece handle=fullbackup_8cte0snd_1_1 RECID=162 STAMP=987804189
cataloged backup piece
backup piece handle=fullbackup_8dte0snf_1_1 RECID=163 STAMP=987804302
cataloged backup piece
backup piece handle=fullbackup_87te0skd_1_1 RECID=164 STAMP=987804302
cataloged backup piece
backup piece handle=fullbackup_88te0slg_1_1 RECID=165 STAMP=987804303
.
.
.
cataloged backup piece
backup piece handle=Al_Incremental_8nte0sq0_1_1 RECID=173 STAMP=987804463
RMAN>restore device type sbt database;
Starting restore at 25-SEP-18
released channel: ORA_SBT_TAPE_1
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=258 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=12.2.0.2
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00001 to
/u01/app/oracle/oradata/cdb1/system01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00003 to
/u01/app/oracle/oradata/cdb1/sysaux01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00004 to
/u01/app/oracle/oradata/cdb1/undotbs01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00007 to
/u01/app/oracle/oradata/cdb1/users01.dbf
24 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
channel ORA_SBT_TAPE_1: reading from backup piece fullbackup_87te0skd_1_1
channel ORA_SBT_TAPE_1: piece handle=fullbackup_87te0skd_1_1 tag=DTA_LEVEL0
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:45
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00009 to
/u01/app/oracle/oradata/cdb1/pdb1/system01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00010 to
/u01/app/oracle/oradata/cdb1/pdb1/sysaux01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00011 to
/u01/app/oracle/oradata/cdb1/pdb1/undotbs01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00012 to
/u01/app/oracle/oradata/cdb1/pdb1/users01.dbf
channel ORA_SBT_TAPE_1: reading from backup piece fullbackup_88te0slg_1_1
channel ORA_SBT_TAPE_1: piece handle=fullbackup_88te0slg_1_1 tag=DTA_LEVEL0
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00005 to
/u01/app/oracle/oradata/cdb1/pdbseed/system01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00006 to
/u01/app/oracle/oradata/cdb1/pdbseed/sysaux01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00008 to
/u01/app/oracle/oradata/cdb1/pdbseed/undotbs01.dbf
channel ORA_SBT_TAPE_1: reading from backup piece fullbackup_89te0sm0_1_1
channel ORA_SBT_TAPE_1: piece handle=fullbackup_89te0sm0_1_1 tag=DTA_LEVEL0
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00016 to
/u01/app/oracle/oradata/CDB1/760AE48A954574F3E0530F00000A94CB/datafile/o1_mf_system_f
sydl0sk_.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00017 to
/u01/app/oracle/oradata/CDB1/760AE48A954574F3E0530F00000A94CB/datafile/o1_mf_sysaux_f
sydl0ss_.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00018 to
/u01/app/oracle/oradata/CDB1/760AE48A954574F3E0530F00000A94CB/datafile/o1_mf_undotbs1
_fsydl0st_.dbf
channel ORA_SBT_TAPE_1: reading from backup piece fullbackup_8ate0smf_1_1
channel ORA_SBT_TAPE_1: piece handle=fullbackup_8ate0smf_1_1 tag=DTA_LEVEL0
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00019 to
/u01/app/oracle/oradata/CDB1/760AE48A954674F3E0530F00000A94CB/datafile/o1_mf_system_f
sydmotq_.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00020 to
/u01/app/oracle/oradata/CDB1/760AE48A954674F3E0530F00000A94CB/datafile/o1_mf_sysaux_f
sydmotq_.dbf
25 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
channel ORA_SBT_TAPE_1: restoring datafile 00021 to
/u01/app/oracle/oradata/CDB1/760AE48A954674F3E0530F00000A94CB/datafile/o1_mf_undotbs1
_fsydmotr_.dbf
channel ORA_SBT_TAPE_1: reading from backup piece fullbackup_8bte0smu_1_1
channel ORA_SBT_TAPE_1: piece handle=fullbackup_8bte0smu_1_1 tag=DTA_LEVEL0
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:25
Finished restore at 25-SEP-18
RMAN>recover database ;
Starting recover at 25-SEP-18
using channel ORA_SBT_TAPE_1
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
.
.
channel ORA_SBT_TAPE_1: starting archived log restore to default destination
channel ORA_SBT_TAPE_1: restoring archived log
archived log thread=1 sequence=40
channel ORA_SBT_TAPE_1: reading from backup piece Al_Incremental_8nte0sq0_1_1
channel ORA_SBT_TAPE_1: piece handle=Al_Incremental_8nte0sq0_1_1 tag=DTA_LEVEL1
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:01
RMAN>alter database open resetlogs;
Statement processed
RMAN>
결론
Oracle 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션하면 엔터프라이즈급 클라우드
플랫폼에서 세계 최고의 데이터베이스를 실행하는 이점을 기대할 수 있습니다. 이번 백서에서는
Oracle 데이터베이스를 온프레미스 환경에서 Oracle Cloud Infrastructure로 마이그레이션 및
배포하는 방법에 대해 자세히 살펴봤습니다. 사용할 데이터 마이그레이션 서비스의 유형은
데이터베이스의 규모, 그리고 원본 인스턴스와 오브젝트 스토리지 사이의 네트워크 연결 방식에
따라 결정합니다. 빠르고 안전한 데이터베이스 마이그레이션을 원한다면 데이터 마이그레이션
서비스를 올바르게 선택해야 합니다. 이번 백서에서 간략히 소개한 단계를 따른다면 중소 규모의
데이터베이스의 경우 운영 중단 시간을 최소화하여 Oracle 데이터베이스를 Oracle Cloud
Infrastructure로 안전하게 마이그레이션할 수 있습니다. 하지만 대규모 데이터베이스라면 이번
백서에서 설명한 단계에 따라 예비 인스턴스를 설정하거나, 혹은 Oracle GoldenGate와 같은
도구를 사용해 원본 데이터베이스와 대상 데이터베이스를 동기화하여 마이그레이션을 준비할 수
있습니다.
26 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
부록: 데이터베이스 마이그레이션 보안
Oracle Cloud Infrastructure는 마이그레이션할 Oracle 데이터베이스를 위해 여러 가지 보안 기능을
제공하고 있습니다.
암호화
• 오브젝트 스토리지: 데이터베이스 백업 파일이 오브젝트 스토리지에 저장될 때는 AES-
256을 사용해 암호화됩니다. 암호화는 기본적으로 활성화되며, 비활성화할 수 없습니다.
각 객체는 암호화 키를 사용해 암호화되고, 객체 암호화 키는 다시 마스터 암호화 키를
사용해 암호화됩니다. 그 밖에도 고객은 오브젝트 스토리지 버킷에 저장하기 전에 RMAN
백업 암호화를 사용해 RMAN 백업 파일을 암호화할 수 있습니다.
• 데이터 전송 어플라이언스: 데이터 전송 어플라이언스는 AES-256을 사용해 전송되는
데이터를 모두 암호화합니다. 데이터 전송 유틸리티와 Oracle Cloud Infrastructure 사이의
네트워크 통신은 전송 시 TLS (Transport Layer Security)를 사용해 암호화됩니다.
• 전송 데이터: 고객 클라이언트 (예: CLI)와 오브젝트 스토리지 공용 엔드포인트 사이에
전송되는 백업 파일은 기본적으로 TLS 1.2를 사용해 암호화됩니다. 여기에 더해
FastConnect 공용 피어링을 사용하면 오브젝트 스토리지에 대한 온프레미스 액세스가
공용 인터넷이 아닌 전용 경로를 통해 이동할 수 있습니다.
• 스토리지 게이트웨이: 스토리지 게이트웨이는 백업 파일을 Oracle Cloud Infrastructure로
전송할 때 HTTPS를 사용하기 때문에 스토리지 게이트웨이와 클라우드 사이에 전송되는
데이터 패킷을 암호화합니다.
액세스 제어 세분화
• 데이터 전송 어플라이언스와 데이터 전송 디스크: 데이터 전송 어플라이언스와 데이터
전송 디스크에서는 데이터 전송 관리자와 데이터 전송 업로드 사용자를 위해 IAM (ID 및
액세스 관리) 그룹을 생성해야 합니다. 이후부터는 이 그룹에 속한 사용자만 백업 파일을
전송하여 데이터 전송 어플라이언스 및 디스크에 업로드할 수 있는 액세스 권한을
갖습니다. 또한 데이터 전송 어플라이언스는 백업 파일을 고객이 지정하는 테넌시
버킷에만 업로드합니다. 이 버킷은 데이터 전송 프로세스에서 사용자가 구성합니다.
• 스토리지 게이트웨이: 스토리지 게이트웨이를 사용할 때는 IAM을 통해 스토리지
게이트웨이 관리자를 생성하고 암호를 확실하고 안전하게 설정해야 합니다. 스토리지
게이트웨이 관리자는 파일 시스템을 생성, 수정 및 삭제할 수 있습니다.
• 오브젝트 스토리지: IAM 정책을 설정하는 사용자는 버킷의 객체에 액세스할 수 있는
사용자로 제한하는 것이 좋습니다. 버킷 객체를 읽거나 수정할 권한이 있는 사용자는
버킷의 모든 객체를 읽거나 수정할 수 있기 때문입니다.
27 | 오브젝트 스토리지를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
인증 및 권한 부여
• 컴퓨트 인스턴스: 컴퓨트 인스턴스는 기본적으로 키 기반 SSH를 사용합니다. 고객은
Oracle Cloud Infrastructure에게 SSH 공개 키를 제공하고, 인스턴스에 액세스할 때는
안전하게 SSH 개인 키를 사용합니다. Oracle은 키 기반 SSH를 사용해 컴퓨트 인스턴스에
액세스하도록 권장합니다. 암호 기반 SSH는 무차별 대입 공격 (Brute-forcing attacks)에
취약할 수 있습니다.
• 스토리지 게이트웨이와 데이터 전송 어플라이언스: 고객이 스토리지 게이트웨이와 데이터
전송 어플라이언스에 사용할 파일 시스템을 정의할 경우 Oracle은 신뢰할 수 있는 NFS
클라이언트만 파일 시스템 데이터와 메타데이터에 액세스할 수 있도록 제한적 내보내기
옵션을 권장할 뿐만 아니라 이를 위한 옵션도 제공합니다. 파일 시스템에 대한 액세스를
제한하려면 NFS Allowed Hosts and NFS Export 옵션에서 고급 파일 시스템 설정을
수정하십시오.
오라클 본사
500 Oracle Parkway
Redwood Shores, CA 94065, USA
문의처
전화: +1.650.506.7000
팩스: +1.650.506.7200
소셜 계정
blogs.oracle.com/oracle
facebook.com/oracle
twitter.com/oracle
oracle.com
통합 클라우드 어플리케이션 및 플랫폼 서비스
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 본 문서는 정보의 목적으로만 제공되며 일체의 내용은 고지 없이
변경될 수 있습니다. 본 문서는 오류에 대해 책임지지 않으며 특정 목적에 대한 적격성 및 적합성과 관련된 묵시적 보증 및 계약
조건을 포함해서 명시적, 묵시적 기타 모든 보증 또는 계약 조건에 의해 구속 받지 않습니다. 오라클은 본 문서와 관련해 어떠한
법적 책임도 지지 않으며, 본 문서로 인해 직간접적인 어떠한 계약 구속력도 발생하지 않습니다. 본 문서는 오라클의 사전 서면 승인
없이는 어떠한 형식이나 수단 (전자적 또는 기계적) 또는 목적으로도 복제하거나 배포할 수 없습니다.
오라클 (Oracle) 및 자바 (Java)는 오라클 및 그 계열사의 등록 상표입니다. 기타 명칭은 해당 소유업체의 상표입니다.
Intel 및 Intel Xeon은 Intel Corporation의 등록 상표 또는 상표입니다. 모든 SPARC 상표는 사용 허가를 받아 사용해야 하며 SPARC
International, Inc.의 등록 상표 또는 상표입니다. AMD, Opteron, AMD 로고 및 AMD Opteron 로고는 Advanced Micro Devices의 등록
상표 또는 상표입니다. UNIX는 The Open Group의 등록 상표입니다. 1118
Object Storage를 사용해 데이터베이스를 Oracle Cloud Infrastructure로 마이그레이션
2018년 11월
작성자: Vijaya Gowri C D