Réponses:
Vous pouvez voir une progression approximative à l'aide de la liste TOC.
Tout d'abord, récupérez la liste des objets à restaurer:
pg_restore -l -f list.toc db.dump
Ensuite, vous pouvez voir la liste de la table des matières ligne par ligne et comparer la sortie de verbeux ou de la requête pg_stat_activity pour voir où se trouve pg_restore dans la liste de la table des matières.
Ce n'est qu'une estimation approximative. D'abord parce que chaque élément de la liste de la table des matières peut prendre un temps vraiment différent à charger (par exemple, les schémas sont rapides, mais le chargement des données des grandes tables et des index de construction ne le sont pas), et si vous utilisez -j vous aurez un élément en cours de restauration avant la fin d'un précédent. De plus, je ne suis pas sûr à 100% si pg_restore suit la liste des tables des matières précisément si vous n'utilisez pas -L, mais je pense que oui.
Valable pour les environnements Unix / Linux:
L'utilitaire Pipe Viewer (pv) peut être utilisé pour suivre la progression de la sauvegarde. Le pv anime votre shell avec des détails sur le temps écoulé et les octets transférés.
Ci-dessous, l'exemple de vidage à l'aide des utilitaires pv et split pour conserver les gros fichiers de vidage en petits morceaux. Il peut être utile de le transférer ultérieurement vers un autre emplacement.
# dump the PREDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=pre-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".PREDATA.sql"
# dump the POSTDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=post-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".POSTDATA.sql"
# dump the DATA into the .DATA.dump compressed (binary) file
pg_dump -Fc --section=data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".DATA.dump"
L'inconvénient - cette approche ne fonctionne pas, si l'option pg_dump -Fd (dump to folder) est utilisée.