Oracle Database の Azure への移行

Load Balancer
ExpressRoute
VPN Gateway

ソリューションのアイデア

この記事にさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

Oracle DB の移行は複数の方法で行うことができます。 それらの選択肢の 1 つである、Oracle Active Data Guard を使用してデータベースを移行する方法をこのソリューションで取り上げます。 これは、Oracle Data Guard (または Active Data Guard) が HA/DR の目的で使用されることを前提としています。 アプリケーションに応じて、最初にアプリケーションまたはデータベースを移行することができます。 この場合、アプリケーションは Azure Load Balancer を使用して Azure に移行されます。 これにより、オンプレミスと Azure の間でトラフィックを分割できるため、アプリケーション層を段階的に移行することができます。 データベースの移行は複数の手順で実行されます。 最初の手順として、Oracle Data Guard を使用して、Azure にセカンダリ/スタンバイ データベースを設定します。 これによって、データを Azure に移行できます。 Azure のセカンダリがプライマリと同期されたら、オンプレミスのセカンダリを維持しながら、Azure のデータベースをプライマリ データベースに切り替えることができます。 次の手順として、HA/DR の目的で、別の可用性ゾーン (またはリージョン) にセカンダリ データベースを設定できます。 この時点で、オンプレミス環境の使用を停止できます。 オンプレミスと Azure の間のすべてのデータ トラフィックは、Azure ExpressRoute またはサイト間 VPN 接続経由で送信されます。

Architecture

アーキテクチャの図

データ フロー

  1. サイト間 VPN または ExpressRoute 経由で、Azure 環境をオンプレミスのネットワークに接続します。
  2. DataGuard を使用して、Azure 内の OracleDB1 をアクティブ スタンバイとしてマークします。
  3. Azure の OracleDB1 をプライマリとして切り替えて、Azure の OracleDB2 をスタンバイとして設定し、移行を完了します。

注意

  • この方法は、同一の OS バージョンおよびデータベース バージョンとの間で移行する場合にのみ機能します。
  • 前提: オンプレミスで DataGuard を使用していること。

Components

代替

データベースが 2 TB を超える場合は、Oracle Recovery Manager (RMAN) と共に Oracle Data Guard を使用するか、最初の 一括 データ転送後に Data Pump を使用して変更をレプリケートすることで、ダウンタイムを最小限に抑えた移行が可能になります。

考慮事項

移行

Oracle Recovery Manager (RMAN) と Oracle Data Guard を使用すると、最小限のダウンタイムで Oracle データベース全体をオンプレミスから Azure VM に移行することができます。 RMAN を使用し、バックアップと復元か、データベース複製のいずれかの方法で、データベースをターゲットのスタンバイ Azure VM に復元します。 それから、Oracle Data Guard を使用して、ターゲット データベースを物理スタンバイ データベースとして構成し、プライマリ オンプレミス データベースからスタンバイ データベースへすべてのトランザクションまたは再実行のデータ変更を許可できます。 オンプレミスのプライマリ Oracle データベースが Azure VM インスタンス上のターゲット スタンバイ データベースと同期している場合、ターゲット データベースに切り替えて、読み書き可能なデータベースに変換することができます。 その後、アプリケーションの接続を新しいプライマリ データベースに設定することができます。 このオプションにより、データベースを Azure に移行するときのダウンタイムを最小限に抑えることができます。

Oracle Data Pump ユーティリティは、Oracle データベースとの間でデータやメタデータをエクスポートおよびインポートするために使用されます。 Data Pump のエクスポートとインポートは、データベース全体、選択したスキーマ、テーブルスペース、またはデータベース オブジェクトに対して実行できます。 Data Pump は、サイズの範囲が 10 GB から 20 TB の大規模なデータベースで Azure へのデータ移行に推奨されるツールです。 これにより、高度な並列処理、柔軟なデータ抽出オプション、スケーラブルな操作が可能になり、ソース データベースからターゲット データベースへのデータおよびメタデータの高速移動が実現されます。 Oracle Data Pump では、データをデータ ダンプ ファイルにエクスポートするときの暗号化と圧縮もサポートされています。 Oracle Data Pump と Oracle Data Guard または Golden Gate を一緒に使用することで、大規模なデータベースの初期データ転送を処理できます。 Data Pump は Oracle Database 10g リリース 1 (10.1) 以降でのみ使用できます。

設計上の考慮事項

VM のサイズ設定

ライセンス コストを節約してパフォーマンスを最大化するには、Oracle Database VM に制約付きコア vCPU のハイパースレッド化されたメモリ最適化済み仮想マシンを使用することをご検討ください。 Oracle では、オンプレミスから Azure へのライセンス モビリティを保証しています。 Oracle-Azure FAQ を参照してください。

ストレージ

Oracle データベースでパフォーマンスと可用性を向上させるには、複数の Premium ディスクまたは Ultra ディスク (マネージド ディスク) を使用します。 マネージド ディスクを使用する場合、再起動時にディスク/デバイス名が変更される可能性があります。 再起動後もマウントが確実に持続するようにするため、名前ではなく、デバイス UUID を使用することをお勧めします。 データベースのストレージ管理を合理化するには、Oracle Automatic Storage Management (ASM) の使用をご検討ください。

テストとチューニング

新しい Oracle データベースに対してお客様のアプリケーションを検証するには、以下のテストをお勧めします。

  • パフォーマンス テストを実行して、ビジネス要件を満たしていることを確認します。
  • データベースのフェールオーバー、復旧、復元をテストして、RPO と RTO の要件を満たしていることを確認します。
  • すべての重要なジョブとレポートをリストし、新しい Oracle インスタンスでそれらを実行して、サービス レベル アグリーメント (SLA) に照らしてパフォーマンスを評価します。
  • 最後に、クラウド用のアプリケーションを移行または作成する場合、再試行パターンやサーキット ブレーカー パターンなどのクラウドネイティブ パターンを追加するため、アプリケーション コードを微調整することが重要です。 クラウド設計パターン ガイドで定義されている追加パターンを使用すると、アプリケーションの回復性が向上します。

Oracle のライセンス

Azure VM でハイパースレッディング対応テクノロジを使用している場合は、2 つの vCPU を 1 つの Oracle プロセッサ ライセンスと同等であるとカウントします。 詳細については、「Licensing Oracle Software in the Cloud Computing Environment (クラウド コンピューティング環境での Oracle ソフトウェアのライセンス)」を参照してください。

バックアップ戦略

バックアップ戦略の 1 つは、Oracle Recovery Manager (RMAN) と Azure Backup を使用して、アプリケーション整合性バックアップを行うことです。 Azure のバックアップ方法を使用することもできます。

必要に応じて、Azure Blob Fuse を使用して、冗長性の高い Azure BLOB ストレージ アカウントをマウントし、RMAN バックアップをそれに書き込んで回復性を高めます。

事業継続とディザスター リカバリー

事業継続とディザスター リカバリーのために、以下のソフトウェアのデプロイを検討してください。

  • データベースの可用性には、Oracle Data Guard Fast-Start Failover (FSFO)
  • データ損失ゼロの保護には、Oracle Data Guard Far Sync。
  • SLA 要件に応じて、Azure 可用性セットまたは可用性ゾーンでのマルチプライマリまたはアクティブ/アクティブ モードの Oracle GoldenGate。

リージョン内で高可用性を実現するには、Availability Zones を使用します。 詳細については、Azure 上の Oracle データベース用リファレンス アーキテクチャに関する記事を参照してください。

データベース層における 99.99% のアップタイムの可用性は、Azure Availability Zones と Oracle Active DataGuard の組み合わせを FSFO と共に使用することで実現できます。

アプリケーションとデータベース層の間の待機時間を短縮するには、近接通信配置グループの使用をご検討ください。

監視

管理、監視、ログのため、Oracle Enterprise Manager を設定します。

次のステップ

サポート情報については、これらの記事を参照してください。

各種アーキテクチャ コンポーネントについては、以下を参照してください。