

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

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

*Amazon Web Services、Mohan Annam および Brian Motzer*

## 概要
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

このパターンでは、Oracle Data Pump を使用して、Oracle データベースをオンプレミスのデータセンターから Amazon Relational Database Service (Amazon RDS) for Oracle DB インスタンスに移行する方法について説明します。 

このパターンでは、ソースデータベースからデータダンプ ファイルを作成し、そのファイルを Amazon Simple Storage Service (Amazon S3) バケットに保存してから、Amazon RDS for Oracle DB インスタンスにデータを復元します。このパターンは、移行に AWS Database Migration Service (AWS DMS) を使用すると制限が発生する場合に便利です。

## 前提条件と制限
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ AWS Identity and Access Management (IAM) でのロールの作成と Amazon S3 マルチパートアップロードに必要な権限
+ ソースデータベースからデータをエクスポートするのに必要な権限
+ AWS コマンドラインインターフェイス (AWS CLI) を[インストール済み](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)および[設定済み](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**製品バージョン**
+ Oracle Data Pump は、Oracle Database 10g リリース 1 (10.1) 以降のバージョンでのみ使用できます。

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

**ソーステクノロジースタック**
+ オンプレミスの Oracle データベース

**ターゲットテクノロジースタック**
+ Amazon RDS for Oracle
+ SQL クライアント (Oracle SQL Developer)
+ S3 バケット

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

![Oracle Data Pump を使用して、オンプレミスの Oracle DB から Amazon RDS に Amazon S3 マルチパートアップロードを実行します。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## ツール
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**AWS サービス**
+ 「[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」は、AWS リソースへのアクセスを安全に管理し、誰が認証され、使用する権限があるかを制御するのに役立ちます。このパターンでは、IAM を使用して Amazon S3 から Amazon RDS for Oracle にデータを移行するために必要なロールとポリシーを作成します。
+ 「[OracleのAmazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)」 によって、AWS クラウドで Oracleリレーショナルデータベースをセットアップ、運用、スケーリングができます。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

**その他のツール**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) を使用すると、あるデータベースから別のデータベースにデータやメタデータを高速に移動できます。このパターンでは、Oracle Data Pump を使用してデータダンプ (.dmp) ファイルを Oracle サーバーにエクスポートし、データダンプ ファイルを Amazon RDS for Oracle にインポートします。詳細については、Amazon RDS ドキュメントの「[Amazon RDS の Oracle にデータをインポートする](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)」を参照してください。
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) は、従来のデプロイとクラウドデプロイの両方で Oracle Database の開発と管理を簡素化する統合開発環境です。オンプレミスの Oracle データベースと Amazon RDS for Oracle の両方と相互作用して、データのエクスポートとインポートに必要な SQL コマンドを実行します。

## エピック
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### S3 バケットを作成する
<a name="create-an-s3-bucket"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| バケットを作成します。 | S3 バケットを作成するには、[AWS のドキュメント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)の手順に従います。 | AWS システム管理者 | 

### IAM ロールを作成してポリシーを割り当てる
<a name="create-the-iam-role-and-assign-policies"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| IAM 許可を設定します。 | 権限を設定するには、「[AWS ドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)」の指示に従ってください。 | AWS システム管理者 | 

### ターゲットの Amazon RDS for Oracle DB インスタンスを作成し、Amazon S3 統合ロールを関連付ける
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ターゲットの Amazon RDS for Oracle DB インスタンスを停止します。 | Amazon RDS for Oracle インスタンスを作成するには、「[AWS ドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html)」の指示に従ってください。 | AWS システム管理者 | 
| ロールを DB インスタンスに関連付けます。 | ロールをインスタンスに関連付けるには、「[AWS ドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance)」の指示に従ってください。 | DBA | 

### ターゲットデータベースにデータベースユーザーを作成します。
<a name="create-the-database-user-on-the-target-database"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ユーザーを作成します。 | Oracle SQL Developer または SQL\*Plus からターゲットの Amazon RDS for Oracle データベースに接続し、次の SQL コマンドを実行して、スキーマをインポートするユーザーを作成します。<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | DBA | 

### ソース Oracle データベースからエクスポートファイルを作成する
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| データダンプファイルを作成する。 | `DATA_PUMP_DIR` ディレクトリに `sample.dmp` というダンプファイルを作成して `SAMPLE_SCHEMA` ユーザーをエクスポートするには、次のスクリプトを使用します。<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre><br />ローカル `DATA_PUMP_DIR` ディレクトリにある `export.log` ファイルを参照して、エクスポートの詳細を確認します。 | DBA | 

### ダンプファイルを S3 バケットにアップロードします。
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| データダンプファイルをソースから S3 バケットにアップロードします。 | AWS CLI を使用して、次のコマンドを実行します。<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### S3 バケットから RDS インスタンスにエクスポートファイルをダウンロードします。
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| データダンプファイルを Amazon RDS にダウンロードします。 | ダンプファイル `sample.dmp` を S3 バケットから Amazon RDS for Oracle データベースにコピーするには、次の SQL コマンドを実行します。この例では、`sample.dmp` ファイルが S3 バケット `my-s3-integration1` から Oracle ディレクトリ `DATA_PUMP_DIR` にダウンロードされます。RDS インスタンスには、データベースとエクスポートファイルの両方を収容するのに十分なディスクスペースが割り当てられていることを確認してください。<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre><br />前のコマンドはタスク ID を出力します。タスク ID のデータを確認してダウンロードのステータスを確認するには、以下のコマンドを実行します。<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre><br />`DATA_PUMP_DIR` ディレクトリ内のファイルを確認するには、次のコマンドを実行します。<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | AWS システム管理者 | 

### ターゲットデータベース内のダンプファイルをインポートする
<a name="import-the-dump-file-into-the-target-database"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| スキーマとデータを Amazon RDS に復元します。 | ダンプファイルを `sample_schema` データベーススキーマにインポートするには、SQL Developer または SQL\*Plus から次の SQL コマンドを実行します。<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre><br />インポートのログファイルを表示するには、以下のコマンドを実行します。<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### DATA\_PUMP\_DIR ディレクトリからダンプファイルを削除します。
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| エクスポートファイルを一覧表示してクリーンアップします。 | `DATA_PUMP_DIR` ディレクトリのエクスポートファイルを一覧表示して削除し、次のコマンドを実行します。<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | AWS システム管理者 | 

## 関連リソース
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ 「[Amazon S3 統合](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)」
+ 「[DB インスタンスを作成する](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)」
+ 「[Amazon RDS の Oracle にデータをインポートする](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)」
+ 「[Amazon S3 ドキュメント](https://docs.aws.amazon.com/s3/index.html)」
+ 「[IAM ドキュメント](https://docs.aws.amazon.com/iam/index.html)」
+ 「[Amazon RDS ドキュメント](https://docs.aws.amazon.com/rds/index.html)」
+ 「[Oracle Data Pump のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)」
+ 「[Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/)」