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

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

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

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

pg_restore ユーティリティは、pg_dump によって作成されたアーカイブから PostgreSQL データベースを復元するためのものです。pg_dump をカスタム形式またはディレクトリ形式で使用すると、pg_restore ユーティリティを並列モードで実行できます。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 にコピーするには、大量のディスク容量が必要です。