이 글에서는 Amazon Simple Storage Service(S3)를 Oracle® Database 백업 저장소로 활용하는 방법을 소개합니다. Amazon Web Services(AWS)는 클라우드 기반 데이터베이스 백업을 위해 Oracle과 파트너십을 체결한 최초의 클라우드 공급업체이며, S3는 AWS가 제공하는 핵심 스토리지 서비스입니다.
소개
S3는 간단한 웹 서비스 인터페이스를 제공하여 애플리케이션이 인터넷에 연결된 어디서든 원하는 만큼의 데이터를 자유롭게 저장하고 조회할 수 있게 해줍니다. S3는 확장성과 안정성이 뛰어나고 빠르며 비용 효율적인 데이터 스토리지 인프라로, 수많은 기업이 저비용 콜드 스토리지부터 전 세계 사용자에게 실시간으로 리치 미디어를 제공하는 서비스까지 다양한 운영 스토리지 요구 사항에 활용하고 있습니다.
다음 이미지는 S3의 개념을 보여줍니다:
Oracle Secure Backup 클라우드 모듈
Oracle Secure Backup(OSB) 클라우드 모듈을 사용하면 Oracle Database의 백업 데이터를 Amazon S3로 직접 전송할 수 있습니다. 이 모듈은 Oracle Database 9i Release 2 이상 버전과 호환되며, 인터넷 연결과 AWS 결제 수단이 필요합니다. 또한 Amazon Elastic Compute Cloud(EC2) 내에서 실행 중인 데이터베이스에도 OSB 클라우드 모듈을 사용할 수 있는데, 이 경우 S3와 주고받는 데이터 전송 비용 없이 더 높은 내부 네트워크 대역폭의 이점을 누릴 수 있습니다.
OSB 클라우드 모듈은 Oracle Recovery Manager(RMAN)의 직렬 백업 테이프(SBT) 인터페이스를 기반으로 구현됩니다. SBT 인터페이스는 외부 백업 라이브러리를 RMAN에 매끄럽게 통합할 수 있게 해주므로, 데이터베이스 관리자는 Enterprise Manager, RMAN, 기존에 사용하던 스크립트 등 익숙한 백업 도구를 그대로 활용해 클라우드 백업을 수행할 수 있습니다.
OSB 클라우드 모듈은 Linux® 64비트 및 SPARC® 64비트 환경에서 사용할 수 있으며, Microsoft® Windows 32비트 및 Linux 32비트 버전은 더 이상 지원되지 않습니다.
이제 OSB 클라우드 모듈 설치 방법과 샘플 클라우드 백업 구성 과정을 단계별로 살펴보겠습니다.
1. Amazon S3 가입
OSB 클라우드 모듈을 사용하기 위한 첫 번째 단계는 Amazon S3에 가입하는 것입니다. Amazon S3 웹사이트를 방문해 가입을 진행하면 됩니다(아래 이미지 참조).
가입을 완료하면 아래 이미지와 같이 Access Key ID(액세스 키 ID)와 Secret Access Key(시크릿 액세스 키) 한 쌍의 접근 식별자가 발급됩니다.
액세스 키 ID와 시크릿 액세스 키를 확인하는 방법은 다음과 같습니다:
- AWS Management Console에 로그인합니다.
- 페이지 오른쪽 상단의 사용자 이름을 클릭합니다.
- 드롭다운 메뉴에서 Security Credentials(보안 자격 증명)를 선택합니다.
- Access keys(액세스 키) 섹션에서 키 목록을 확인합니다.
- 키가 없다면 Create access key(액세스 키 생성)를 클릭해 새로 생성합니다.
2. Oracle 계정 등록
OSB 클라우드 모듈을 설치하려면 Oracle.com 또는 Oracle Technology Network(OTN) 계정이 필요합니다. 계정이 없다면 OTN 웹사이트를 방문해 새 계정을 생성할 수 있습니다.
3. OSB 클라우드 모듈 설치
OTN 웹사이트에서 OSB 클라우드 모듈 설치 도구를 다운로드한 후, 다음 명령을 실행하여 모듈을 설치합니다.
[root@ip-10-0-1-135 Downloads]# unzip osbws_installer.zip
Archive: osbws_installer.zip
inflating: osbws_install.jar
inflating: osbws_readme.txt
[root@ip-10-0-1-135 Downloads]#
[oracle@ip-10-0-1-135 dbs]$ /home/oracle/jdk1.8.0_144/bin/java -jar osbws_install.jar \
> -AWSID ******************** \
> -AWSKey ******************************** \
> -otnUser vverma@tricoresolutions.com \
> -walletDir $ORACLE_HOME/dbs/osbws_wallet \
> -libDir $ORACLE_HOME/lib
Oracle Secure Backup Web Service Install Tool, build 2017-06-01
AWS credentials are valid.
Oracle Secure Backup Web Service wallet created in directory /u01/app/PROD/db/tech_st/11.1.0/dbs/osbws_wallet.
Oracle Secure Backup Web Service initialization file /u01/app/PROD/db/tech_st/11.1.0/dbs/osbwsPROD.ora created.
Downloading Oracle Secure Backup Web Service Software Library from file osbws_linux64.zip.
Download complete.
4. 설치 파일 확인
다음 명령을 실행하여 라이브러리 파일 libosbws.so가 정상적으로 설치되었는지 확인합니다:
[oracle@ip-10-0-1-135 osbws_wallet]$ cd $ORACLE_HOME
[oracle@ip-10-0-1-135 11.1.0]$ cd lib
[oracle@ip-10-0-1-135 lib]$ ls -ltr libosbws.so
-rw-r--r--. 1 oracle dba 93601830 Aug 5 07:00 libosbws.so
이어서 OSB 파라미터 파일과 월렛(wallet) 파일도 확인합니다:
[oracle@ip-10-0-1-135 lib]$ cd $ORACLE_HOME/dbs
[oracle@ip-10-0-1-135 dbs]$ ls -ltr osbwsPROD.ora
-rw-r--r--. 1 oracle dba 145 Aug 5 07:00 osbwsPROD.ora
[oracle@ip-10-0-1-135 dbs]$ cat osbwsPROD.ora
OSB_WS_HOST=https://s3.amazonaws.com
OSB_WS_WALLET='location=file:/u01/app/PROD/db/tech_st/11.1.0/dbs/osbws_wallet CREDENTIAL_ALIAS=vickey07_aws'
[oracle@ip-10-0-1-135 dbs]$ ls -ltr osbws_wallet
total 4
-rw-------. 1 oracle dba 0 Aug 5 07:00 cwallet.sso.lck
-rw-------. 1 oracle dba 1613 Aug 5 07:00 cwallet.sso
5. USERS 테이블스페이스 백업
다음 RMAN 명령을 실행하여 USERS 테이블스페이스를 S3로 백업합니다:
RMAN> run {
allocate channel s3_bucket device type sbt
parms 'SBT_LIBRARY=/u01/app/PROD/db/tech_st/11.1.0/lib/libosbws.so ENV=(OSB_WS_PFILE=/u01/app/PROD/db/tech_st/11.1.0/dbs/osbwsPROD.ora)';
backup tablespace users;
}
2> 3> 4> 5>
allocated channel: s3_bucket
channel s3_bucket: SID=400 device type=SBT_TAPE
channel s3_bucket: Oracle Secure Backup Web Services Library VER=3.17.7.27
Starting backup at 05-AUG-17
channel s3_bucket: starting full datafile backup set
channel s3_bucket: specifying datafile(s) in backup set
input datafile file number=00019 name=/u01/app/PROD/db/apps_st/data/user01.dbf
channel s3_bucket: starting piece 1 at 05-AUG-17
channel s3_bucket: finished piece 1 at 05-AUG-17
piece handle=03sb4ecv_1_1 tag=TAG20170805T072414 comment=API Version 2.0,MMS Version 3.17.7.27
channel s3_bucket: backup set complete, elapsed time: 00:00:01
Finished backup at 05-AUG-17
released channel: s3_bucket
RMAN>
6. RMAN 백업 검증
다음 명령을 실행하여 USERS 테이블스페이스의 S3 백업 결과를 확인합니다:
RMAN> list backup of tablespace users;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1 Full 1.03M DISK 00:00:00 05-AUG-17
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20170805T071737
Piece Name: /u01/app/PROD/db/tech_st/11.1.0/dbs/02sb4e0i_1_1
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
19 Full 5965126970157 05-AUG-17 /u01/app/PROD/db/apps_st/data/user01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2 Full 1.25M SBT_TAPE 00:00:00 05-AUG-17
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20170805T072414
Handle: 03sb4ecv_1_1 Media: s3.amazonaws.com/oracle-data-vickey07-1
List of Datafiles in backup set 2
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
19 Full 5965126970339 05-AUG-17 /u01/app/PROD/db/apps_st/data/user01.dbf
RMAN>
위 출력 결과에서 첫 번째 백업 세트는 이전에 수행한 로컬 백업으로, 로컬 백업 피스(파일)가 표시됩니다. 두 번째 백업 세트를 보면 미디어가 s3.amazonaws.com으로 표시된 것을 확인할 수 있습니다. 여기서 oracle-data-vickey07-1은 Amazon S3 내에 자동으로 생성된 버킷, 즉 논리적 컨테이너입니다.
아래 이미지와 같이 AWS 콘솔에서도 백업 결과를 확인할 수 있습니다:
결론
Oracle OSB 클라우드 모듈을 활용하면 Amazon S3를 오프사이트(원격지) 백업 저장소로 손쉽게 사용할 수 있습니다. 기존의 테이프 기반 오프사이트 보관 방식과 비교했을 때, 클라우드 백업은 접근성이 뛰어나고 대부분의 경우 복원 속도가 빠르며 신뢰성도 높습니다. 또한 오프사이트 백업 운영에 따른 관리 부담을 덜어주고, 컴퓨팅 클라우드에서 실행되는 데이터베이스에 최적의 보호 환경을 제공합니다.
이 글에 대한 의견이나 궁금한 점이 있다면 피드백 탭을 통해 남겨주세요.