sql >> Base de Datos >  >> RDS >> PostgreSQL

Falta `pg_tblspc` después de la instalación de la última versión de OS X (Yosemite o El Capitan)

Resuelto... en parte.

Aparentemente, la instalación de las últimas versiones de OS X (por ejemplo, Yosemite o El Capitan) elimina algunos directorios en /usr/local/var/postgres .

Para solucionar esto, simplemente vuelva a crear los directorios que faltan:

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, de manera más concisa (gracias 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}}

Volver a ejecutar pg_ctl start -D /usr/local/var/postgres ahora inicia el servidor normalmente y, al menos para mí, sin pérdida de datos.

ACTUALIZAR

En mi sistema, algunos de esos directorios están vacíos incluso cuando se está ejecutando Postgres. ¿Tal vez, como parte de alguna operación de "limpieza", Yosemite elimina los directorios vacíos? En cualquier caso, seguí adelante y creé un archivo '.keep' en cada directorio para evitar futuras eliminaciones.

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 :Creando el .keep archivo en esos directorios creará algo de ruido en su archivo de registro, pero no parece afectar negativamente a nada más.