PostgreSQL 9.2 - 9.6 aggiornamento con zero tempi di inattività


9

Devo aggiornare da PostgreSQL 9.2 a 9.6. Di seguito sono elencate le sfide che sto affrontando:

  1. Dato che abbiamo una configurazione di replica in streaming e PostgreSQL non supporta l'aggiornamento dalla versione precedente alla versione precedente quando si è in modalità di replica in streaming, quando aggiorno il master devo ricostruire gli slave e questo richiede 3 ore. Non ho tempo da perdere. In qualsiasi momento abbiamo bisogno di uno slave e un master disponibili. Esiste un altro modo per eseguire l'aggiornamento senza dover ricostruire gli slave, utilizzando la replica in streaming?

  2. Per costruire una replica logica abbiamo pensato di usare slony ma slony ha alcune limitazioni in quanto non si replica automaticamente:

    • Modifiche a oggetti di grandi dimensioni (BLOBS)
    • Modifiche apportate dai comandi DDL
    • Modifiche a utenti e ruoli
      ... e la nostra applicazione ha comandi di creazione continui. Quindi non possiamo usare slony.

Si prega di suggerire qualcosa per evitare la ricostruzione degli slave e fare l'aggiornamento con tempi di inattività minimi e un master e uno slave pronti.


3
Gli stessi problemi che ti impediscono di usare Slony ti impediranno di usare altri strumenti come Bucardo, Londiste, pglogical, ecc. Avrai bisogno di adattare l'applicazione, quindi non crea le creazioni continue. E sì, i LOB saranno un problema.
Craig Ringer,

Risposte:


1

L'aggiornamento di un database richiederà tempi di inattività sui server. Per ridurre al minimo i tempi di inattività, suggerirei di installare la versione più recente in un nuovo server, creare un'impostazione di replica su quello e scaricare qui tutti i dati dalla vecchia istanza e cambiare il server che punta in modo che l'applicazione punti a un nuovo server per connettersi al database.


2
Bene, recentemente abbiamo aggiornato un database da 9 TB da 9.3 a 9.6, usando pg_upgrade. Ci sono voluti pochi minuti (su master e slave combinati), mentre prendere una discarica da solo richiede più di 3 ore.
dezso,

Ma prendere la discarica non ha bisogno di tempi di inattività.
Lohit Gupta,

Assolutamente, quello che volevo dire (e che ho dimenticato di aggiungere) era che il ripristino del backup richiede più o meno lo stesso tempo della sua esecuzione, il che significa che nel nostro caso ci sono alcuni tempi di inattività.
dezso,

Grazie per il suggerimento, quindi quello che stavo facendo è l'aggiornamento del master e la ricostruzione dello slave, è questa la procedura giusta
Prabhat,

1
Il passaggio 2 non funzionerà. Il formato WAL non è compatibile tra le versioni principali, quindi la necessità di pg_upgrade.
dezso,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.