
Tenemos un servidor PostgreSQL, que acabamos de actualizar de 9.3 a 9.5. Todas nuestras máquinas tienen instalado el paquete de cliente 9.3 y, como resultado, pg_dump
ya no funciona, ya que no es compatible con versiones posteriores.
Obviamente, tenemos que actualizar el software del cliente. Mi pregunta es: ¿a qué versión deberíamos actualizar? Inicialmente pensé que deberíamos ir a 9.6, que es la última versión de la serie 9.*, para evitarnos hacer esto en el futuro si actualizamos el servidor nuevamente. Pero si es así, ¿por qué no pasar al 10 o al 11? ¿Hay alguna desventaja en mezclar versiones principales como esta? ¿Se consideran estables los clientes 10 y 11?
Respuesta1
Mi consejo sería actualizar el cliente para que siga siendo compatible con la misma versión que su servidor (como pg_dump v9.5.x funciona con servidores postgres 9.5.x). Podrías usar la versión 10 para hacer pg_dump en la versión 9.5.x, pero entonces tendrías que estar preparado para lidiar con cualquier error que pudiera surgir al esperar hacerlo diariamente.
A primera vista, aunque los cambios que se produjeron en el comando pg_dump fueron nuevos argumentos de comando (que se muestran a continuación), dudo que las pruebas sean tan rigurosas para las diferentes permutaciones de copias de seguridad que utilizan clientes en versiones futuras hasta versiones anteriores del servidor postgresql.
- 9.6 introdujo el
--strict-names argument
- 10 presentó los
--no-blobs
--no-publications
--no-subscriptions
--no-sync
argumentos
Dado que no siempre es necesario invocar la copia de seguridad localmente en el servidor, siempre puede tener diferentes máquinas para este propósito (para invocar la copia de seguridad de forma remota)
Dependiendo del sistema operativo y del administrador de paquetes, la versión más nueva de pg_dump probablemente ya esté en el servidor como en /usr/lib/postgresql/your_server_version_here/bin/, siempre puedes crear un enlace simbólico a la nueva versión de esta manera (suponiendo que sea un sistema Debian):
sudo ln -s --force /usr/lib/postgresql/9.5/bin/pg_dump /usr/bin/pg_dump