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.
- Tengo postgres 9.0.4 instalado con homebrew
- 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:
- Eliminar y volver a agregar el agente de inicio
- Matar los procesos para 9.0.3
- Inicialice el db
initdb /usr/local/var/postgres
- Reiniciar mi computadora
Y ahora lo tengo arriba y funcionando.
¡Este ( https://gist.github.com/olivierlacan/e1bf5c34bc9f82e06bc0 ) resolvió mi problema! Primero tuve que:
- Eliminar Postgres.app de mis Aplicaciones
- Eliminar el directorio / usr / local / var / postgres
-
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:
- Eliminar y volver a agregar el agente de inicio
- Matar los procesos para 9.0.3
- Inicialice el db
initdb /usr/local/var/postgres
- 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.