Je n'ai toujours pas trouvé de solution, help !
]]>Le Backup est un peu costaud, il pèse 88.8Mo pour :
- 107 Tables
- 684 fonctions
J'ai placé le timeout à 15 minutes et ça ne suffit pas, alors que directement en ligne de commande ça met moins de 2 minutes :s
]]>Les messages indiquant les checkpoint trop fréquents sont normaux, et indiquent que des données sont bien restaurées. Si aucune donnée n'est visible sur le serveur, peut-être s'agit-il d'une très grosse table mettant plus de 5 minutes à se restaurer, et étant donc annulée par le timeout php ?
]]>ex:
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] pg_restore: connecting to database for restore\r
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] pg_restore: creating DATABASE caa_cad\r
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] pg_restore: [archiver (db)] Error while PROCESSING TOC:\r
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] pg_restore: [archiver (db)] Error from TOC entry 4064; 1262 4443756 DATABASE caa_cad postgres\r
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] pg_restore: [archiver (db)] could not execute query: ERROR: database "caa_cad" already exists\r
[Mon Jun 03 17:14:09 2013] [error] [client 127.0.0.1] Command was: CREATE DATABASE caa_cad WITH TEMPLATE = template0 ENCODING = 'LATIN1';\r
Ça se termine ainsi cependant :
2013-06-03 17:03:00 CEST LOG: checkpoints are occurring too frequently (15 seconds apart)
2013-06-03 17:03:00 CEST HINT: Consider increasing the configuration parameter "checkpoint_segments".
Si j'exécute le .bat via l'exec() de PHP j'ai le même souci, mais si je l’exécute manuellement c'est bon. C'est donc bien un problème du droit entre les utilisateurs Windows (ici système) et Postgresql.
J'ai modifié le max_execution_time pour patienter 5 minutes, mais pg_restore ne retourne aucune erreur après ça.
Au final, la base existe bien avec une partie des fonctions, mais aucune table.
]]>De plus, par défaut la durée d'un script php est limitée par défaut il me semble, il sera peut-être aussi nécessaire de la modifier (max_execution_time).
]]>Mais en regardant le gestionnaire des tâches, c'est l'utilisateur "Système" qui ne fonctionne pas, car ça marche avec l'administrateur (commande directe depuis l'invite).
]]>mais c'est surement un problème de droits
]]>