J'utilise Fedora 15avec PostgreSQL 9.1.4. Fedora s'est écrasé récemment, après quoi:
Une tentative de démarrage du serveur PostgreSQL:
service postgresql-9.1 start
donne
Starting postgresql-9.1 (via systemctl): Job failed. See system logs and 'systemctl status' for details.
[FAILED]
Bien que le serveur démarre normalement lorsque je démarre le serveur pour la première fois après le redémarrage du système .
Mais, une tentative d'utilisation psqldonne cette erreur:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
.s.PGSQL.5432le fichier n'est présent nulle part sur le système. A locate .s.PGSQL.5432ne produit rien.
Le journal système a ceci:
Aug 14 17:31:58 localhost systemd[1]: postgresql-9.1.service: control process exited, code=exited status=1
Aug 14 17:31:58 localhost systemd[1]: Unit postgresql-9.1.service entered failed state.
UNE
systemctl status postgresql-9.1.service
donne
postgresql-9.1.service - SYSV: PostgreSQL database server.
Loaded: loaded (/etc/rc.d/init.d/postgresql-9.1)
Active: failed since Tue, 14 Aug 2012 17:31:58 +0530; 58s ago
Process: 2811 ExecStop=/etc/rc.d/init.d/postgresql-9.1 stop (code=exited, status=1/FAILURE)
Process: 12423 ExecStart=/etc/rc.d/init.d/postgresql-9.1 start (code=exited, status=1/FAILURE)
Main PID: 2551 (code=exited, status=1/FAILURE)
CGroup: name=systemd:/system/postgresql-9.1.service
Je n'avais pas changé le paramètre par défaut de fsync, donc je suppose qu'il était réglé sur on. Je suis sur un disque dur. Le disque dur s'est écrasé.
Crash du disque dur
Le crash du disque dur a entraîné l'exécution d'un manuel fsckà l'invite et non basé sur l'interface graphique. Avec elle réparant des inodes de gazillions etc. Après quoi j'ai redémarré le système avec un Ctrl+ Alt+ Delete.
Le journal de PostgreSQL a ceci:
LOG: database system was interrupted; last known up at 2012-08-14 17:31:57 IST
LOG: database system was not properly shut down; automatic recovery in progress
LOG: record with zero length at 0/41A4E58
LOG: redo is not required
FATAL: could not access status of transaction 1
DETAIL: Could not open file "pg_multixact/offsets/0000": No such file or directory.
LOG: startup process (PID 13016) exited with exit code 1
LOG: aborting startup due to startup process failure
Mise à jour
Essayer de démarrer le serveur après avoir pris une copie du /var/lib/pgsqlrépertoire au niveau du système de fichiers et exécuté ./pg_resetxlog -f /var/lib/pgsql/9.1/data/avec le résultat xlog -f /var/lib/pgsql/9.1/data/donne toujours:
LOG: database system was interrupted; last known up at 2012-08-14 18:46:36 IST
LOG: database system was not properly shut down; automatic recovery in progress
LOG: record with zero length at 0/6000078
LOG: redo is not required
FATAL: could not access status of transaction 1
DETAIL: Could not open file "pg_multixact/offsets/0000": No such file or directory.
LOG: startup process (PID 13766) exited with exit code 1
LOG: aborting startup due to startup process failure
pg_resetxlogn'a pas fait de bien, vous êtes donc dans un territoire amusant. Avez-vous une sauvegarde de cette base de données avant le crash?
pg_multixact/offsets/0000que Pg accepte ...