Utilisez pg_restore pour restaurer les données d'un fichier de sauvegarde logique .dump vers une instance ApsaraDB RDS for PostgreSQL ou une base de données PostgreSQL locale.
Pour de petits volumes de données, comme une seule table, la restauration d'une sauvegarde logique est simple. Pour les ensembles de données volumineux, restaurez une sauvegarde physique complète vers une nouvelle instance RDS, puis utilisez Data Transmission Service (DTS) pour migrer les données vers l'instance d'origine. Pour connaître toutes les méthodes de restauration, consultez Restoration.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Créé une sauvegarde logique pour votre instance RDS. Consultez Create a logical backup for an ApsaraDB RDS for PostgreSQL instance
Le fichier de sauvegarde
.dumpdisponible sur l'instance Elastic Compute Service (ECS) ou l'hôte local depuis lequel vous exécuterezpg_restore
Notes d'utilisation
Ne restaurez pas les données dans la base de données par défaut
postgres.Lors de la restauration d'une seule table,
pg_restorene restaure pas les objets de base de données dont dépend la table. Si ces dépendances sont absentes de la base de données cible, la restauration peut échouer.
Restaurer une base de données
Connectez-vous à l'instance ECS ou à l'hôte local qui stocke le fichier de sauvegarde et exécutez la commande suivante :
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -c <dumpdir>
| Paramètre | Description |
|---|---|
hostname |
L'endpoint utilisé pour se connecter à l'instance RDS. Pour utiliser un endpoint interne, l'instance ECS et l'instance RDS doivent utiliser le même type de réseau. Si elles utilisent toutes deux le type de réseau VPC, elles doivent se trouver dans le même VPC. Consultez View and change the endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance. Pour utiliser un endpoint public, vous devez d'abord en allouer un. Consultez Apply for or release a public endpoint on an ApsaraDB RDS for PostgreSQL instance. |
username |
Le nom d'utilisateur du compte privilégié de l'instance RDS. |
port |
Le port utilisé pour se connecter à l'instance RDS. |
dbname |
Le nom de la base de données cible. |
-c (facultatif) |
Supprime les objets de la base de données avant de les recréer. Consultez pg_restore. |
dumpdir |
Le chemin d'accès au fichier de sauvegarde logique. |
Exemple :
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht02 -c /tmp/testdb.dump
Lorsque l'invite Password: s'affiche, saisissez le mot de passe du compte privilégié et appuyez sur Entrée.

Ignorez les alertes provenant de l'extension plpgsql intégrée.
Restaurer une table
Connectez-vous à l'instance ECS ou à l'hôte local qui stocke le fichier de sauvegarde et exécutez la commande suivante :
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> -c <dumpdir>
L'option -t <table> spécifie la table à restaurer. Tous les autres paramètres sont identiques à ceux décrits dans Restore a database.
| Paramètre | Description |
|---|---|
table |
Le nom de la table à restaurer. |
Exemple :
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht01 -t zhttest0808 -c /tmp/testdb2.dump
Lorsque l'invite Password: s'affiche, saisissez le mot de passe du compte privilégié et appuyez sur Entrée.

Lors de la restauration d'une seule table, les objets de base de données dont dépend la table ne sont pas restaurés. Assurez-vous que ces objets existent déjà dans la base de données cible, sinon la restauration risque d'échouer.
Restaurer le schéma d'une base de données
Pour restaurer uniquement le schéma d'une base de données sans restaurer les données, connectez-vous à l'instance ECS ou à l'hôte local et exécutez la commande suivante :
pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -s <dumpdir>
L'option -s restaure uniquement le schéma sans charger les données. Tous les autres paramètres sont identiques à ceux décrits dans Restore a database.
Exemple :
pg_restore -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -d zht03 -s /tmp/testdb2.dump
Lorsque l'invite Password: s'affiche, saisissez le mot de passe du compte privilégié et appuyez sur Entrée.

Ignorez les alertes provenant de l'extension plpgsql intégrée.