PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

`pg_tblspc` fehlt nach Installation der neuesten Version von OS X (Yosemite oder El Capitan)

Gelöst... teilweise.

Anscheinend werden bei der Installation der neuesten Versionen von OS X (z. B. Yosemite oder El Capitan) einige Verzeichnisse in /usr/local/var/postgres entfernt .

Um dies zu beheben, erstellen Sie einfach die fehlenden Verzeichnisse neu:

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

Oder kurz gesagt (danke an 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}}

pg_ctl start -D /usr/local/var/postgres erneut ausführen startet den Server jetzt normal und zumindest bei mir ohne Datenverlust.

AKTUALISIEREN

Auf meinem System sind einige dieser Verzeichnisse leer, selbst wenn Postgres ausgeführt wird. Vielleicht entfernt Yosemite als Teil einer "Reinigungs"-Operation alle leeren Verzeichnisse? Auf jeden Fall habe ich weitergemacht und in jedem Verzeichnis eine '.keep'-Datei erstellt, um zukünftiges Löschen zu verhindern.

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

Hinweis :Erstellen der .keep Datei in diesen Verzeichnissen erzeugt etwas Rauschen in Ihrer Protokolldatei, scheint aber nichts anderes negativ zu beeinflussen.