

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

# Oracle Data Pump를 사용하여 온프레미스 Oracle 데이터베이스를 Amazon EC2 로 마이그레이션
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Navakanth Talluri, Amazon Web Services*

## 요약
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

데이터베이스를 마이그레이션할 때는 소스 및 대상 데이터베이스 엔진과 버전, 마이그레이션 도구 및 서비스, 허용 가능한 가동 중지 기간 등의 요소를 고려해야 합니다. 온프레미스 Oracle 데이터베이스를 Amazon Elastic Compute Cloud(Amazon EC2)로 마이그레이션하는 경우 Oracle Data Pump 및 Oracle Recovery Manager(RMAN)와 같은 Oracle 도구를 사용할 수 있습니다. 자세한 내용은 백서 [Oracle 데이터베이스를AWS 클라우드로 마이그레이션하기](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)를 참조하십시오.

Oracle Data Pump는 데이터베이스의 논리적이고 일관된 백업을 추출하여 대상 EC2 인스턴스로 복원하는 데 도움이 됩니다. 이 패턴은 Oracle Data Pump와 `NETWORK_LINK` 파라미터를 사용하여 가동 중지 시간을 최소화하면서 온프레미스 Oracle 데이터베이스를 EC2 인스턴스로 마이그레이션하는 방법을 설명합니다. `NETWORK_LINK` 파라미터는 데이터베이스 링크를 통해 가져오기를 시작합니다. 대상 EC2 인스턴스의 Oracle Data Pump Import(impdp) 클라이언트는 원본 데이터베이스에 연결하고, 원본 데이터베이스에서 데이터를 검색하며, 대상 인스턴스의 데이터베이스에 직접 데이터를 기록합니다. 이 솔루션에는 백업 또는 *덤프* 파일이 사용되지 않습니다.

## 사전 조건 및 제한 사항
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**사전 조건 **
+ 활성 상태의 계정
+ 온프레미스 Oracle 데이터베이스 다음과 같습니다.
  + Oracle Real Application Clusters(RAC) 데이터베이스가 아닙니다.
  + Oracle Automatic Storage Management(Oracle ASM) 데이터베이스가 아닙니다.
  + 읽기-쓰기 모드입니다.
+ 온프레미스 데이터 센터와 AWS 간에 Direct Connect 링크를 생성했습니다. 자세한 내용은 [연결 생성](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html)(Direct Connect 설명서)을 참조하십시오.

**제품 버전**
+ Oracle Database 10g 릴리스 1 (10.1) 이상

## 아키텍처
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**소스 기술 스택**
+ 온프레미스 데이터 센터의 독립형(비 RAC 및 비 ASM) Oracle 데이터베이스 서버

**대상 기술 스택**
+ Amazon EC2에서 실행되는 Oracle 데이터베이스

**대상 아키텍처**

Well-Architected Framework의 [신뢰성 원칙](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)에서는 고가용성과 복원력을 제공하는 데 도움이 되는 데이터 백업을 생성할 것을 권장합니다. 자세한 내용은 *AWS에서 Oracle 데이터베이스 실행에 관한 모범 사례*에 나와 있는 [고가용성을 위한 아키텍처](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2)를 참조하십시오. 이 패턴은 Oracle Active Data Guard를 사용하여 EC2 인스턴스에 기본 및 대기 데이터베이스를 설정합니다. 고가용성을 위해 EC2 인스턴스는 서로 다른 가용 영역에 있어야 합니다. 하지만 가용 영역은 동일한 리전 또는 서로 다른 여러 리전에 있을 수 있습니다.

Active Data Guard는 물리적 대기 데이터베이스에 대한 읽기 전용 액세스를 제공하고 기본 데이터베이스의 재실행 변경 사항을 지속적으로 적용합니다. Recovery Point Objective(RPO) 및 Recovery Time Objective(RTO)에 기반하여 동기식 전송 재실행 옵션과 비동기식 전송 재실행 옵션 중에서 선택할 수 있습니다.

다음 이미지는 기본 및 대기 EC2 인스턴스가 서로 다른 여러 리전에 있는 경우의 대상 아키텍처를 보여줍니다.

![기본 EC2 인스턴스의 새 데이터베이스에 연결하는 애플리케이션](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**데이터 마이그레이션 아키텍쳐**

대상 아키텍처 설정을 완료한 후에는 Oracle Data Pump를 사용하여 온프레미스 데이터와 스키마를 기본 EC2 인스턴스로 마이그레이션합니다. 전환 중에는 애플리케이션이 온프레미스 데이터베이스 또는 대상 데이터베이스에 액세스할 수 없습니다. 기본 EC2 인스턴스의 새 대상 데이터베이스에 연결할 수 있을 때까지 이러한 애플리케이션을 종료합니다.

다음 이미지는 데이터 마이그레이션 중의 아키텍처를 보여줍니다. 이 샘플 아키텍처에서, 기본 및 대기 EC2 인스턴스는 서로 다른 여러 지역에 있습니다.

![소스 DB는 대상 DB에 연결됩니다. 애플리케이션과 원본 및 대상 DB의 연결이 끊어졌습니다.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## 도구
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**서비스**
+ [Direct Connect](https://aws.amazon.com/directconnect/)를 사용하면 표준 Ethernet 광섬유 케이블을 통해 내부 네트워크를 Direct Connect 위치에 연결할 수 있습니다. 이 연결을 구성하면 네트워크 경로에서 인터넷 서비스 제공업체를 우회하여 퍼블릭 AWS 서비스에 직접 가상 인터페이스를 생성할 수 있습니다.
+ [Amazon Elastic Compute Cloud(Amazon EC2)](https://docs.aws.amazon.com/ec2/)는 AWS 클라우드에서 규모를 조정할 수 있는 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.

**기타 도구 및 서비스**
+ [Oracle Active Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7)는 대기 데이터베이스를 생성, 유지, 관리, 모니터링하는 데 도움이 됩니다.
+ [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html)를 사용하면 한 데이터베이스에서 다른 데이터베이스로 데이터와 메타데이터를 빠른 속도로 이동할 수 있습니다.

## 모범 사례
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [Best Practices for Running Oracle Database on AWS](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [NETWORK\_LINK를 사용하여 데이터 가져오기](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## 에픽
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### EC2 인스턴스 설정
<a name="set-up-the-ec2-instances-on-aws"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 온프레미스 호스트의 소스 하드웨어 구성과 커널 파라미터를 식별합니다. | 스토리지 크기, 초당 입출력 작업 처리량(IOPS), CPU를 포함한 온프레미스 구성을 검증합니다. 이는 CPU 코어를 기반으로 하는 Oracle 라이선싱에 중요합니다. | DBA, SysAdmin | 
| AWS에서 인프라를 생성합니다. | Virtual Private Cloud(VPC), 프라이빗 서브넷, 보안 그룹, 네트워크 액세스 제어 목록(ACL), 라우팅 테이블, 인터넷 게이트웨이를 생성합니다. 자세한 내용은 다음을 참조하세요.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, AWS 시스템 관리자 | 
| Active Data Guard를 사용하여 EC2 인스턴스를 설정합니다. | [Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html)에 설명된 대로 Active Data Guard 구성을 사용하여 EC2 인스턴스를 구성합니다. 이 패턴은 논리적 백업을 사용하기 때문에 EC2 인스턴스의 Oracle 데이터베이스 버전은 온프레미스 버전과 다를 수 있습니다. 다음 사항에 유의하세요.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)<br />자세한 내용은 다음을 참조하세요.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, AWS 시스템 관리자 | 

### 데이터베이스를 Amazon EC2로 마이그레이션
<a name="migrate-the-database-to-amazon-ec2"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| EC2 인스턴스에서 온프레미스 데이터베이스에 대한 dblink를 생성합니다. | EC2 인스턴스의 Oracle 데이터베이스와 온프레미스 Oracle 데이터베이스 간에 데이터베이스 링크(dblink)를 생성합니다. 자세한 내용은 [네트워크 링크 가져오기를 사용하여 데이터 이동하기](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806)(Oracle 설명서)를 참조하십시오. | DBA | 
| EC2 인스턴스와 온프레미스 호스트 간의 연결을 검증합니다. | dblink를 사용하여, EC2 인스턴스와 온프레미스 데이터베이스 간의 연결이 제대로 작동하는지 확인합니다. 지침은 [데이터베이스 링크 생성](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm)(Oracle 설명서)을 참조하십시오. | DBA | 
| 온프레미스 데이터베이스에 연결된 모든 애플리케이션을 중지합니다. | 데이터베이스 가동 중지 시간이 승인된 후에는 온프레미스 데이터베이스에 연결되는 모든 애플리케이션과 종속 작업을 종료합니다. 이는 애플리케이션에서 직접 수행하거나 cron을 사용하여 데이터베이스에서 수행할 수 있습니다. 자세한 내용은 [Oracle Linux에서 Crontab Utility를 사용하여 작업을 스케줄링하기](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html)를 참조하십시오. | DBA, 앱 개발자 | 
| 데이터 마이그레이션 작업을 스케줄링합니다. | 대상 호스트에서, 명령 `impdb`(을)를 사용하여 Data Pump 가져오기를 스케줄링합니다. 그러면 대상 데이터베이스가 온프레미스 호스트에 연결되고 데이터 마이그레이션이 시작됩니다. 자세한 내용은 [Data Pump 가져오기](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) 및 [NETWORK\_LINK](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919) (Oracle 설명서)를 참조하십시오. | DBA | 
| 데이터 마이그레이션을 검증합니다. | 데이터 검증은 중요한 단계입니다. 데이터 검증을 위해 사용자 지정 도구 또는 Oracle 도구(예: dblink 및 SQL 쿼리의 조합)를 사용할 수 있습니다. | DBA | 

### 전환
<a name="cut-over"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 소스 데이터베이스를 읽기 전용 모드로 전환합니다. | 응용 프로그램이 종료되고 소스 데이터베이스가 변경되지 않았는지 확인합니다. 소스 데이터베이스를 읽기 전용 모드로 엽니다. 이렇게 하면 트랜잭션 열림을 방지할 수 있습니다. 자세한 내용은 [SQL 성명서](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540)(Oracle 설명서)의 `ALTER DATABASE`을(를) 참조하십시오. | DBA, DevOps 엔지니어, 앱 개발자 | 
| 객체 수와 데이터를 검증합니다. | 데이터와 객체를 검증하려면 사용자 지정 도구 또는 Oracle 도구(예: dblink 및 SQL 쿼리의 조합)를 사용합니다. | DBA, 앱 개발자 | 
| 애플리케이션을 기본 EC2 인스턴스의 데이터베이스에 연결합니다. | 기본 EC2 인스턴스에서 생성한 새 데이터베이스를 포인팅하도록 애플리케이션의 연결 속성을 변경합니다. | DBA, 앱 개발자 | 
| 애플리케이션 성능을 검증합니다. | 애플리케이션을 시작합니다. [자동 워크로드 리포지토리](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951)를 사용하여 애플리케이션의 기능과 성능을 검증합니다(Oracle 설명서). | 앱 개발자, DevOps 엔지니어, DBA | 

## 관련 리소스
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**AWS 참조**
+ [클라우드로 Oracle 데이터베이스를 마이그레이션하기](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Oracle용 Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [교차 플랫폼 환경을 위해 대형 Oracle 데이터베이스를 AWS로 마이그레이션하기](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPC 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [자습서: 데이터베이스 인스턴스와 같이 사용할 VPC 생성](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Oracle 참고 문헌**
+ [Oracle Data Guard 구성](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-AB9DF863-2C7E-4767-81F2-56AD0FA30B49)
+ [Data Pump 가져오기](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)