すべてのプロダクト
Search
ドキュメントセンター

PolarDB:RDS PostgreSQL インスタンスから PolarDB for PostgreSQL クラスターへのデータ移行

最終更新日:Nov 09, 2025

このトピックでは、pg_dump および pg_restore コマンドを使用して、RDS PostgreSQL データベースから PolarDB for PostgreSQL クラスターにデータを移行する方法について説明します。

ソースが自主管理 PostgreSQL データベースの場合は、「自主管理 PostgreSQL データベースから PolarDB for PostgreSQL クラスターへのデータ移行」をご参照ください。

範囲

  • RDS PostgreSQL インスタンス: この移行方法では、サーバーレスインスタンスはサポートされていません。

  • ストレージ容量: PolarDB for PostgreSQL クラスターのストレージ容量は、RDS PostgreSQL データベースのストレージ容量よりも大きい必要があります。

使用上の注意

これは完全なデータ移行です。データの不整合を防ぐため、移行を開始する前に、RDS PostgreSQL データベースに接続されているすべてのサービスを停止し、データの書き込みを停止してください。

準備

  1. Linux Elastic Compute Service (ECS) インスタンスを作成します。この例では、64 ビット Ubuntu 16.04 を実行する ECS インスタンスを使用します。詳細については、「ECS インスタンスの作成」をご参照ください。

    説明
    • ECS インスタンスは、ソース RDS PostgreSQL データベースおよびターゲット PolarDB for PostgreSQL クラスターへのネットワーク接続が必要です。

    • 従量課金 ECS インスタンスを作成し、移行完了後にリリースできます。

  2. データ復元コマンドを実行するために、ECS インスタンスに PostgreSQL クライアントをインストールします。詳細については、「PostgreSQL 公式ドキュメント」をご参照ください。

    説明

    インストールされている PostgreSQL クライアントのバージョンが、ソース RDS PostgreSQL データベースおよびターゲット PolarDB for PostgreSQL クラスターのバージョンと互換性があることを確認してください。

ステップ 1: RDS PostgreSQL データベースのバックアップ

これは完全なデータ移行です。データの不整合を防ぐため、移行を開始する前に、RDS PostgreSQL データベースに接続されているすべてのサービスを停止し、データの書き込みを停止してください。

  1. ECS インスタンスで、次のコマンドを実行してデータベースをバックアップします。

    pg_dump -U <username> -h <hostname> -p <port> <dbname> -Fd -j <njobs> -f <dumpdir>

    パラメーター:

    • <username>: RDS PostgreSQL データベースへのログインに使用するデータベースアカウント。

    • <hostname>: RDS PostgreSQL データベースのエンドポイント。データベースのエンドポイントを表示するには、「エンドポイントとポート番号の表示または変更」をご参照ください。

    • <port>: データベースサービスのポート番号。

    • <dbname>: 接続するデータベースの名前。デフォルト値は postgres です。

    • <njobs>: 同時バックアップジョブの数。

      説明
      • <njobs> パラメーターはダンプ時間を短縮しますが、データベースサーバーの負荷を増加させます。

      • RDS PostgreSQL データベースのバージョンが 9.2 より前の場合は、--no-synchronized-snapshots パラメーターも指定する必要があります。

    • <dumpdir>: 生成されたバックアップファイルのディレクトリ。

    例:

    pg_dump -U postgres -h pgm-xxxxxxxxx.pg.rds.aliyuncs.com -p 5432 postgres -Fd -j 5 -f postgresdump
  2. Password: の入力を求められたら、データベースアカウントのパスワードを入力してバックアップを開始します。

  3. バックアップが完了するまで待ちます。RDS PostgreSQL データベースのデータは、指定されたディレクトリにバックアップされます。この例では、ディレクトリは postgresdump です。

ステップ 2: PolarDB for PostgreSQL クラスターへのデータ移行

  1. ターゲット PolarDB for PostgreSQL クラスターにデータベースアカウントを作成します。詳細については、「データベースアカウントの作成」および「アカウントの権限」をご参照ください。

  2. ターゲット PolarDB for PostgreSQL クラスターで、データ復元用のデータベースを作成します。前のステップで作成したアカウントをデータベース所有者として指定します。詳細については、「データベースの作成」をご参照ください。

  3. ECS インスタンスで、次のコマンドを実行して、RDS PostgreSQL データベースから PolarDB for PostgreSQL クラスターにデータを移行します。

    pg_restore -U <username> -h <hostname> -p <port> -d <dbname> -j <njobs> <dumpdir>

    パラメーター:

    • <username>: PolarDB for PostgreSQL データベースへのログインに使用するデータベースアカウント。

    • <hostname>: PolarDB for PostgreSQL クラスターのエンドポイント。

    • <port>: データベースサービスのポート番号。詳細については、「エンドポイントとポート番号の表示」をご参照ください。

    • <dbname>: 接続してデータを復元するターゲットデータベースの名前。

    • <njobs>: 同時データ復元ジョブの数。

      説明

      このオプションはデータ復元時間を短縮しますが、データベースサーバーの負荷を増加させます。

    • <dumpdir>: バックアップファイルを含むディレクトリ。

    例:

    pg_restore -U gctest -h pc-mxxxxxxxx.pg.polardb.cn-qd-pldb1.rds.aliyuncs.com -p 1921 -d postgres -j 6 postgresdump
  4. Password: の入力を求められたら、データベースアカウントのパスワードを入力してデータ移行を開始します。

    説明

    パスワードを忘れた場合は、「データベースアカウントの管理」をご参照ください。

データ移行が完了するまで待ちます。