ネイティブ PostgreSQL クライアントアプリケーション - AWS 規範ガイダンス

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

ネイティブ PostgreSQL クライアントアプリケーション

pg_dump、pg_dumpallpg_restore などのネイティブ PostgreSQL クライアントアプリケーションをオフラインマイグレーションに使用できます。pg_dump ユーティリティは PostgreSQL データベースをバックアップするためのものです。pg_dump を使用すると、一貫したバックアップを作成し、1 つのデータベースをバックアップできます。クラスター内のすべてのデータベースに共通するグローバルオブジェクト (ロールやテーブルスペースなど) をバックアップするには、pg_dumpall を使用します。完全なダンプを実行できるのはスーパーユーザーだけなので、pg_dump ユーティリティをスーパーユーザーとして実行することをお勧めします。pg_dump ユーティリティには、jobs オプション (ダンプをparallel 実行するため) の使用や、バックアップを取る際のディレクトリ形式など、バックアッププロセスを最適化するオプションもあります。詳細については、PostgreSQL ドキュメントの pg_dump ページの「オプション」セクションを参照してください。

pg_restore ユーティリティは、pg_dump によって作成されたアーカイブから PostgreSQL データベースを復元するためのものです。pg_dump をカスタム形式またはディレクトリ形式で使用すると、pg_restore ユーティリティをparallel モードで実行できます。pg_restore のパフォーマンスを向上させるには、以下のパラメータを調整できます。

  • shared_buffers要件に合わせて設定し、maintenance_work_memインデックスの作成時間を増やすとインデックス作成が速くなります。

  • 詳細なロギング、autovacuum デーモン、およびをオフにしますfull_page_writes

  • (オプション) スキーマのバックアップと復元を行い、データのみのダンプと復元を行います。この方法を使用すると、disable-triggersオプションを使用してパフォーマンスを向上させることができます。

pg_dump と pg_restore をターゲットの EC2 インスタンスから実行できます。速度とパフォーマンスを向上させるには、AWS Direct Connect を使用することをお勧めします。最後に、バックアップファイル用のストレージが十分であることを確認します。

アーキテクチャ

次の図は、ネイティブの PostgreSQL クライアントアプリケーションを使用してオンプレミスの PostgreSQL データベースを AWS クラウドに移行するためのアーキテクチャを示しています。

ネイティブ PostgreSQL クライアントアプリケーションアーキテクチャ

図表に示す内容は以下のワークフローです。

  1. pg_dump を使用してバックアップを作成します。

  2. EC2 インスタンスを作成して、PostgreSQL をインスタンスにインストールします。

  3. ダンプファイルを Amazon EC2 にコピーします。

  4. pg_restore を使用してバックアップファイルを復元します。

制限事項

移行を開始する前に、PostgreSQL ネイティブクライアントアプリケーションの使用に関する次に示す制限を考慮することをお勧めします。

  • 大規模なデータベース (300 GB を超えるデータベース) では、ダンプと復元に時間がかかる場合があります。

  • このオプションでは、データベースの完全なダウンタイムが必要です。

  • バックアップを取り、そのバックアップを Amazon EC2 にコピーするには、サーバー上に大量のディスク容量が必要です。