このトピックでは、オープンソースの PostgreSQL が提供する pg_basebackup ユーティリティを使用して、ApsaraDB for PostgreSQL インスタンスの完全バックアップを作成し、バックアップファイルをコンピューターにエクスポートする方法について説明します。
前提条件
ECS インスタンスまたはローカルホストの IP アドレスが、RDS インスタンスのホワイトリストに追加されていること。 詳細については、「IP アドレスホワイトリストを設定する」をご参照ください。
ECS インスタンスまたはローカルホストで、RDS インスタンスと同じバージョンの PostgreSQL が実行されていること。
背景情報
pg_basebackup は、PostgreSQL インスタンスのすべてのデータをバックアップします。 バックアップファイルは、ポイントインタイムリカバリに使用できます。 詳細については、「pg_basebackup」をご参照ください。
このトピックでは、完全バックアップの作成方法の例として、CentOS 7 と PostgreSQL 15 を使用します。
使用上の注意
RDS インスタンスの特権アカウント、または REPLICATION 権限を持つアカウントを使用することをお勧めします。 そうしないと、作成中に権限の問題が発生する可能性があります。
手順
pg_basebackup は、単一のデータベースまたはデータベースオブジェクトをバックアップできません。 単一のデータベースまたはデータベースオブジェクトをバックアップする方法の詳細については、「ApsaraDB for PostgreSQL インスタンスの論理バックアップを作成する」をご参照ください。
ECS インスタンスまたはローカルホストにログインします。 次に、次のコマンドを実行して、RDS インスタンスからデータベースをバックアップします。
pg_basebackup -Ft -Pv -Xs -z -D <backupdir> -Z5 -h '<hostname>' -p <port> -U <username> -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 /pg15/backup1/ -Z5 -h pgm-bp****.pg.rds.aliyuncs.com -p 5432 -U test1 -WPassword:が表示されたら、RDS インスタンスのユーザー名のパスワードを入力し、Enter キーを押します。base backup completedが表示された場合は、バックアップは成功です。
関連情報
バックアップファイルを使用してデータを復元する場合は、「継続アーカイブバックアップを使用したリカバリ」に記載されている手順に従ってください。