
Temos um servidor PostgreSQL, que acabamos de atualizar de 9.3 para 9.5. Todas as nossas máquinas possuem o pacote cliente 9.3 instalado e, como resultado, pg_dump
não funciona mais, pois não é compatível com versões futuras.
Obviamente, temos que atualizar o software cliente - minha pergunta é: para qual versão devemos atualizar? Inicialmente, pensei que deveríamos ir para a versão 9.6, que é a versão mais recente da série 9.*, para evitar que façamos isso no futuro se atualizarmos o servidor novamente. Mas se sim, então por que não ir para 10 ou 11? Há alguma desvantagem em misturar versões principais como esta? Os clientes 10 e 11 são considerados estáveis?
Responder1
Meu conselho seria atualizar o cliente para permanecer compatível com a mesma versão do seu servidor (como pg_dump v9.5.x funciona com servidores postgres 9.5.x). Você poderia usar a versão 10 para fazer o pg_dump na versão 9.5.x, mas então você teria que estar preparado para lidar com quaisquer bugs que possam surgir ao esperar fazer isso diariamente.
Superficialmente, embora as alterações que ocorreram no comando pg_dump tenham sido novos argumentos de comando (mostrados abaixo), duvido que o teste seja tão rigoroso para as diferentes permutações de backups usando clientes em versões futuras para versões mais antigas do servidor postgresql.
- 9.6 introduziu o
--strict-names argument
- 10 introduziu os
--no-blobs
--no-publications
--no-subscriptions
--no-sync
argumentos
Como nem sempre o backup precisa ser invocado localmente no próprio servidor, você sempre pode ter máquinas diferentes para esse fim (para invocar o backup remotamente)
Dependendo do sistema operacional e do gerenciador de pacotes, a versão mais recente do pg_dump provavelmente já está no servidor, como em /usr/lib/postgresql/sua_versão_do_servidor_aqui/bin/, você sempre pode criar um link simbólico para a nova versão assim (sistema debian assumido):
sudo ln -s --force /usr/lib/postgresql/9.5/bin/pg_dump /usr/bin/pg_dump