PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

`pg_tblspc` manquant après l'installation de la dernière version d'OS X (Yosemite ou El Capitan)

Résolu... en partie.

Apparemment, l'installation des dernières versions d'OS X (par exemple Yosemite ou El Capitan) supprime certains répertoires dans /usr/local/var/postgres .

Pour résoudre ce problème, il vous suffit de recréer les répertoires manquants :

mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase

Ou, plus concis (merci à Nate ):

mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}

Réexécution de pg_ctl start -D /usr/local/var/postgres démarre maintenant le serveur normalement et, du moins pour moi, sans aucune perte de données.

MISE À JOUR

Sur mon système, certains de ces répertoires sont vides même lorsque Postgres est en cours d'exécution. Peut-être, dans le cadre d'une opération de "nettoyage", Yosemite supprime-t-il tous les répertoires vides ? Dans tous les cas, je suis allé de l'avant et j'ai créé un fichier '.keep' dans chaque répertoire pour empêcher une future suppression.

touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep

Remarque :Création du .keep fichier dans ces répertoires créera du bruit dans votre fichier journal, mais ne semble pas affecter négativement quoi que ce soit d'autre.