Atualização do PostgreSQL 9.2 - 9.6 com tempo de inatividade zero

9

Eu tenho que atualizar do PostgreSQL 9.2 para 9.6. A seguir estão os desafios que estou enfrentando:

  1. Como temos a configuração de replicação de streaming, e o PostgreSQL não suporta atualização da versão inferior para a superior no modo de replicação de streaming, quando atualizo o master, preciso reconstruir os escravos e isso leva 3 horas. Eu não tenho esse tempo de sobra. A qualquer momento, precisamos de um escravo e um mestre disponíveis. Existe alguma outra maneira de atualizar sem precisar reconstruir os escravos, usando a replicação de streaming?

  2. Para criar a replicação lógica, pensamos em usar slony, mas o slony tem algumas limitações, pois não é replicado automaticamente:

    • Alterações em objetos grandes (BLOBS)
    • Alterações feitas por comandos DDL
    • Alterações nos usuários e funções
      ... e nosso aplicativo possui comandos de criação contínuos. Portanto, não podemos usar slony.

Por favor, sugira algo para evitar a reconstrução do escravo e fazer a atualização com tempo de inatividade mínimo e um mestre e um escravo prontos.

Prabhat
fonte
3
Os mesmos problemas que o impedem de usar o Slony o impedem de usar outras ferramentas como Bucardo, Londiste, pglogical etc. Você precisará adaptar o aplicativo, para que ele não crie criações contínuas. E sim, os LOBs serão um problema.
Craig Ringer

Respostas:

1

A atualização de um banco de dados precisará de tempo de inatividade em seus servidores. Para minimizar o tempo de inatividade, sugiro que você instale a versão mais recente em um novo servidor, crie uma configuração de replicação e despeje todos os dados da instância antiga aqui e mude a indicação do servidor para que o aplicativo aponte para o novo servidor para conectar-se ao banco de dados.

Lohit Gupta
fonte
2
Bem, recentemente atualizamos um banco de dados de 9 TB de 9,3 para 9,6, usando pg_upgrade. Demorou minutos (no mestre e no escravo combinados), enquanto o despejo sozinho precisa de mais de 3 horas.
Dez29
Mas fazer o despejo não precisa de tempo de inatividade.
Lohit Gupta 29/08
Absolutamente, o que eu quis dizer (e esqueci de acrescentar) é que restaurar o backup leva mais ou menos o mesmo tempo que ele, o que significa alguns períodos de inatividade no nosso caso.
Dez29
Obrigado pela sugestão, então o que eu estava fazendo é mestre modernização e reconstrução escravo, este é o procedimento correto
Prabhat
11
O passo 2 não funcionará. O formato WAL não é compatível entre as principais versões, daí a necessidade pg_upgrade.
Dez29