AWS 기술 블로그
Amazon RDS Custom for Oracle에서 데이터베이스 재생성 하기
업데이트 : 2022년 12월부터 서울리전에서도 RDS Custom for Oracle을 사용할 수 있게 되었습니다.
Amazon RDS Custom for Oracle는 데이터베이스 관리자가 데이터베이스 서버와 운영 체제에 직접 접근하여 특정 데이터베이스 패치를 적용하거나 데이터베이스 서버의 환경 설정을 변경할 수 있습니다. 또한 Amazon RDS의 자동화된 백업 및 복구를 통해 데이터베이스 관리 작업을 단순화합니다.
이 블로그를 포스팅하는 시점까지 RDS Custom for Oracle DB 인스턴스를 생성할 때, 파라미터 그룹, 옵션 그룹, 그리고 Character Set을 사용자가 지정할 수 없습니다. 그러나, 경우에 따라서는 특정 Character Set이 요구되기도 합니다. 예를 들면, Oracle XTTS(Cross Platform Transportable Tablespace)를 이용한 마이그레이션을 할 때는 타겟 데이터베이스의 Character Set은 소스 데이터베이스의 Character Set과 동일해야 하는 제약조건이 있습니다. 이 경우, 우리는 RDS Custom에서 생성되는 기본 데이터베이스를 삭제한 후, 오라클 데이터베이스를 재생성 해야 할 필요가 있습니다.
이 블로그 포스트에서는 기본 RDS Custom for Oracle DB를 생성한 이후, RDS Custom의 지원경계(Support Perimeter) 내에서Oracle Database를 재생성하는 방법을 소개합니다. 그리고, 다음 블로그에서는 Oracle XTTS를 이용하여 RDS Custom for Oracle DB로 마이그레이션하는 방법을 다룰 예정입니다.
솔루션 개요
이 블로그 포스트에서는 RDS Custom for Oracle에서 기본적으로 생성되는 데이터베이스를 삭제하고, 여러분이 원하는 Character Set을 지정하여 새로운 데이터베이스를 생성하는 방법을 살펴보겠습니다. RDS Custom for Oracle DB의 기본 Character Set은 US7ASCII입니다.
사전 준비사항
이 블로그 포스트에서는 사전에 아래와 같은 사항이 준비되어야 합니다.
- AWS Account
- Oracle Database as Source
- Oracle Database 19c Enterprise Edition Media file and Patch files
- Amazon S3 Bucket
- CEV(Custom Engine Version)
- AWS IAM and Amazon VPC
- AWS KMS
Amazon RDS Custom for Oracle DB 인스턴스 생성
이 단계는 Amazon RDS Custom for Oracle DB 인스턴스를 생성하는 단계입니다. RDS Custom을 생성하기 위해서는 먼저 Custom Engine Version(CEV)을 등록해야 합니다.
Amazon RDS Custom for Oracle 인스턴스를 생성하는 방법은 여기를 참조하세요.
Amazon RDS Custom for Oracle DB 재생성하기
이 블로그 포스트는 Oracle XTTS를 이용한 데이터베이스 마이그레이션 사전 설정 단계로 가정하고 기술합니다.
Oracle XTTS 마이그레이션 방법은 소스 데이터베이스와 타겟 데이터베이스 간에 동일한 Timezone Patch와 동일한 Character Set(National Character Set 포함)을 요구합니다. 따라서, 마이그레이션을 진행하기 전에, 타겟 데이터베이스는 소스 데이터베이스와 동일한 Character Set과 Timezone Patch를 가지도록 재생성 해야 합니다.
RDS Custom for Oracle에 SSH로 접속하여 Character Set과 Timezone Patch를 확인합니다.
RDS Custom DB 인스턴스에 SSH로 접속하는 방법은 여기를 참조합니다.
1. RDS Custom automation mode를 “Paused(중지)”로 변경합니다.
RDS Custom DB 인스턴스를 변경하기 전에 반드시, RDS Custom Automation Mode를 Paused로 변경해야 합니다. 그렇지 않은 경우, RDS Custom의 상태가 Unsupported configuration 상태로 변경될 수 있습니다.
Automation을 중지할 수 있는 시간은 최대 24시간입니다. 만약, 더 오랜 데이터베이스 유지보수 시간이 필요한 경우, Automation 중지 기간을 계속 연장해야 합니다.
2. 기존 데이터베이스의 초기화 파라미터 파일을 복사합니다.
RDS Custom DB 인스턴스 생성시 만들어진 데이터베이스의 초기화 파라미터를 백업합니다.
3. 기존 데이터베이스 인스턴스를 삭제합니다.
기존 데이터베이스를 삭제하면, RDS Custom이 일시적으로 “Unsupported Configuration“상태로 변경될 수 있지만, RDSADMIN과 Master User가 재생성 된 후에는 정상적인 상태로 돌아옵니다.
4. RDS Custom for Oracle DB인스턴스를 재생성하는 스크립트를 저장합니다.
DB생성 스크립트(crdb.sql)를 여기에서 다운로드한 후, CHARACTER SET, NATIONAL CHARACTER SET의 값을 변경하고, ORCL은 RDS Custom for Oracle을 생성했을 때 지정했던 SID와 동일한 값으로 변경합니다.
수정된 crdb.sql 파일을RDS Custom for Oracle 인스턴스에 복사합니다.
5. RDS Custom for Oracle에 필요한 디렉토리를 생성합니다.
<SID>는 RDS Custom for Oracle을 생성했을 때 지정했던 SID와 동일한 값으로 변경합니다.
6. 환경변수 ORA_TZFILE 을 설정합니다.(선택사항)
만약 마이그레이션을 위한 타겟 데이터베이스로서 RDS Custom을 구성하는 중이라면, 소스 데이터베이스와 동일한 Timezone version으로 타겟 데이터베이스를 만들기 위해 DB 재생성 전에 ORA_TZFILE 환경변수를 설정합니다.
7. RDS Custom for Oracle DB 인스턴스를 재생성합니다.
8. Default Profile을 변경합니다.
9. RDSADMIN과 Master User를 생성하고, 권한을 부여합니다.
RDSADMIN User의 패스워드는 Secrets Manager Console에서 Secret name, do-not-delete-rds-custom-db-*에서 확인할 수 있습니다.
Master User의 패스워드는 RDS Custom 인스턴스를 생성할 때 사용했던 것과 동일한 것이어야 합니다.
10. Data Dictionary와 System Package를 생성합니다.
11. datapatch를 실행합니다.
12. RDS Custom for Oracle DB에서 Character Set과 Timezone file을 확인합니다.
만약 마이그레이션을 위한 타겟 데이터베이스로서 RDS Custom을 구성하는 중이라면, 소스 데이터베이스와 동일한 Character Set과 Timezone version으로 설정되었는지 확인합니다.
13. DB Registry를 확인합니다.
RDS Custom Automation 모드로 변경하기
모든 변경 작업이 완료된 이후에는 RDS Custom Automation 모드를 Full Automation으로 변경합니다.
리소스 정리하기
이 블로그 포스트에서 사용했던 아래 리소스는 향후 불필요한 과금을 방지하기 위해 삭제해야 합니다.
- RDS Custom Instance
- Amazon S3 Bucket
- AWS IAM and Amazon VPC
- AWS KMS
- AWS Secrets Manager
결론
이 블로그 포스트에서는 RDS Custom for Oracle DB의 기본 Character Set과 Timezone을 변경하고자 할 때, 기존 RDS Custom for Oracle DB를 삭제한 후, 재생성하는 방법에 대해 살펴 보았습니다. 이 방법은 Oracle XTTS를 이용한 오라클 데이터베이스 마이그레이션시에 사전 셋업 단계로도 활용될 수 있습니다.
다음 블로그에서는 “Oracle XTTS를 사용하여 최소 다운타임으로 RDS Custom for Oracle로 마이그레이션 하기” 를 다룰 예정입니다.