

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

# Amazon RDS for Oracle への移行に関するベストプラクティス
<a name="best-practices"></a>

データベースの評価とプロジェクト要件に基づいて、Amazon RDS for Oracle への移行が目標である場合は、このセクションのベストプラクティスに従って、ターゲットデータベースのプロビジョニング、移行の実行、Amazon RDS for Oracle データベースのテスト、運用、最適化を行います。

**重要**  
データベースを移行する前に、必ずロールバック計画を立ててください。

## ターゲットデータベースのプロビジョニング
<a name="provision"></a>

データベース移行戦略の評価、計画、準備が完了したら、Amazon RDS for Oracle データベースをプロビジョニングする際に以下のベストプラクティスに従ってください。
+ CPU、メモリ、IOPS、およびストレージタイプの要件に基づいて、Amazon RDS for Oracle DB インスタンスのサイズを適切に設定してください。
+ 正しいタイムゾーンと文字セットを設定します。
+ Amazon RDS は、必ず正しい仮想プライベートクラウド (VPC) で起動します。
+ 正しいポートと IP アドレスを使用してセキュリティグループを作成します。
+ セキュリティのため、プライベートサブネットに Amazon RDS データベースをプロビジョニングします。
+ 可能であれば、最新の Oracle データベースバージョン (現在は 19c) を使用して DB インスタンスをプロビジョニングしてください。以前のバージョンはサポート終了間近です。詳細については、「[Amazon RDS での Oracle Database 19c](https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-rds-for-oracle-now-supports-oracle-database-19c/)」を参照してください。
+ 暗号化を使用する場合は、Amazon RDS データベースをプロビジョニングしている間は常に暗号化を有効にしてください。
+ Amazon RDS データベースごとに個別のオプショングループとパラメータグループを作成します。

## ソースデータベースからのデータのエクスポート
<a name="export-data"></a>

Oracle データベースを Amazon RDS for Oracle データベースに移行するためのツールは多数あります。最も一般的に使用されているツールは Oracle Data Pumpです。ソース Oracle データベースをエクスポートする前に、エクスポート処理を円滑に進めるために次の点を確認してください。
+ データベースのサイズをチェックして、データベース全体を移行するのではなく、スキーマごとに移行できるかどうかを確認してください。スキーマを個別に移行する方が、すべてを一度に移行するよりもエラーが少なく、管理しやすくなります。
+ パフォーマンスを向上させるには、Oracle Data Pump PARALLEL パラメータを使用してデータをパラレルモードでエクスポートします。
+ テーブルにラージオブジェクト (LOB) があるかどうかを確認します。LOB を含む大きなテーブルがある場合は、それらのテーブルを個別にエクスポートすることをお勧めします。
+ エクスポート処理中は、Oracle の読み取り不整合エラーが発生しないように、ソースデータベースで長時間のデータベーストランザクションを実行しないでください。
+ Oracle GoldenGate AWS DMSや Quest SharePlex などのレプリケーションツールを使用している場合は、移行にかかる時間に応じて、アーカイブログを 24～72 時間保持するのに十分なスペースがオンプレミスサーバーにあることを確認してください。

## へのデータダンプファイルの転送 AWS
<a name="transfer-data"></a>

オンプレミス環境と の間に高帯域幅の接続 AWS Direct Connectを提供する を使用している場合 AWSは、Oracle [DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_FILE_TRANSFER.html) ユーティリティまたは [Amazon S3 統合機能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)を使用して Data Pump ファイルをコピーできます。を通じて高帯域幅がない場合は AWS Direct Connect、 AWS Snowball を使用して大規模なデータベースエクスポートダンプファイルを転送します。

## ターゲットデータベースへのデータのインポート
<a name="import-data"></a>
+ 非常に大きなデータベースを移行する場合、データのロードを高速化するために、移行中は最初に大きな [Amazon RDS インスタンスタイプ](https://aws.amazon.com/rds/instance-types/)をプロビジョニングすることをお勧めします。移行が完了したら、DB インスタンスを適切なサイズのインスタンスタイプに変更できます。
+ 必要に応じて、REDO ログファイル、UNDO テーブルスペース、テンポラリテーブルスペースのサイズを増やして、移行中のパフォーマンスを向上させてください。
+ マルチ AZ オプションはインポート処理中は無効にし、移行が完了したら有効にしてください。
+ データの読み込みを高速化するには、バックアップ保持期間を 0 に設定してアーカイブログの生成を無効にします。
+ テーブルスペース、ユーザー、ロール、プロファイル、スキーマを事前に作成して、ターゲットデータベースを準備します。
+ LOB を含む大きなテーブルがある場合は、各 LOB テーブルを個別にインポートします。

## インポート後の手順
<a name="post-import"></a>
+ インポートログファイルにエラーがないか確認し、インポートが完了したらエラーを修正します。
+ 無効なオブジェクトがないかチェックしてください。見つかった場合は、コンパイルして修正してください。
+ Amazon RDS では許可またはサポートされていない SYS オブジェクトに対する権限がないため、一部のプロシージャはコンパイルされない場合があります。これらのプロシージャは書き直す必要があります。
+ シーケンスを使用している場合は、シーケンスの値がソースデータベースと照合してシーケンスの不一致が発生しないようにしてください。
+ Amazon RDS データベースのオブジェクト数がソースデータベースのオブジェクト数と同じであることを確認してください。テーブル、インデックス、プロシージャ、トリガー、関数、パッケージ、制約、その他のオブジェクトを検証します。
+ ソースデータベースに他のデータベースへのデータベースリンクがある場合は、接続をテストして、リンクが引き続き機能することを確認します。
+ 最適なパフォーマンスを得るには、辞書レベルとスキーマレベルの統計情報を収集してください。

## 移行のテスト
<a name="test-migration"></a>

新しい Amazon RDS for Oracle データベースと照合してアプリケーションを検証するには、次のテストを行うことをお勧めします。
+ Oracle クライアントソフトウェアまたは JDBC ソフトウェアを Amazon RDS for Oracle データベースバージョンに基づいてアップグレードする必要がある場合があります。新しいバージョンの Oracle データベースに移行した場合、古いバージョンの Oracle クライアントソフトウェアはサポートされていない可能性があります。
+ 機能テストを実施します。
+ ソースデータベースとターゲットデータベースの SQL クエリのパフォーマンスを比較し、必要に応じてクエリを調整します。一部のクエリはターゲットデータベースでは実行速度が遅くなる場合があるため、ソースデータベースで SQL クエリのベースラインを取得することをお勧めします。
+ アプリケーションチームがテストを終了し、Amazon RDS データベースが正常に機能していることを確認したら、次のことが可能になります。
  + 評価に基づいて Amazon RDS DB インスタンスのサイズを調整します。
  + バックアップ保持を有効にします。
  + アーカイブログを有効にします。
  + REDO ログファイルのサイズをリセットします。
  + マルチ AZ オプションを有効にします。
  + Amazon CloudWatch アラームを作成し、アラート用の Amazon Simple Notiﬁcation Service (Amazon SNS) トピックを設定します。

概念実証 (POC) フェーズでさらに検証を行うには、以下の補足テストを行うことをお勧めします。
+ パフォーマンステストを実行して、ビジネス上の期待に応えていることを確認します。
+ データベースのフェイルオーバー、リカバリ、復元をテストして、RPO と RTO の要件を満たしていることを確認します。
+ 重要なジョブとレポートをすべて一覧表示し、Amazon RDS で実行して、サービスレベル契約 (SLA) に照らしてパフォーマンスを評価します。

## Amazon RDS データベースの運用と最適化
<a name="operate-optimize"></a>

データベースがオンになったら AWS、クラウドのモニタリング、アラート、バックアップ、高可用性などの分野でベストプラクティスに従っていることを確認してください。例えば、次のようになります。
+ CloudWatch モニタリングをセットアップし、詳細モニタリングを有効にします。
+ [Amazon RDS Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) と [Oracle Enterprise Manager (OEM) 管理エージェント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Options.OEMAgent.html)を使用してデータベースを監視します。
+ SNS トピックを使用してアラートを設定します。
+ を使用して自動バックアップを設定します[AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)。Oracle Data Pumpバックアップを使用したり、手動でスナップショットを作成したりすることもできます。
+ 可用性を高めるには Amazon RDS マルチ AZ 機能をセットアップしてください。
+ 読み取り専用データベースが必要な場合は、 AWS リージョン 必要に応じて同じ 内または 間で[リードレプリカを設定します](rds-oracle.md#rds-oracle-replicas)。