PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

`pg_tblspc` mancante dopo l'installazione dell'ultima versione di OS X (Yosemite o El Capitan)

Risolto... in parte.

Apparentemente, l'installazione delle ultime versioni di OS X (ad es. Yosemite o El Capitan) rimuove alcune directory in /usr/local/var/postgres .

Per risolvere questo problema, ricrea semplicemente le directory mancanti:

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

O, più concisamente (grazie a 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}}

Riesecuzione di pg_ctl start -D /usr/local/var/postgres ora avvia il server normalmente e, almeno per me, senza alcuna perdita di dati.

AGGIORNAMENTO

Sul mio sistema, alcune di queste directory sono vuote anche quando Postgres è in esecuzione. Forse, come parte di qualche operazione di "pulizia", ​​Yosemite rimuove le directory vuote? In ogni caso, sono andato avanti e ho creato un file '.keep' in ogni directory per evitare future cancellazioni.

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

Nota :Creazione del .keep file in quelle directory creerà del rumore nel tuo file di registro, ma non sembra influenzare negativamente nient'altro.