Utilisez pg_dump pour créer une sauvegarde logique d'une instance ApsaraDB RDS for PostgreSQL et exporter le fichier de sauvegarde vers un stockage local ou en vue d'une migration.
L'outil pg_dump sauvegarde une seule base de données à la fois. Pour la documentation officielle, consultez pg_dump.
Prérequis
Avant de commencer, assurez-vous que :
L'adresse IP de votre instance Elastic Compute Service (ECS) ou de votre hôte sur site est ajoutée à la liste d'autorisation d'adresses IP de l'instance RDS. Pour plus d'informations, consultez Configurer une liste d'autorisation d'adresses IP.
Votre instance ECS ou votre hôte sur site exécute la même version de PostgreSQL que votre instance RDS.
Les exemples présentés dans cette rubrique utilisent CentOS 7 et PostgreSQL 15.
Notes d'utilisation
Exécutez pg_dump avec le compte privilégié de l'instance RDS. Pour savoir comment créer un compte privilégié, consultez Créer un compte.
Sélection de l'endpoint
Toutes les commandes de sauvegarde nécessitent un endpoint de connexion (paramètre -h). Choisissez l'option appropriée en fonction de votre configuration réseau :
Internal endpoint : L'instance ECS et l'instance RDS doivent utiliser le même type de réseau. Si elles utilisent toutes deux un Virtual Private Cloud (VPC), elles doivent résider dans le même VPC. Pour plus d'informations, consultez Afficher et modifier les endpoints et les numéros de port d'une instance ApsaraDB RDS for PostgreSQL.
Public endpoint : Un Public endpoint doit être attribué à l'instance RDS avant utilisation. Pour plus d'informations, consultez Afficher et modifier les endpoints et les numéros de port et Demander ou libérer un Public endpoint.
Sauvegarder une base de données
Connectez-vous à votre instance ECS ou à votre hôte sur site et exécutez la commande suivante :
pg_dump -h '<hostname>' -U <username> -p <port> -Fc <dbname> > <dumpdir>
Paramètres
| Paramètre | Description |
|---|---|
hostname |
L'endpoint de l'instance RDS. |
username |
Le nom d'utilisateur du compte privilégié. |
port |
Le port de l'instance RDS. |
-Fc |
Génère une sortie au format personnalisé. Ce format est requis pour pg_restore et permet la restauration sélective des tables. |
dbname |
Le nom de la base de données à sauvegarder. |
dumpdir |
Le chemin de sortie et le nom de fichier du fichier de sauvegarde. |
Exemple
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -Fc zht01 > /tmp/testdb.dump
Saisissez le mot de passe du compte privilégié lorsque vous y êtes invité, puis appuyez sur Entrée.
Pour vérifier que le fichier de sauvegarde a bien été créé (sous Linux) :
ll /tmp/testdb.dump

Sauvegarder une ou plusieurs tables
Connectez-vous à votre instance ECS ou à votre hôte sur site et exécutez la commande suivante :
pg_dump -h '<hostname>' -U <username> -p <port> -t <Schema>.<table> -Fc <dbname> > <dumpdir>
Ajoutez plusieurs fois l'option -t <Schema>.<table> pour inclure des tables supplémentaires.
Paramètre supplémentaire
| Paramètre | Description |
|---|---|
-t <Schema>.<table> |
La table à sauvegarder, spécifiée sous la forme schema.table. Le schéma par défaut est Public. Omettez le préfixe du schéma pour les tables situées dans le schéma Public. |
Pour les autres paramètres (hostname, username, port, -Fc, dbname, dumpdir), reportez-vous à la section Sauvegarder une base de données.
Exemple
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -t zhttest0808 -Fc zht01 > /tmp/testdb2.dump
Saisissez le mot de passe du compte privilégié lorsque vous y êtes invité, puis appuyez sur Entrée.
Pour vérifier que le fichier de sauvegarde a bien été créé (sous Linux) :
ll /tmp/testdb2.dump

Sauvegarder une base de données en excluant certaines tables
Connectez-vous à votre instance ECS ou à votre hôte sur site et exécutez la commande suivante :
pg_dump -h '<hostname>' -U <username> -p <port> -T <table> -Fc <dbname> > <dumpdir>
Ajoutez plusieurs fois l'option -T <table> pour exclure des tables supplémentaires.
Paramètre supplémentaire
| Paramètre | Description |
|---|---|
-T <table> |
La table à exclure de la sauvegarde. |
Pour les autres paramètres, reportez-vous à la section Sauvegarder une base de données.
Exemple
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -T zhttest0808 -Fc zht01 > /tmp/testdb3.dump
Saisissez le mot de passe du compte privilégié lorsque vous y êtes invité, puis appuyez sur Entrée.
Pour vérifier que le fichier de sauvegarde a bien été créé (sous Linux) :
ll /tmp/testdb3.dump

Sauvegarder le schéma d'une base de données
Connectez-vous à votre instance ECS ou à votre hôte sur site et exécutez la commande suivante :
pg_dump -h '<hostname>' -U <username> -p <port> -s -Fc <dbname> > <dumpdir>
Paramètre supplémentaire
| Paramètre | Description |
|---|---|
-s |
Sauvegarde uniquement le schéma de la base de données. Les données ne sont pas incluses. |
Pour les autres paramètres, reportez-vous à la section Sauvegarder une base de données.
Exemple
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -s -Fc zht01 > /tmp/testdb4.dump
Saisissez le mot de passe du compte privilégié lorsque vous y êtes invité, puis appuyez sur Entrée.
Pour vérifier que le fichier de sauvegarde a bien été créé (sous Linux) :
ll /tmp/testdb4.dump

Étapes suivantes
Pour restaurer des données à partir d'un fichier de sauvegarde logique, consultez Restaurer des données à partir d'un fichier de sauvegarde logique.