

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 Oracle Database에서 Amazon RDS for Oracle로 마이그레이션 AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Oracle 스키마와 코드를 Amazon RDS for Oracle로 마이그레이션할 경우 몇 가지 사항을 고려해야 합니다.
+ AWS SCT 는 객체 트리에 디렉터리 객체를 추가할 수 있습니다. 디렉터리 객체는 서버 파일 시스템의 물리적 디렉터리를 나타내는 논리적 구조입니다.** DBMS\_LOB, UTL\_FILE, DBMS\_FILE\_TRANSFER, DATAPUMP 유틸리티 등과 같은 패키지를 통해 디렉터리 객체를 사용할 수 있습니다.
+ AWS SCT 는 Oracle 테이블스페이스를 Amazon RDS for Oracle DB 인스턴스로 변환할 수 있도록 지원합니다. Oracle은 데이터를 테이블스페이스에 논리적으로 저장하고, 해당 테이블스페이스와 연결된 데이터 파일에 물리적으로 저장합니다. Oracle에서는 데이터 파일 이름을 사용하여 테이블스페이스를 만들 수 있습니다. Amazon RDS는 데이터 파일, 로그 파일 및 제어 파일에 대해서만 Oracle Managed Files(OMF)를 지원합니다.는 변환 중에 필요한 데이터 파일을 AWS SCT 생성합니다.
+ AWS SCT 는 서버 수준 역할 및 권한을 변환할 수 있습니다. Oracle 데이터베이스 엔진에는 역할 기반 보안이 사용됩니다. 역할이란 사용자에 대해 부여하거나 취소할 수 있는 권한 모음입니다. Amazon RDS의 사전 정의된 역할인 DBA는 일반적으로 Oracle 데이터베이스 엔진에 대한 모든 관리 권한을 허용합니다. 아래의 권한들은 Oracle 엔진을 사용하는 Amazon RDS DB 인스턴스의 DBA 역할에는 사용할 수 없습니다.
  + 데이터베이스 변경
  + 시스템 변경
  + 디렉터리 생성
  + 권한 부여
  + 역할 부여
  + 외부 작업 생성

  Amazon RDS for Oracle 사용자 역할에 고급 필터링 및 열 권한을 포함하여 다른 모든 권한을 부여할 수 있습니다.
+ AWS SCT 는 Oracle 작업을 Amazon RDS for Oracle에서 실행할 수 있는 작업으로 변환할 수 있도록 지원합니다. 이 변환에는 다음과 같은 몇 가지 제한 사항이 있습니다.
  + 실행 작업은 지원되지 않습니다.
  + ANYDATA 데이터 유형을 인수로 사용하는 일정 작업은 지원되지 않습니다.
+ Oracle 실제 애플리케이션 클러스터(RAC) 단일 노드는 Oracle Database 11g Release 2와 함께 제공된 Oracle Database Enterprise Edition에 속한 옵션입니다. Amazon RDS for Oracle은 RAC 기능을 지원하지 않습니다. 고가용성을 위해서는 Amazon RDS 다중 AZ를 사용하십시오.

  다중 AZ 배포에서 Amazon RDS는 자동으로 서로 다른 가용 영역에 동기식 예비 복제본을 프로비저닝하고 유지합니다. 기본 DB 인스턴스는 가용 영역 전체에서 대기 복제본으로 동기식으로 복제됩니다. 이 기능은 데이터 중복을 제공하고, I/O 중지를 없애고, 시스템 백업 중에 지연 시간 스파이크를 최소화합니다.
+ Oracle Spatial에는 Oracle 데이터베이스에서 공간 데이터의 저장, 검색, 업데이트 및 쿼리를 신속하게 실행할 수 있는 SQL 스키마 및 기능이 있습니다. Oracle Locator에는 인터넷 및 무선 서비스 기반 애플리케이션과 파트너 기반 GIS 솔루션을 지원할 때 필요한 기능이 있습니다. Oracle Locator는 Oracle Spatial의 제한된 서브셋입니다.

  Oracle Spatial 및 Oracle Locator 기능을 사용하려면 SPATIAL 옵션 또는 LOCATOR 옵션(함께 사용할 수 없음)을 DB 인스턴스의 옵션 그룹에 추가합니다.

  Amazon RDS for Oracle DB 인스턴스에서 Oracle Spatial 및 Oracle Locator를 사용하기 위해서는 몇 가지 전제 조건이 있습니다.
  + 인스턴스가 Oracle Enterprise Edition 버전 12.1.0.2.v6 이상 또는 11.2.0.4.v10 이상을 사용해야 합니다.
  + 인스턴스가 VPC(Virtual Private Cloud) 내에 있어야 합니다.
  + 인스턴스가 Oracle 기능을 지원할 수 있는 DB 인스턴스 클래스를 사용해야 합니다. 예를 들어 db.m1.small, db.t1.micro, db.t2.micro 또는 db.t2.small DB 인스턴스 클래스에는 Oracle Spatial이 지원되지 않습니다. 자세한 내용은 [Oracle을 위한 DB 인스턴스 클래스 지원](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses)을 참조하세요.
  + 인스턴스에 대해 자동 마이너 버전 업그레이드를 활성화해야 합니다. CVSS 점수가 9 이상인 보안 취약성 또는 발표된 기타 보안 취약성이 있을 경우 Amazon RDS는 DB 인스턴스를 최신 Oracle PSU로 업데이트합니다. 자세한 내용은 다음 섹션을 참조하세요.

    [Oracle DB 인스턴스 설정](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings)
  + DB 인스턴스가 버전 11.2.0.4.v10 이상인 경우 XMLDB 옵션을 설치해야 합니다. 자세한 내용은 다음 섹션을 참조하세요.

    [Oracle XML DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html)
  + Oracle의 Oracle Spatial 라이선스가 있어야 합니다. 자세한 내용은 Oracle 설명서의 [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph)를 참조하십시오.
+ Data Guard는 Oracle Database Enterprise Edition에 포함되어 있습니다. 고가용성을 위해서는 Amazon RDS 다중 AZ 기능을 사용하십시오.

  다중 AZ 배포에서 Amazon RDS는 자동으로 서로 다른 가용 영역에 동기식 예비 복제본을 프로비저닝하고 유지합니다. 기본 DB 인스턴스는 가용 영역 전체에서 대기 복제본으로 동기식으로 복제됩니다. 이 기능은 데이터 중복을 제공하고, I/O 중지를 없애고, 시스템 백업 중에 지연 시간 스파이크를 최소화합니다.
+ AWS SCT 는 Amazon RDS for Oracle로 마이그레이션할 때 Oracle DBMS\_SCHEDULER 객체 변환을 지원합니다. AWS SCT 평가 보고서는 일정 객체를 변환할 수 있는지 여부를 나타냅니다. Amazon RDS에서 일정 객체를 사용하는 방법에 대한 자세한 내용은 [Amazon RDS 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler) 를 참조하십시오.
+ Oracle에서 Oracle용 Amazon RDS로 변환하는 경우 DB Links를 지원합니다. 데이터베이스 링크는 특정 데이터베이스 내 스키마 객체로서, 사용자는 이 객체를 통해 다른 데이터베이스에 있는 객체에 액세스할 수 있습니다. 다른 데이터베이스가 Oracle 데이터베이스이어야 할 필요는 없습니다. 하지만 Oracle 데이터베이스가 아닌 데이터베이스에 액세스하려면 Oracle Heterogeneous Services를 사용해야 합니다.

  데이터베이스 링크를 생성하면 이 링크를 SQL 문에서 사용하여 다른 데이터베이스에 있는 테이블, 보기 및 PL/SQL 객체를 참조할 수 있습니다. 데이터베이스 링크를 사용하려면 테이블, 보기 또는 PL/SQL 객체 이름에 `@dblink`를 붙입니다. SELECT 문을 사용해 다른 데이터베이스에 있는 테이블 또는 보기를 쿼리할 수 있습니다. Oracle 데이터베이스 링크를 사용하는 방법에 대한 자세한 정보는 [ Oracle 설명서](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083)를 참조하십시오.

  Amazon RDS에서 데이터베이스 링크를 사용하는 방법에 대한 자세한 정보는 [ Amazon RDS 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks)를 참조하십시오.
+  AWS SCT 평가 보고서는 변환을 위한 서버 지표를 제공합니다. Oracle 인스턴스에 대한 이러한 측정치에는 다음이 포함됩니다.
  + 대상 DB 인스턴스의 컴퓨팅 및 메모리 용량
  + 지원되지 않는 Oracle 기능(예: Amazon RDS가 지원하지 않는 Real Application Clusters 등)
  + 디스크 읽기/쓰기 로드
  + 평균 총 디스크 처리량
  + 서버 정보(서버 이름, OS, 호스트 이름, 문자 집합 등)

## RDS for Oracle을 대상으로 사용하기 위한 권한
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Amazon RDS for Oracle로 마이그레이션하려면 권한이 있는 데이터베이스 사용자를 생성합니다. 다음과 같은 코드 예제를 사용할 수 있습니다.

```
CREATE USER {{user_name}} IDENTIFIED BY {{your_password}};

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE TO {{user_name}};
GRANT CREATE ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY ASSEMBLY TO {{user_name}};
GRANT ALTER ANY RULE TO {{user_name}};
GRANT SELECT ANY DICTIONARY TO {{user_name}};
GRANT ALTER ANY DIMENSION TO {{user_name}};
GRANT CREATE ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY TYPE TO {{user_name}};
GRANT DROP ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY VIEW TO {{user_name}};
GRANT ALTER ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT CREATE ANY CREDENTIAL TO {{user_name}};
GRANT DROP ANY CUBE DIMENSION TO {{user_name}};
GRANT DROP ANY ASSEMBLY TO {{user_name}};
GRANT DROP ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT DROP ANY MEASURE FOLDER TO {{user_name}};
GRANT CREATE ANY MEASURE FOLDER TO {{user_name}};
GRANT DROP ANY CUBE TO {{user_name}};
GRANT DROP ANY MINING MODEL TO {{user_name}};
GRANT CREATE ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY EDITION TO {{user_name}};
GRANT CREATE ANY EVALUATION CONTEXT TO {{user_name}};
GRANT DROP ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY INDEXTYPE TO {{user_name}};
GRANT DROP ANY TYPE TO {{user_name}};
GRANT CREATE ANY PROCEDURE TO {{user_name}};
GRANT CREATE ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT CREATE ANY CUBE TO {{user_name}};
GRANT COMMENT ANY MINING MODEL TO {{user_name}};
GRANT ALTER ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY SQL PROFILE TO {{user_name}};
GRANT CREATE ANY JOB TO {{user_name}};
GRANT DROP ANY EVALUATION CONTEXT TO {{user_name}};
GRANT ALTER ANY EVALUATION CONTEXT TO {{user_name}};
GRANT CREATE ANY INDEXTYPE TO {{user_name}};
GRANT CREATE ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY TRIGGER TO {{user_name}};
GRANT DROP ANY ROLE TO {{user_name}};
GRANT DROP ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY CLUSTER TO {{user_name}};
GRANT DROP ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT ALTER ANY ASSEMBLY TO {{user_name}};
GRANT CREATE ANY RULE SET TO {{user_name}};
GRANT ALTER ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TYPE TO {{user_name}};
GRANT CREATE ANY TYPE TO {{user_name}};
GRANT DROP ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY ROLE TO {{user_name}};
GRANT DROP ANY VIEW TO {{user_name}};
GRANT ALTER ANY INDEX TO {{user_name}};
GRANT COMMENT ANY TABLE TO {{user_name}};
GRANT CREATE ANY TABLE TO {{user_name}};
GRANT CREATE USER TO {{user_name}};
GRANT DROP ANY RULE SET TO {{user_name}};
GRANT CREATE ANY CONTEXT TO {{user_name}};
GRANT DROP ANY INDEXTYPE TO {{user_name}};
GRANT ALTER ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY SYNONYM TO {{user_name}};
GRANT CREATE ANY SYNONYM TO {{user_name}};
GRANT DROP USER TO {{user_name}};
GRANT ALTER ANY MEASURE FOLDER TO {{user_name}};
GRANT ALTER ANY EDITION TO {{user_name}};
GRANT DROP ANY RULE TO {{user_name}};
GRANT CREATE ANY RULE TO {{user_name}};
GRANT ALTER ANY RULE SET TO {{user_name}};
GRANT CREATE ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TABLE TO {{user_name}};
GRANT UNDER ANY VIEW TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
GRANT ALTER ANY CLUSTER TO {{user_name}};
GRANT CREATE ANY CLUSTER TO {{user_name}};
GRANT ALTER ANY TABLE TO {{user_name}};
GRANT CREATE ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY EDITION TO {{user_name}};
GRANT CREATE ANY SQL PROFILE TO {{user_name}};
GRANT ALTER ANY SQL PROFILE TO {{user_name}};
GRANT DROP ANY OUTLINE TO {{user_name}};
GRANT DROP ANY CONTEXT TO {{user_name}};
GRANT DROP ANY OPERATOR TO {{user_name}};
GRANT DROP ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY LIBRARY TO {{user_name}};
GRANT CREATE ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY INDEX TO {{user_name}};
GRANT CREATE ANY INDEX TO {{user_name}};
GRANT DROP ANY TABLE TO {{user_name}};
GRANT SELECT_CATALOG_ROLE TO {{user_name}};
GRANT SELECT ANY SEQUENCE TO {{user_name}};

-- Database Links
GRANT CREATE DATABASE LINK TO {{user_name}};
GRANT CREATE PUBLIC DATABASE LINK TO {{user_name}};
GRANT DROP PUBLIC DATABASE LINK TO {{user_name}};


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO {{user_name}};

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO {{user_name}};
GRANT DROP TABLESPACE TO {{user_name}};

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to {{user_name}};
grant aq_administrator_role to {{user_name}};

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO {{user_name}};

-- Roles
GRANT RESOURCE TO {{user_name}};
GRANT CONNECT TO {{user_name}};
```

이전 예제에서 {{user\_name}}을 사용자 이름으로 바꿉니다. 그런 다음 {{your\_password}}를 안전한 암호로 바꿉니다.

## Oracle에서 Amazon RDS for Oracle로 변환할 때 제한 사항
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Oracle 스키마와 코드를 Amazon RDS for Oracle로 마이그레이션할 경우 몇 가지 제한 사항을 고려해야 합니다.
+  Amazon RDS의 사전 정의된 역할인 DBA는 일반적으로 Oracle 데이터베이스 엔진에 대한 모든 관리 권한을 허용합니다. 아래의 권한들은 Oracle 엔진을 사용하는 Amazon RDS DB 인스턴스의 DBA 역할에는 사용할 수 없습니다.
  + 데이터베이스 변경
  + 시스템 변경
  + 디렉터리 생성
  + 권한 부여
  + 역할 부여
  + 외부 작업 생성

  다른 모든 권한을 Oracle RDS 사용자 역할에 부여할 수 있습니다.
+ Amazon RDS for Oracle은 기존 방식의 감사, DBMS\_FGA 패키지를 사용한 세분화된 감사 및 Oracle Unified Auditing을 지원합니다.
+ Amazon RDS for Oracle은 CDC(변경 데이터 캡처)를 지원하지 않습니다. 데이터 마이그레이션 도중이나 그 이후에 CDC를 수행하려면 AWS Database Migration Service를 사용합니다.