unrecognized parameter instalar idle_in_transaction_session_timeout postgresql psql

parameter - postgresql instalar



Postgresql-parámetro de configuración no reconocido (2)

De acuerdo con las Notas de la versión de Postgresql 9.6, el parámetro idle_in_transaction_session_timeout se introdujo en la versión 9.6.

E.2.3.1.10. Configuración del servidor

Permitir que las sesiones se terminen automáticamente si están en estado inactivo en transacción por demasiado tiempo (Vik Fearing)

Este comportamiento está controlado por el nuevo parámetro de configuración idle_in_transaction_session_timeout. Puede ser útil para evitar que las transacciones olvidadas mantengan cerraduras o que eviten la limpieza por vacío durante demasiado tiempo.

Dado que está utilizando la versión 9.5 en el servidor, el parámetro no se reconoce.

Es posible que haya utilizado la versión 9.6 del cliente de Postgresql para exportar datos desde el servidor de la fuente 9.5 y que el parámetro se haya introducido en el archivo de volcado. Si este fuera el caso, recomendaría usar una versión del cliente 9.5 para exportar e importar los datos.

Exporté una base de datos postgresql desde un servidor externo e intenté importarla a mi servidor local pero obtuve este error:

unrecognized configuration parameter "idle_in_transaction_session_timeout"

¿Significa este tipo de error que los dos servidores están utilizando versiones diferentes de postgresql? Miré en eso, y el servidor externo se está ejecutando:

version PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit

y mi servidor se está ejecutando:

version PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit

Más o menos lo mismo. ¿Hay un sitio donde pueda ver todos los parámetros de configuración válidos para cada versión? ¿Y hay una manera de sincronizar dos bases de datos como esta, para que las incompatibilidades como esta se solucionen automáticamente?


La respuesta aceptada es el camino a seguir, pero si por alguna razón no puede actualizar la versión, aquí hay una solución.

  1. Exportar utilizando texto plano. Probablemente quieras usar la compresión también. pg_dump -F c -Z 9 dbname > file.zip
  2. Antes de importar, necesitamos eliminar el parámetro ofensivo. Para ello podemos utilizar zcat y grep. zcat file.zip | grep -vw "idle_in_transaction_session_timeout" | psql -d newdb

Tenga en cuenta que existen inconvenientes al usar psql en lugar de pg_import. Por ejemplo, uno no puede usar el -j para importar simultáneamente.