

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Oracle Data Pump を使用してオンプレミスの Oracle データベースを Amazon EC2 に移行する
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Amazon Web Services、Navakanth Talluri*

## 概要
<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のツールを使用できます。詳細については、ガイド [AWS クラウドへの Oracle データベースの移行](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>

**前提条件**
+ アクティブな AWS アカウント。
+ 以下の機能を備えたオンプレミスの Oracle データベース
  + Oracle・リアル・アプリケーション・クラスター (RAC) データベースではない
  + Oracle 自動ストレージ管理 (Oracle ASM) データベースではない
  + 読み書きモードです。
+ オンプレミスデータセンターと AWS の間に AWS Direct Connect リンクが作成されました。詳細については、[接続の作成](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (Direct Connect ドキュメント)を参照してください。

**製品バージョン**
+ Oracle Database 12c リリース 1 (12.1.0.2.v14) 以降

## アーキテクチャ
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**ソーステクノロジースタック**
+ オンプレミス・データセンター内のスタンドアロン (非RACおよび非ASM) Oracleデータベース・サーバー

**ターゲットテクノロジースタック**
+ Amazon EC2 上で実行されている Oracle データベース

**ターゲット アーキテクチャ**

AWS Well-Architected フレームワーク の [信頼性の柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) は、高い可用性と耐障害性を提供するためにデータのバックアップを作成することを推奨しています。詳細については、「*AWS での Oracle Database の稼働に関するベストプラクティス*」の「[高可用性を実現するアーキテクチャの設計](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 インスタンスを異なるアベイラビリティーゾーンに配置する必要があります。ただし、アベイラビリティーゾーンは同じ AWS リージョン内に存在することも、異なる AWS リージョン内に存在することもできます。

Oracle アクティブデータガードは、クエリ、ソート、レポート、その他の読み取り操作を行う際に、フィジカル・スタンバイ・データベースへの読み取り専用アクセスを提供しますが、その間、プライマリ・データベースからREDOの変更を継続的に適用します。目標復旧時点 (RPO) と目標復旧時間 (RTO) に基づいて、同期と非同期のREDO転送オプションを選択できます。

以下の画像は、プライマリ EC2 インスタンスとスタンバイ EC 2 インスタンスが異なる AWS リージョンにある場合のターゲットアーキテクチャを示しています。

![\[プライマリ EC2 インスタンス上の新しいデータベースに接続する アプリケーション。\]](http://docs.aws.amazon.com/ja_jp/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 インスタンスとスタンバイ EC2 インスタンスは異なる AWS リ ージョンにあります。

![\[ソース DB は、ターゲット DB に接続します。アプリケーションは、ソース DB とターゲット DB から切断されます。\]](http://docs.aws.amazon.com/ja_jp/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>

** サービス**
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) は、標準のイーサネット光ファイバーケーブルを介して内部ネットワークを Direct Connect の場所にリンクします。この接続を使用すると、Amazon S3 などのパブリックサービス、または Amazon VPC に対する仮想インターフェイスを直接作成できるため、ネットワークパスのインターネットサービスプロバイダーを回避できます。
+ 「[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>
+ [AWS で Oracle Database を実行するためのベストプラクティス](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [NETWORK\$1LINK を使用してデータをインポートします](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>

### AWS で EC2 インスタンスをセットアップする
<a name="set-up-the-ec2-instances-on-aws"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| オンプレミスホストのソースハードウェア構成とカーネルパラメータを 特定します。 | ストレージサイズ、1 秒あたりの入出力オペレーション (IOPS)、CPU など、オンプレミス設定を検証します。これは CPU コアに基づく Oracle ライセンスにとって重要です。 | DBA、SysAdmin | 
| AWS でインフラストラクチャを作成します。 | 仮想プライベートクラウド (VPC)、プライベートサブネット、セキュリテ ィグループ、ネットワークアクセスコントロールリスト (ACL)、ルートテーブル、インターネットゲートウェイを作成します。詳細については次を参照してください:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | AWS システム管理者 | 
| アクティブデータガードを使用して EC2 インスタンスをセットアップします。 | [AWS Well-Architected フレームワーク](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html) で説明されているように、アクティブデータガード設定を使用して AWS EC2 インスタンスを設定します。EC2 インスタンス上の Oracle Database のバージョンは、オンプレミスバージョンと異なる場合があります。 これは、このパターンでは論理バックアップが使用されるためです。次の点に注意してください。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)詳細については、以下を参照してください。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | AWS システム管理者 | 

### データベースを Amazon EC2 に移行する
<a name="migrate-the-database-to-amazon-ec2"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| EC2 インスタンスからオンプレミスデータベースへの dblink を作成します。 | EC2 インスタンスの Oracle データベースとオンプレミスの Oracle データベースとの間にデータベースリンク (d blink) を作成します。詳細については、[ネットワークリンクインポートによるデータの移動](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 ユーティリティを使用してタスクをスケジュールする](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html)を参照してください。 | DBA、アプリケーション開発者 | 
| データ移行ジョブをスケジュールします。 | ターゲットホストで、`impdb` コマンドを使用して Data Pump のインポートをスケジュールします。これにより、ターゲットデータベースがオンプレミスホストに接続され、データ移行が開始されます。詳細については、[Data Pump Import](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) と[NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919)(Oracle ドキュメント) を参照してください。 | DBA | 
| データ移行を検証します。 | データ検証は重要なステップです。データ検証には、dblink と SQL クエリの組み合わせなど、カスタムツールや Oracle ツールを使用できます。 | DBA | 

### カットオーバー
<a name="cut-over"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| 移行元データベースは、特別な読み取り専用モードとなります。 | アプリケーションがシャットダウンされ、ソースデータベースに、変更が加えられていないことを確認します。ソースデータベースを読み取り専用モードで開きます。これにより、未処理のトランザクションを回避できます。詳細については、[SQL ステートメント](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540)の`ALTER DATABASE` を参照してください。 | DevOps エンジニア、開発者 | 
| オブジェクト数とデータを検証します。 | データ検証には、dblink と SQL クエリの組み合わせなど、カスタムツールや Oracle ツールを使用できます。 | DBA、アプリケーション開発者 | 
| プライマリ EC2 インスタンス上の新しいデータベースに接続するアプリケーション。 | プライマリ EC2 インスタンスに作成した新しいデータベースを指すようにアプリケーションの接続属性を変更します。 | DBA、アプリケーション開発者 | 
| アプリケーションのパフォーマンスを検証します。 | アプリケーションの起動 [Automated Workload Repository](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (Oracle ドキュメント) を使用して、アプリケーションの機能とパフォーマンスを検証します。 | アプリ開発者、DevOps エンジニア | 

## 関連リソース
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**AWS リファレンス**
+ 「[AWS クラウドへの Oracle データベースの移行](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)」
+ [Amazon EC2 for Oracle](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)
+ [チュートリアル：DB インスタンス用の Amazon 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)
+ [データポンプインポート](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)