start postgres postgre pg_dump mac instalar como macos homebrew postgresql

macos - pg_dump - Postgres está fallando con ''no se pudo abrir el archivo de correlación de relaciones "global/pg_filenode.map"''



postgresql download (10)

Tengo un problema con mi instalación de postgres en mi entorno de desarrollo y necesito ayuda para diagnosticarlo. Todavía no he tenido suerte en encontrar una solución.

  1. Tengo postgres 9.0.4 instalado con homebrew
  2. Estoy corriendo en OS X 10.6.8 (Snow Leopard)

Puedo iniciar y detener el servidor

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start server starting

Si intento parar aunque

$ pg_ctl -D /usr/local/var/postgres stop -s -m fast pg_ctl: PID file "/usr/local/var/postgres/postmaster.pid" does not exist Is server running?

Ok esto falta

$ ls -l /usr/local/var/postgres/ | grep postmaster $

Pero definitivamente se está ejecutando.

$ ps aux | grep postgres pschmitz 303 0.9 0.0 2445860 1428 ?? Ss 3:12PM 0:02.46 postgres: autovacuum launcher process pschmitz 304 0.9 0.0 2441760 428 ?? Ss 3:12PM 0:02.57 postgres: stats collector process pschmitz 302 0.0 0.0 2445728 508 ?? Ss 3:12PM 0:00.56 postgres: wal writer process pschmitz 301 0.0 0.0 2445728 560 ?? Ss 3:12PM 0:00.78 postgres: writer process pschmitz 227 0.0 0.1 2445728 2432 ?? S 3:11PM 0:00.42 /usr/local/Cellar/postgresql/9.0.3/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log

Y si intento acceder o usarlo obtengo esto.

$psql psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory

Pero global / pg_filenode.map definitivamente existe en

$ls -l /usr/local/var/postgres/ ... -rw------- 1 pschmitz staff 8192 Sep 16 15:48 pg_control -rw------- 1 pschmitz staff 512 Sep 16 15:48 pg_filenode.map -rw------- 1 pschmitz staff 12092 Sep 16 15:48 pg_internal.init

He intentado desinstalar y reinstalar sin ningún efecto. ¿Alguna idea sobre cómo puedo resolver esto? Me ha impedido bastante hacer algo hoy.

EDITAR resuelto

No estoy seguro de cuál fue la fuente de mi problema original con 9.0.3 porque estaba teniendo este problema

psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory

Sin embargo, como se indicó anteriormente, resultó que el proceso en ejecución fue para mi instalación anterior de postgres de 9.0.3

Creo que tenía una versión anterior de org.postgresql.postgres.plist en ~ / Library / LaunchAgents /

Tuve que:

  1. Eliminar y volver a agregar el agente de inicio
  2. Matar los procesos para 9.0.3
  3. Inicialice el db initdb /usr/local/var/postgres
  4. Reiniciar mi computadora

Y ahora lo tengo arriba y funcionando.


¡Este ( https://gist.github.com/olivierlacan/e1bf5c34bc9f82e06bc0 ) resolvió mi problema! Primero tuve que:

  1. Eliminar Postgres.app de mis Aplicaciones
  2. Eliminar el directorio / usr / local / var / postgres
  3. initdb /usr/local/var/postgres/

Luego pude iniciar / detener Postgres con estos 2 comandos:

Comienzo:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Detener:

pg_ctl -D /usr/local/var/postgres stop -s -m fast


Acabo de encontrar este problema. Se solucionó estableciendo el propietario del directorio de datos postgres al usuario postgres sin privilegios.


Eso puede ser un problema de permisos. Compruebe el propietario y el grupo de archivos de configuración en /var/lib/pgsql/9.3/data/

chown -R postgres:postgres /var/lib/pgsql/9.3/data/

resuelto el problema para mi


Estoy de acuerdo con todas las soluciones anteriores. Estaba ejecutando Postgres en un servidor, y el problema era que estaba usando un número de PUERTO que fue usado por alguna otra versión ANTERIOR de Postgres.

Solo necesitaba cambiar el puerto.


Mi solución a este problema:
Estoy corriendo postgresql-9.3

Mi archivo plist está en el siguiente directorio: /Library/LaunchDaemons/com.edb.launchd.postgresql-9.3.plist

Paso 1 dejará de postgres
1. $ sudo launchctl stop com.edb.launchd.postgresql-9.3
Iniciar postgres usando el siguiente comando (puede encontrar esta ubicación usando $ brew info postgres)
2. $ postgres -D / usr / local / var / postgres


Mi solución paso a paso en fedora:

  • /bin/systemctl stop postgresql.service (detener el servicio)
  • rm -rf /var/lib/pgsql/data (Eliminar el direcotry "data")
  • postgresql-setup initdb ( postgresql-setup initdb crear el directorio "datos")
  • /bin/systemctl start postgresql.service (Iniciar el servicio)

También es útil verificar los permisos del directorio "datos":

chown -R postgres:postgres <path_to_data_dir>

(Felicitaciones a @LuizFernandodaSilva & @user4640867 )


No estoy seguro de cuál fue la fuente de mi problema original con 9.0.3 porque estaba recibiendo este problema:

psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory

Sin embargo, como se indicó anteriormente, resulta que el proceso en ejecución fue para mi instalación anterior de postgres de 9.0.3

Creo que tenía una versión anterior de org.postgresql.postgres.plist en ~ / Library / LaunchAgents /

Tuve que:

  1. Eliminar y volver a agregar el agente de inicio
  2. Matar los procesos para 9.0.3
  3. Inicialice el db initdb /usr/local/var/postgres
  4. Reiniciar mi computadora

Y ahora lo tengo arriba y funcionando.


Tenía un antiguo valor de PGDATA confundiendo cosas.


Tuve el mismo error psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory .

Gracias por la nota # 2 arriba: ''Mata los procesos para 9.0.3''

Previamente configuré y compilé PostgreSQL. Entonces decidí reconfigurar, gmake, gmake instalar con diferentes rutas de archivos. El programa recién compilado no estaba encontrando ''pg_filenode.map'' en la ruta de archivo esperada. Matar el proceso postgres en ejecución, vaciar pgsql / data y hacer initdb nuevamente permitió la creación de una nueva base de datos.


ps aux | grep postgres ps aux | grep postgres reveló que tenía otra instancia de postgres ejecutándose en un directorio de datos temporales de una ejecución de prueba anterior. Matar este proceso solucionó el problema.