Parfois, lors de la restauration d’une base de données multi-schéma à partir d’un fichier de sauvegarde, vous pouvez souhaiter exclure un ou plusieurs schémas, pour une raison ou une autre.
Par exemple, si vous restaurez une énorme base de données à des fins de développement, vous ne voudrez peut-être pas restaurer un schéma dont vous savez qu’il contient beaucoup de données, ce qui pourrait allonger le processus de restauration.
pg_restore l’utilitaire de ligne de commande permet d’exclure un ou plusieurs schémas lors de la restauration d’une base de données à partir d’un fichier de sauvegarde créé par pg_dump. Vous pouvez utiliser son -N
ou --exclude-schema
option pour restaurer des objets dans le schéma nommé.
PostgreSQLName prend en charge diverses fonctionnalités utiles de sauvegarde et de restauration de bases de données. Dans ce guide, nous montrerons comment exclure un schéma lors de la restauration d’un PostgreSQLName base de données multi-schéma à partir d’un fichier de sauvegarde.
Exclure un schéma lors de la restauration d’une base de données PostgreSQL
Avant de démarrer le processus de restauration, si vous l’effectuez sur un nouveau serveur, assurez-vous que le propriétaire ou l’utilisateur de la base de données tel que défini dans la sauvegarde est créé sur le serveur :
$ pg_restore -d myappdb -N schema_name myappdb.dump OR $ pg_restore -d myappdb --exclude-schema=schema_name myappdb.dump
Dans la commande ci-dessus, le drapeau :
-d
– est utilisé pour spécifier le nom de la base de données cible.-N
– spécifie le nom du schéma à exclure lors du processus de restauration.myappdb.dump
– est le nom du fichier de sauvegarde de la base de données. Notez que le fichier doit être dans l’un des formats de texte non brut tels que créés par pg_dump.
Pour exclure plusieurs schémas, utilisez plusieurs -N
drapeaux comme indiqué.
$ pg_restore -d myappdb -N schema_name1 -N schema_name2 -N schema_name3 myappdb.dump OR $ pg_restore -d myappdb --exclude-schema=schema_name1 --exclude-schema=schema_name2 --exclude-schema=schema_name3 myappdb.dump
Tu peux dire pg_restore pour créer la base de données spécifiée par le -d
option si elle n’existe pas, en utilisant l’option -C
ou --create
basculer comme suit :
$ pg_restore -d myappdb -C -N schema_name myappdb.dump OR $ pg_restore -d myappdb --create -N schema_name myappdb.dump
Vous devez noter qu’au cas où le -C
switch est utilisé, comme dans la commande précédente, le nom de la base de données monappdb spécifié à l’aide de la -d
Le commutateur n’est utilisé que pour exécuter le « SUPPRIMER LA BASE DE DONNÉES myappdb » et « CRÉER UNE BASE DE DONNÉES myappdb», toutes les données sont restaurées dans le nom de la base de données qui existe dans le fichier de sauvegarde.
Pour supprimer ou nettoyer et recréer la base de données cible avant de s’y connecter, utilisez la commande --clean
comme indiqué.
$ pg_restore --clean -d testdb -n schema_name myappdb.dump
Par défaut, si une erreur survient lors de l’exécution du SQL commande pendant le processus de restauration, pg_restore poursuivra le processus et affichera simplement les erreurs.
Vous pouvez laisser pg-restauration terminer lorsqu’une erreur est rencontrée en ajoutant le -e
ou --exit-on-error
option:
$ pg_restore -e -d testdb -n schema_name myappdb.dump OR $ pg_restore --exit-on-error -d testdb -n schema_name myappdb.dump
Pour accélérer le processus de restauration, vous pouvez utiliser le -j
ou --number-of-jobs
pour fonctionner simultanément. Cette option garantit que des étapes telles que la création d’index, la création de contraintes ou le chargement de données seront exécutées simultanément à l’aide de sessions simultanées jusqu’au nombre spécifié de travaux.
Cependant, cela dépend fortement du nombre de cœurs de processeurs et de la configuration des disques sur le client, le serveur et le réseau :
$ pg_restore -j 4 --clean -d testdb -n schema_name myappdb.dump OR $ pg_restore --number-of-jobs=4 --clean -d testdb -n schema_name myappdb.dump
Vous pouvez en savoir plus sur pg_restore en consultant sa page de manuel comme indiqué.
$ man pg_restore
C’est tout ce que nous avions pour vous dans ce petit guide. Si vous avez des commentaires ou des questions, utilisez le formulaire de commentaires ci-dessous pour nous joindre.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous sommes reconnaissants pour votre soutien sans fin.