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

ApsaraDB RDS:ApsaraDB RDS for PostgreSQLインスタンスの論理バックアップの作成

最終更新日:Jan 16, 2024

このトピックでは、pg_dumpユーティリティを使用してApsaraDB RDS for PostgreSQLインスタンスの論理バックアップを作成し、バックアップファイルをコンピューターにエクスポートする方法について説明します。

背景情報

PostgreSQLに付属のpg_dumpユーティリティを使用して、個々のデータベースをバックアップします。 詳細については、「pg_dump」をご参照ください。

前提条件

  • ECS (Elastic Compute Service) インスタンスまたはオンプレミスホストのIPアドレスがRDSインスタンスのホワイトリストに追加されます。 詳細については、「IPアドレスホワイトリストの設定」をご参照ください。

  • ECSインスタンスまたはオンプレミスホストは、RDSインスタンスと同じバージョンのPostgreSQLを実行します。

    説明

    このトピックでは、CentOS 7とPostgreSQL 15を使用します。

使用上の注意

RDSインスタンスの特権アカウントを使用することを推奨します。 これにより、必要なすべての権限が確保されます。

データベースのバックアップ

  1. ECSインスタンスまたはオンプレミスホストにログインします。 次に、次のコマンドを実行して、RDSインスタンスのデータベースをバックアップします。

    pg_dump -h '<ホスト名>' -U <ユーザー名> -p <ポート> -Fc <dbname> > <dumpdir>

    パラメーター

    説明

    hostname

    RDSインスタンスへの接続に使用されるエンドポイント。

    説明

    username

    RDSインスタンスの特権アカウントのユーザー名。

    port

    RDSインスタンスへの接続に使用されるポート。

    -Fc

    出力ファイルの形式です。 -Fcは、カスタム形式の使用を指定します。 この形式は、pg_restoreを使用して論理バックアップファイルをインポートし、データベースを復元する場合に最適です。 詳細については、「pg_dump」をご参照ください。

    dbname

    バックアップするデータベースの名前。

    dumpdir

    エクスポートする論理バックアップファイルのディレクトリと名前。

    例:

    pg_dump -h 'pgm -bpxxxxxx.pg.rds.aliyuncs.com ' -U zht -p 5432 -Fc zht01 > /tmp/testdb.dump
  2. CLIにpassword: が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

    ll /tmp/testdb.dumpコマンドを実行して、バックアップファイルが生成されているかどうかを確認できます。

    image.png

1つ以上のテーブルをバックアップする

  1. ECSインスタンスまたはオンプレミスホストにログインします。 次に、次のコマンドを実行して、RDSインスタンスのデータベースから1つ以上のテーブルをバックアップします。

    pg_dump -h '<ホスト名>' -U <ユーザー名> -p <ポート> -t <スキーマ>.<テーブル> -Fc <dbname> > <dumpdir>

    パラメーター

    説明

    hostname

    RDSインスタンスへの接続に使用されるエンドポイント。

    説明

    username

    RDSインスタンスの特権アカウントのユーザー名。

    port

    RDSインスタンスへの接続に使用されるポート。

    Schema

    バックアップするテーブルのスキーマ。 このパラメーターのデフォルト値はPublicです。 テーブルのスキーマがPublicの場合、このパラメーターを指定する必要はありません。

    table

    バックアップするテーブルの名前。 -t <Schema>.<table> を使用して、複数のテーブルを指定できます。

    -Fc

    出力ファイルの形式です。 -Fcは、カスタム形式の使用を指定します。 この形式は、pg_restoreを使用して論理バックアップファイルをインポートし、データベースを復元する場合に最適です。 詳細については、「pg_dump」をご参照ください。

    dbname

    バックアップするデータベースの名前。

    dumpdir

    エクスポートする論理バックアップファイルのディレクトリと名前。

    例:

    pg_dump -h 'pgm -bpxxxxxx.pg.rds.aliyuncs.com ' -U zht -p 5432 -t zhttest0808 -Fc zht01 > /tmp/testdb2.dump
  2. CLIにpassword: が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

    ll /tmp/testdb2.dumpコマンドを実行して、バックアップファイルが生成されているかどうかを確認できます。

    image.png

1つ以上のテーブルを除外したデータベースのバックアップ

  1. ECSインスタンスまたはオンプレミスホストにログインします。 次に、次のコマンドを実行して、1つ以上のテーブルを除外したRDSインスタンスからデータベースをバックアップします。

    pg_dump -h '<ホスト名>' -U <ユーザー名> -p <ポート> -T <テーブル> -Fc <dbname> > <dumpdir>

    パラメーター

    説明

    hostname

    RDSインスタンスへの接続に使用されるエンドポイント。

    説明

    username

    RDSインスタンスの特権アカウントのユーザー名。

    port

    RDSインスタンスへの接続に使用されるポート。

    table

    除外するテーブルの名前。 -T <table> を使用して、複数のテーブルを除外できます。

    -Fc

    出力ファイルの形式です。 -Fcは、カスタム形式の使用を指定します。 この形式は、pg_restoreを使用して論理バックアップファイルをインポートし、データベースを復元する場合に最適です。 詳細については、「pg_dump」をご参照ください。

    dbname

    バックアップするデータベースの名前。

    dumpdir

    エクスポートする論理バックアップファイルのディレクトリと名前。

    例:

    pg_dump -h 'pgm -bpxxxxxx.pg.rds.aliyuncs.com ' -U zht -p 5432 -T zhttest0808 -Fc zht01 > /tmp/testdb3.dump
  2. CLIにpassword: が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

    ll /tmp/testdb3.dumpコマンドを実行して、バックアップファイルが生成されているかどうかを確認できます。

    image.png

データが除外されたデータベースのスキーマのバックアップ

  1. ECSインスタンスまたはオンプレミスホストにログインします。 次に、次のコマンドを実行して、RDSインスタンスからデータベースのスキーマをバックアップします。

    pg_dump -h '<ホスト名>' -U <username> -p <port> -s -Fc <dbname> > <dumpdir>

    パラメーター

    説明

    hostname

    RDSインスタンスへの接続に使用されるエンドポイント。

    説明

    username

    RDSインスタンスの特権アカウントのユーザー名。

    port

    RDSインスタンスへの接続に使用されるポート。

    -s

    データベースのスキーマのみをバックアップするように指定します。 データベースのデータはバックアップされません。 詳細については、「pg_dump」をご参照ください。

    -Fc

    出力ファイルの形式です。 -Fcは、カスタム形式の使用を指定します。 この形式は、pg_restoreを使用して論理バックアップファイルをインポートし、データベースを復元する場合に最適です。 詳細については、「pg_dump」をご参照ください。

    dbname

    バックアップするデータベースの名前。

    dumpdir

    エクスポートする論理バックアップファイルのディレクトリと名前。

    例:

    pg_dump -h 'pgm -bpxxxxxx.pg.rds.aliyuncs.com ' -U zht -p 5432 -s -Fc zht01 > /tmp/testdb4.dump
  2. CLIにpassword: が表示されている場合は、RDSインスタンスの特権アカウントのパスワードを入力し、Enterキーを押します。

    ll /tmp/testdb4.dumpコマンドを実行して、バックアップファイルが生成されているかどうかを確認できます。

    image.png

参考資料

RDSインスタンスに障害があり、インスタンスのデータを復元する場合は、「論理バックアップファイルからデータを復元」の手順に従ってください。