restaurar postgres pg_dump ejemplos consola sql postgresql dump

postgres - psql invalid command / N mientras restaura sql



restaurar backup postgresql (9)

Estoy intentando restaurar mi archivo de volcado, pero causó un error:

psql:psit.sql:27485: invalid command /N

¿Hay una solución? Busqué, pero no obtuve una respuesta clara.


En mi experiencia reciente, es posible obtener este error cuando el problema real no tiene nada que ver con los caracteres de escape o las nuevas líneas. En mi caso, había creado un volcado de la base de datos A con
pg_dump -a -t table_name > dump.sql
y estaba tratando de restaurarlo a la base de datos B con
psql < dump.sql (después de actualizar los psql < dump.sql adecuados, por supuesto)
Lo que finalmente descubrí fue que el volcado, aunque era data-only (la opción -a , de modo que la estructura de la tabla no forma parte explícita del volcado), era específico del esquema. Eso significaba que sin modificar manualmente el volcado, no podría usar un volcado generado desde schema1.table_name para llenar schema2.table_name . La modificación manual del volcado fue fácil, el esquema se especifica en las primeras 15 líneas más o menos.


Instalar postgresql- (su versión) -postgis-scripts


La mayoría de las veces, la solución es instalar el paquete postgres-contrib .


Para mí, usando postgreSQL 10 en SUSE 12, resolví el error invalid command /N aumentando el espacio en disco. La falta de espacio en disco me estaba causando el error. Puede ver si se queda sin espacio en el disco si observa el sistema de archivos al que van sus datos en el resultado df -h . Si el sistema / montaje de archivos está al 100% utilizado, después de hacer algo como psql -f db.out postgres (ver https://www.postgresql.org/docs/current/static/app-pg-dumpall.html ) es probable que necesidad de aumentar el espacio en disco disponible.


Postgres usa "/ N" como símbolo sustituto para el valor NULL. Pero todos los comandos psql comienzan con el símbolo "/" invertido. De modo que puede obtener estos mensajes, cuando probablemente la declaración de copia falle, pero continúa una carga de volcado. Este mensaje es solo una falsa alarma. Debe buscar líneas antes por motivos de por qué falla la instrucción COPY.

Es posible cambiar psql al modo "detenerse en el primer error" y encontrar el error:

psql -v ON_ERROR_STOP=1


Puede generar su vuelco utilizando instrucciones INSERTS, con el parámetro --inserts.


Sé que esta es una publicación anterior, pero encontré otra solución: postgis no estaba instalado en mi nueva versión, lo que me causó el mismo error en pg_dump


También me he encontrado con este error en el pasado. Pavel está en lo cierto, generalmente es una señal de que algo en el script creado por pg_restore está fallando. Debido a todos los errores "/ N", no está viendo el problema real en la parte superior de la salida. Yo sugiero:

  1. insertar una única tabla pequeña (por ejemplo, pg_restore --table=orders full_database.dump > orders.dump )
  2. si no tiene uno pequeño, elimine un montón de registros de la secuencia de comandos de restauración; solo me aseguré de que ./ fuera la última fila para cargar (por ejemplo, abrir orders.dump y eliminar orders.dump registros)
  3. mire la salida estándar, y una vez que encuentre el problema, siempre puede soltar la mesa y volver a cargar

En mi caso, todavía no tenía instalada la extensión "hstore", por lo que el script fallaba en la parte superior. Instalé hstore en la base de datos de destino y volví a estar en el negocio.


Voy el mismo mensaje de error cuando trato de restaurar desde un volcado binario. Simplemente utilicé pg_restore para restaurar mi volcado y evitar completamente los errores /N , por ejemplo

pg_restore -c -F t -f your.backup.tar

Explicación de los interruptores:

-f, --file=FILENAME output file name -F, --format=c|d|t backup file format (should be automatic) -c, --clean clean (drop) database objects before recreating