Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

AWS에서 Oracle Secure Backup 활용하기: S3 기반 데이터베이스 백업 완벽 가이드

Amazon Web Services(AWS) 환경에서는 Oracle Database 9i Release 2 이상 버전부터 Oracle® 데이터베이스 백업이 가능합니다. 백업 작업에는 Oracle Secure Backup(OSB) 클라우드 모듈을 사용하며, 단 OSB는 운영체제 파일의 백업은 지원하지 않는다는 점에 유의해야 합니다.

개요

Oracle Database 9i Release 2부터 Recovery Manager(RMAN)를 사용해 Amazon S3에 OSB 기반 백업을 수행할 수 있습니다. 다만, 이 모듈로는 운영체제(OS) 파일의 백업은 불가능합니다.

Amazon S3는 디스크 기반 스토리지로서 테이프 미디어보다 본질적으로 더 높은 신뢰성을 제공합니다. 인터넷 스토리지 서비스 업체는 가용성과 확장성을 위해 여러 개의 중복 복사본을 보관하므로, 조직은 더욱 안정적인 데이터 관리의 혜택을 누릴 수 있습니다.

사전 요구 사항

이 가이드를 따라 하기 전에 아래 요구 사항을 확인하세요.

S3 접속용 액세스 키, 시크릿 액세스 키 또는 IAM 역할

AWS 계정과 AWS S3에 대한 전체 액세스 권한을 가진 IAM(Identity and Access Management) 사용자가 필요합니다. 설정 과정에서는 IAM 역할 또는 IAM 사용자의 액세스 키와 시크릿 액세스 키를 사용합니다.

AWS용 OSB 모듈

AWS용 OSB 모듈은 Oracle 공식 다운로드 페이지에서 내려받을 수 있습니다.

Oracle Technology Network(OTN) 계정

설치 과정에서 OTN 계정의 사용자 이름과 비밀번호를 입력해야 합니다.

Java 1.7 이상

진행하기 전에 서버에 Java® 1.7 이상 버전이 설치되어 있어야 합니다. 다음 명령어로 Java 버전을 확인할 수 있습니다:

$java -version

지원 플랫폼

  • Linux® x86-64
  • Microsoft® Windows® (64비트)
  • SPARC 기반 Oracle Solaris (64비트)
  • Oracle Solaris X64
  • ZLinux-64
  • AIX (PPC64)
  • HP-UX® IA64

참고: HP-UX PA-RISC 64비트는 지원되지 않습니다.

Oracle 12cR2 설치

다음 절차에 따라 Oracle 12cR2를 설치합니다:

  1. wallet 디렉터리를 생성하여 AWS 액세스 키, 시크릿 액세스 키 또는 IAM 역할 정보를 저장합니다.
  2. 요구 사항 섹션의 링크에서 내려받은 osbws_installer.zip 파일의 압축을 해제합니다.
  3. 아래 명령어를 실행하여 Amazon S3용 OSB 클라우드 모듈을 ORACLE_HOME 디렉터리에 설치합니다. 각 항목은 자신의 환경에 맞게 수정하세요.

Microsoft Windows의 경우:

 set ORACLE_HOME=C:\oracle\product\12.2.0\Oracle12cR2
 set ORACLE_SID=TEST

Linux의 경우:

export ORACLE_HOME=C:\oracle\product\12.2.0\Oracle12cR2
export ORACLE_SID=TEST

$ java -jar osbws_install.jar -AWSID XxXxX -AWSKey XxXxX -walletDir $ORACLE_HOME/osbws_wallet -libDir $ORACLE_HOME/lib -location eu-west-2 -awsEndPoint s3-eu-west-2.amazonaws.com -otnUser mmahajan@test.com -otnPass xxxxx

또는 IAM 역할을 사용하는 방식입니다:

$ java -jar osbws_install.jar -IAMRole xxxxx -walletDir "$ORACLE_HOME\osbws_wallet" -libDir "$ORACLE_HOME\lib" -otnUser mmahajan@test.com -otnPass xxxx

RMAN을 통한 OSB 설치 및 백업 수행

설치 과정에서 $ORACLE_HOME/dbs 경로에 채널 할당 명령에 사용될 파일(일반적으로 osb<SID>.ora)이 생성됩니다. 이 파일을 참조할 때는 반드시 전체 경로를 사용해야 합니다.

다음은 샘플 SID를 사용한 예시입니다. OSBTEST.ora 파일의 파라미터 예시는 다음과 같습니다:

++++++++++++++++++++++++++++++++++++++++++++++
OSB_WS_HOST=https://s3.amazonaws.com
OSB_WS_IAM_ROLE=iops-test-dev-ec2-role-policy
OSB_WS_BUCKET=test-ec2-backups
OSB_WS_WALLET='location=file:E:\oracle\product\12.2.0\Oracle12cR2\osbws_wallet CREDENTIAL_ALIAS=aws-itco_aws'
+++++++++++++++++++++++++++++++++++++++++++++++

또는 리전별 엔드포인트를 지정하는 방식입니다:

++++++++++++++++++++++++++++++++++++++++++++++
OSB_WS_HOST=https://s3-eu-west-1.amazonaws.com
OSB_WS_LOCATION=eu-west-1
OSB_WS_BUCKET=test-ec2-backups
OSB_WS_WALLET='location=file:E:\oracle\product\12.2.0\Oracle12cR2\osbws_wallet CREDENTIAL_ALIAS=aws-itco_aws'
+++++++++++++++++++++++++++++++++++++++++++++++

다음 예시는 SBT_TAPE 유형의 채널을 할당한 후 컨트롤 파일(controlfile)데이터파일 1(datafile 1)을 백업하는 과정입니다:

D:\OSB>rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Dec 17 13:38:07 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST (DBID=2717091126)

RMAN> run
2> {
3> allocate channel c1 device type sbt parms='SBT_LIBRARY=E:\oracle\product\12.2.0\Oracle12cR2\lib\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=E:\oracle\product\12.2.0\Oracle12cR2\database\osbwsSDMS.ora)';
4> backup current controlfile;
5> }

allocated channel: c1
channel c1: SID=50 device type=SBT_TAPE
channel c1: Oracle Secure Backup Web Services Library VER=3.17.4.21

Starting backup at 17-DEC-19
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 17-DEC-19
channel c1: finished piece 1 at 17-DEC-19
piece handle=3iujli8o_1_1 tag=TAG20191217T144544 comment=API Version 2.0,MMS Version 3.17.4.21
channel c1: backup set complete, elapsed time: 00:00:07
Finished backup at 17-DEC-19

Starting Control File and SPFILE Autobackup on 17-DEC-19
piece handle=c-2467059049-20191217-00 comment=API Version 2.0,MMS Version 3.17.4.21
Finished Control File and SPFILE Autobackup on 17-DEC-19
released channel: c1

RMAN> run
2> {
3> allocate channel c1 device type sbt parms='SBT_LIBRARY=E:\oracle\product\12.2.0\Oracle12cR2\lib\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=E:\oracle\product\12.2.0\Oracle12cR2\database\osbwsSDMS.ora)';
4> backup datafile 1;
5> }

allocated channel: c1
channel c1: SID=50 device type=SBT_TAPE
channel c1: Oracle Secure Backup Web Services Library VER=3.17.4.21

Starting backup on 17-DEC-19
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001         name=F:\ORADATA\SDMS\SYSTEM01.DBF
channel c1: starting piece 1 on 17-DEC-19
channel c1: finished piece 1 at 17-DEC-19
piece handle=3kujlia1_1_1 tag=TAG20191217T144625 comment=API Version 2.0,MMS Version 3.17.4.21
channel c1: backup set complete, elapsed time: 00:03:15
Finished backup on 17-DEC-19

Starting Control File and SPFILE Autobackup on 17-DEC-19
piece handle=c-2467059049-20191217-01 comment=API Version 2.0,MMS Version 3.17.4.21
Finished Control File and SPFILE Autobackup on 17-DEC-19
released channel: c1

백업 세트 목록 조회

다음 명령어를 실행하면 컨트롤 파일데이터파일 1의 백업 세트 목록을 확인할 수 있습니다:

RMAN> list backup of controlfile;

BS Key Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
113    Full   18.75M    SBT_TAPE   00:00:01    17-DEC-19
   BP Key: 113  Status: AVAILABLE Compressed: NO Tag:     TAG20191217T144940
   Handle: c-2467059049-20191217-01  Media:    s3.amazonaws.com/sdms-ec2-backups
 Control File Included: Ckp SCN: 64476065    Ckp time: 17-DEC-19

RMAN> list backup of datafile 1;

BS Key Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
112    Full   733.25M   SBT_TAPE   00:02:46    17-DEC-19
   BP Key: 112  Status: AVAILABLE Compressed: NO Tag:    TAG20191217T144625
   Handle: 3kujlia1_1_1  Media: s3.amazonaws.com/sdms-ec2-backups

백업 세트 112에 포함된 데이터파일 목록은 다음과 같습니다:

 File LV Type Ckp SCN   Ckp Time Abs Fuz SCN Sparse Name
 ---- -- ---- ---------- --------- ----------- ------ ----
 1      Full 64474680  17-DEC-19             NO       F:\ORADATA\SDMS\SYSTEM01.DBF

설치 시 발생 가능한 오류

백업 진행 중 ORA-03113 오류가 발생할 수 있으며, 이 경우 Metalink 노트 2396267.1을 참조하여 문제를 해결할 수 있습니다:

PSDRPC returns significant error 3113.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on c1 channel at 12/16/2019 15:49:58
ORA-03113: end-of-file on communication channel

다음과 같은 오류가 얼럿 로그(alert log)에 기록될 수 있습니다:

ORA-07445: exception encountered: core dump [PC:0x7FEDDB54FBC] [ACCESS_VIOLATION] [ADDR:0x0] [PC:0x7FEDDB54FBC] [UNABLE_TO_READ] []
Incident details in: <path>\incident\incdir_249332\<oracle_sid>_ora_30776_i249332.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Fri Apr 13 10:01:59 2018
Dumping diagnostic data in directory=[cdmp_20180413100159], requested by (instance=1, osid=30776), summary=[incident=249332].

오류 원인

이 설치 오류는 실행 중인 데이터베이스 서비스가 SBT(Serial Backup Tape) 라이브러리를 잠그고(lock) 있기 때문에 발생합니다.

해결 방법은 다음과 같습니다:

  1. 데이터베이스를 종료(shutdown)합니다.
  2. 앞서 설명한 절차에 따라 Oracle Cloud Backup 모듈을 재설치합니다.

결론

이 글에서는 Amazon S3에 RMAN 데이터베이스 백업을 수행하는 절차를 살펴보았습니다. OSB 클라우드 모듈을 통해 Amazon S3 스토리지에 저장된 백업은 언제든지 접근 가능합니다. 클라우드 스토리지 서비스의 가용성과 접근 모델은 조직의 복구 작업을 크게 간소화해 줍니다. 예를 들어, 복원 작업을 수행하기 전에 테이프를 배송하거나 로딩할 필요가 없습니다.

궁금한 점이나 의견이 있다면 피드백 탭을 이용해 남겨주세요. 지금 바로 채팅으로 대화를 시작할 수도 있습니다.