このトピックでは、オープンソースのPostgreSQLが提供するpg_basebackupユーティリティを使用して、ApsaraDB RDS for PostgreSQLインスタンスの完全バックアップを作成し、バックアップファイルをコンピューターにエクスポートする方法について説明します。
前提条件
- ECSインスタンスまたはローカルホストのIPアドレスがRDSインスタンスのホワイトリストに追加されます。 詳細については、「IPアドレスホワイトリストの設定」をご参照ください。
- ECSインスタンスまたはローカルホストは、RDSインスタンスと同じバージョンのPostgreSQLを実行します。
背景情報
pg_basebackupは、PostgreSQLインスタンスのすべてのデータをバックアップします。 バックアップファイルは、ポイントインタイムリカバリに使用できます。 詳細については、「pg_basebackup」をご参照ください。このトピックでは、完全バックアップを作成する方法の例として、CentOS 7とPostgreSQL 12を使用します。
注意事項
RDSインスタンスの特権アカウント、またはREPLICATION権限を持つアカウントを使用することを推奨します。 そうしないと、作成中に権限の問題が発生する可能性があります。
手順
説明 pg_basebackupは、単一のデータベースまたはデータベースオブジェクトをバックアップできません。 単一のデータベースまたはデータベースオブジェクトをバックアップする方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスの論理バックアップの作成」をご参照ください。
- ECSインスタンスまたはローカルホストにログインします。 次に、次のコマンドを実行して、RDSインスタンスからデータベースをバックアップします。
pg_basebackup -Ft -Pv -Xs -z -D <backupdir> -Z5 -h '<ホスト名>' -p <ポート> -U <ユーザー名> -W
このコマンドのパラメーターを次の表に示します。 詳細については、「pg_basebackup」をご参照ください。
パラメーター 説明 backupdir エクスポートされるバックアップファイルのディレクトリ。 システムは自動的にこのディレクトリを作成します。 ただし、このディレクトリがすでに存在し、空でない場合、システムはエラーを報告します。 hostname RDSインスタンスへの接続に使用するエンドポイント。 ECSインスタンスとRDSインスタンスが同じAlibaba Cloudアカウントで同じリージョンにデプロイされ、同じネットワークタイプを持つ場合は、内部エンドポイントを使用することを推奨します。 両方のネットワークタイプがVPCの場合、2つのインスタンスは同じVPC内にある必要があります。
他のシナリオでは、パブリックエンドポイントを使用します。
説明 パブリックエンドポイントを使用してRDSインスタンスにアクセスする場合は、パブリックエンドポイントを申請していることを確認してください。 詳細については、「パブリックエンドポイントの申請またはリリース」をご参照ください。port RDSインスタンスへの接続に使用するポート。 username RDSインスタンスのユーザー名。 例:
pg_basebackup -Ft -Pv -Xs -z -D /pg12/backup1/ -Z5 -h pgm-bpxxxxx.pg.rds.aliyuncs.com -p 1433 -U test1 -W
パスワード:
が表示されたら、RDSインスタンスのユーザー名のパスワードを入力し、enterキーを押します。
参考資料
バックアップファイルを使用してデータを復元する場合は、「連続アーカイブバックアップを使用したリカバリ」をご参照ください。