7
votes

PostgreSQL 9.0.13 faire un pg_restore mais aucune preuve que l'espace disque est utilisé

J'essaie de restaurer un pg_dump prise avec cette commande d'un autre serveur.

SELECT pg_size_pretty(pg_database_size('salesDB'));


1 commentaires

Sur une note latérale, félicitations pour avoir suivi la libération de patch actuelle. Je vois trop de 9.0.4 est autour d'ici.


3 Réponses :


6
votes

Essayez-le sans le drapeau "-f" dans la commande pg_restore. De plus, vous voudrez peut-être essayer de créer la base de données vides de venteDB et de passer dans "-D SESCHESDB". Notez que le nom de base de données se pliera à minuscule sauf si elle a été créée dans des guillemets à double guillemets.

Exemple supplémentaire Étapes pour montrer que le DB pousse en taille car la restauration est en cours d'exécution P>

-- sample pg_dump command
pg_dump -f testdb.out -Fc src_test_db

-- create the db to restore into
createdb sometestdb

-- restore with 4 parallel jobs, from the "testdb.out" file, into the db "sometestdb"
time pg_restore --dbname=sometestdb --jobs=4 testdb.out

-- In another window, every few seconds, you can see the db growing
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 4920 MB

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 4920 MB

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 5028 MB

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 5371 MB


3 commentaires

Ce que vous dites que je devrais voir la taille de la DB poussant à chaque fois que j'exécute la fonction pg_database_size pendant la restauration? Et jusqu'à ce que je vois que je ne l'ai pas correct?


@Wadejernigan, j'ai édité ma réponse pour montrer que la DB pousse pendant le pg_restore.


Résolu - Erreur de syntaxe Le paramètre -f est inutile autant que je puisse dire. Je devais spécifier le fichier pour pg_restore à consommer sans aucun indicateur, uniquement comme dernier élément de la ligne de commande. Le paramètre -D SalesDB était nécessaire. J'ai 16 CPU alors je mets -J 15, cela semblait être très utile. ma ligne de commande finale était



2
votes

me semble comme si vous avez dit pg_restore d'imprimer le contenu de la décharge à l'écran, je ne la restauise pas à la base de données. Avez-vous spécifié un - dbname ?

Personnellement, je pense que pg_restore Syntaxe de ligne de commande de pg_restore n'est pas particulièrement intuitive, et si je reçois le temps, il s'agit d'une des choses que j'aimerais essayer de m'améliorer à PG.


1 commentaires

Vous ne pouvez pas utiliser --DBName si vous spécifiez un -f (nom de fichier) mais oui, il semble que j'écris seulement à l'écran. Donc j'ai enlevé le commutateur -verbose. Maintenant, je n'ai rien sur l'écran depuis 14 heures et aucune preuve que la base de données augmente non plus. GRRR J'ai besoin d'un moyen de prouver que les données se rendent dans la base de données. Je vais essayer certaines déclarations de sélection. J'aurais aimé signaler une taille croissante.



5
votes

Résolution - Erreur de syntaxe Le paramètre -f ( SORTIE FILE) est inutile autant que je puisse dire. Je devais spécifier le fichier pour pg_restore pour consommer sans aucun drapeau, uniquement comme dernier élément de la ligne de commande. Le paramètre SalesDB était nécessaire. J'ai 16 cpus donc je définir -j 15 , cela semblait être très utile. Ma ligne de commande finale était xxx

puis je reçois des incréments de taille très rapide avec la fonction pg_database_size .

Il en pousse comme si cela devrait.


2 commentaires

Je ne connais pas totalement comment ce forum fonctionne, mais pointez sur BMA. Il avait raison, merci.


Je pense que vous venez de "accepter" la réponse que vous avez choisi comme la bonne.