Il existe deux outils à examiner, selon la façon dont vous avez créé le fichier de vidage.
Votre première source de référence devrait être la page pg_dump(1)
de manuel car c'est ce qui crée le vidage lui-même. Ça dit:
Les vidages peuvent être générés au format de fichier script ou archive. Les vidages de script sont des fichiers en texte brut contenant les commandes SQL requises pour reconstruire la base de données dans son état au moment de son enregistrement. Pour restaurer à partir d'un tel script, alimentez-le dans psql (1). Les fichiers de script peuvent être utilisés pour reconstruire la base de données même sur d'autres machines et d'autres architectures; avec quelques modifications même sur d'autres produits de base de données SQL.
Les autres formats de fichier d'archive doivent être utilisés avec pg_restore (1) pour reconstruire la base de données. Ils permettent à pg_restore d'être sélectif sur ce qui est restauré, ou même de réorganiser les éléments avant de les restaurer. Les formats de fichiers d'archive sont conçus pour être portables entre les architectures.
Cela dépend donc de la façon dont il a été vidé. Vous pouvez probablement le comprendre à l'aide de l'excellente file(1)
commande - s'il mentionne du texte ASCII et / ou SQL, il devrait être restauré avec psql
sinon vous devriez probablement utiliserpg_restore
La restauration est assez simple:
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
ou
pg_restore -U username -d dbname -1 filename.dump
Consultez leurs pages de manuel respectives - il existe de nombreuses options qui affectent le fonctionnement de la restauration. Vous devrez peut-être nettoyer vos bases de données "en direct" ou les recréer à partir de template0 (comme indiqué dans un commentaire) avant la restauration, selon la façon dont les vidages ont été générés.
Steven Schlansker
la source
-d
et-f
en même temps.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
, voir ici: stackoverflow.com/questions/27882070/…créer une sauvegarde
-F c est un format personnalisé (compressé et capable de le faire en parallèle avec -j N) -b inclut des blobs, -v est verbeux, -f est le nom du fichier de sauvegarde
Restore depuis une sauvergarde
important de définir -h localhost - option
la source
Vous devrez peut-être être connecté en tant que
postgres
afin d'avoir tous les privilèges sur les bases de données.pg_dump / pg_restore
commutateur
-F
spécifiez le format du fichier de sauvegarde:c
utilisera le format PostgreSQL personnalisé qui est compressé et entraîne la plus petite taille de fichier de sauvegarded
pour le répertoire où chaque fichier est une tablet
pour l'archive TAR (plus grand que le format personnalisé)-h
/--host
Spécifie le nom d'hôte de la machine sur laquelle le serveur s'exécute-W
/--password
Forcerpg_dump
à demander un mot de passe avant de se connecter à une base de donnéesrestaurer la sauvegarde:
Le paramètre
-C
doit créer une base de données avant d'importer des données. Si cela ne fonctionne pas, vous pouvez toujours créer une base de données, par exemple. avec commande (en tant qu'utilisateurpostgres
ou autre compte autorisé à créer des bases de données)createdb db_name -O owner
pg_dump / psql
Si vous n'avez pas spécifié l'argument,
-F
le format SQL en texte brut par défaut a été utilisé (ou avec-F p
). Ensuite, vous ne pouvez pas utiliserpg_restore
. Vous pouvez importer des données avecpsql
.sauvegarde:
restaurer:
la source
postgres
) a un mot de passe défini, l'-W
option doit être utilisée. Par exemple, sur Ubuntu sans rien fairesu postgres
depuis le terminal,$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
c'est la commande qui a fonctionné pour moi pour restaurer ma sauvegarde sur mon hôte local. Notez que cette-h
option est nécessaire.-W
option n'est jamais indispensable.pg_dump
demandera automatiquement un mot de passe si le serveur demande une authentification par mot de passe. Vous pouvez également utiliser laPGPASSWORD
variable env, si vous utilisez des mots de passe en texte brut.-h
est nécessaire si la valeur par défautPGHOST
n'est pas applicable. Ces options sont communes à de nombreux utilitaires PostgreSQL, donc pas essentielles pour répondre à cette question (cela dépend fortement de votre configuration).pg_dump/psql
partie d' option me convient. mais la 1ère partiepg_dump/pg_restore
ne me convient pas pour la restauration. Je vous remercie.-Fc
POSTGRESQL 9.1.12
DÉVERSER:
entrez le mot de passe utilisateur et appuyez sur Entrée.
RESTAURER:
entrez le mot de passe utilisateur et appuyez sur Entrée.
la source
Voici ma version
pg_dump
dont j'utilise pour restaurer la base de données:ou utilisez
psql
:où
-h
hôte,-p
port,-u
nom d'utilisateur de connexion,-d
nom de la base de donnéesla source
my_new_database
devrait déjà exister lors de l'utilisationpsql
, non?Sauvegarde et restauration avec GZIP
sauvegarde
restaurer
https://www.postgresql.org/docs/9.1/static/backup-dump.html
la source
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Pour obtenir les autorisations d'opérer sur la base de données. Pensez également au--clean
drapeau lorsque le dumping, qui effacera toutes les données existantes, pourrait être utile.la source
Cela a fonctionné pour moi:
la source
--no-owner
ça m'a vraiment aidé.1. ouvrez le terminal.
2. sauvegarder votre base de données avec la commande suivante
votre bac postgres - /opt/PostgreSQL/9.1/bin/
votre serveur de base de données source - 192.168.1.111
l'emplacement et le nom de votre fichier de sauvegarde - /home/dinesh/db/mydb.backup
votre nom de base de données source - mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --username "postgres" --no-password --format custom --blobs --file "/ home / dinesh / db /mydb.backup "" ma base de données "
3. restaurez le fichier mydb.backup dans la destination.
votre serveur de destination - localhost
le nom de votre base de données de destination - mydatabase
créer une base de données pour restaurer la sauvegarde.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"
restaurer la sauvegarde.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/ home / dinesh / db / mydb. sauvegarde "
la source
Si vous créez une sauvegarde à l'aide de pg_dump, vous pouvez facilement la restaurer de la manière suivante:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
la source
1) Ouvrez le terminal psql.
2) Décompressez / décompressez le fichier de vidage.
3) Créez une base de données vide.
4) utilisez la commande suivante pour restaurer le fichier .dump
la source
essaye ça:
Restaurer la base de données psql à partir du fichier .sql
la source
Comme indiqué ci-dessous, vous pouvez utiliser la commande psql pour restaurer le fichier de vidage:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
si vous devez définir un nom d'utilisateur, ajoutez simplement le nom d'utilisateur après la commande comme:
la source
essayer:
la source
La restauration d'un fichier de sauvegarde postgres dépend de la façon dont vous avez effectué la sauvegarde en premier lieu.
Si vous avez utilisé pg_dump avec -F c ou -F d, vous devez utiliser pg_restore sinon vous pouvez simplement utiliser
9 façons de sauvegarder et de restaurer des bases de données PostgreSQL
la source
Essayez de voir si les commandes suivantes peuvent vous aider:
la source
Désolé pour le nécropost, mais ces solutions n'ont pas fonctionné pour moi. Je suis en postgres 10. Sous Linux:
service postgresql-10 restart
Remplacez le répertoire par l'emplacement de mon fichier backup.sql et exécutez:
psql postgres -d database_name -1 -f backup.sql
-database_name est le nom de ma base de données
-backup.sql est le nom de mon fichier de sauvegarde .sql.
la source
J'avais des problèmes d'authentification lors de l'exécution de pg_dump, j'ai donc déplacé mon fichier de vidage
dans le répertoire temporaire, puis a couru
Si vous avez un grand vidage de base de données, vous souhaiterez peut-être simplement créer un autre répertoire où votre utilisateur actuel et l'utilisateur postgres peuvent accéder et y placer le fichier de vidage de base de données.
la source
Si vous avez un fichier SQL de sauvegarde, vous pouvez facilement le restaurer. Suivez simplement les instructions données ci-dessous
Tapez le mot de passe de votre utilisateur postgres si nécessaire et laissez Postgres faire son travail. Ensuite, vous pouvez vérifier le processus de restauration.
la source
Si vous souhaitez sauvegarder vos données ou restaurer des données à partir d'une sauvegarde, vous pouvez exécuter les commandes suivantes:
Pour créer une sauvegarde de vos données, accédez à votre répertoire postgres \ bin \ comme
C:\programfiles\postgres\10\bin\
et tapez la commande suivante:Pour restaurer les données à partir d'une sauvegarde, accédez à votre répertoire postgres \ bin \ comme
C:\programfiles\postgres\10\bin\
et tapez la commande ci-dessous:Veuillez vous assurer que le fichier de sauvegarde existe.
la source
Voir ci-dessous l'exemple de son fonctionnement
C: / Program Files / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "newDatabase" --no-password --verbose
" C: \ Users \ Yogesh \ Downloads \ new Download \ DB.backup "
la source