PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiorna PostgreSQL da 9.6 a 10.0 su Ubuntu 16.10

Una guida passo passo

  1. Esegui un backup . Assicurati che il tuo database non venga aggiornato.

     pg_dumpall > outputfile
    
  2. Installa Postgres 10 . Segui le istruzioni in questa pagina:https://www.postgresql.org/download/linux/ubuntu/

    Quindi esegui sudo apt-get install postgresql-10 . Una versione più recente verrà installata fianco a fianco con la versione precedente.

  3. Esegui pg_lsclusters :

     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5433 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    

    Esiste già un cluster main per 10 (poiché viene creato per impostazione predefinita durante l'installazione del pacchetto). Questo viene fatto in modo che una nuova installazione funzioni immediatamente senza la necessità di creare prima un cluster, ma ovviamente si verifica un conflitto quando si tenta di aggiornare 9.6/main quando 10/main esiste anche. La procedura consigliata è rimuovere il cluster 10 con pg_dropcluster e poi aggiorna con pg_upgradecluster .

  4. Arresta il cluster 10 e rilascialo:

     sudo pg_dropcluster 10 main --stop
    
  5. Arresta tutti i processi e servizi che scrivono nel database. Arresta il database:

     sudo systemctl stop postgresql 
    
  6. Aggiorna il cluster 9.6:

     sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. Avvia nuovamente PostgreSQL

     sudo systemctl start postgresql
    
  8. Esegui pg_lsclusters . Il tuo cluster 9.6 dovrebbe ora essere "inattivo" e il cluster 10 dovrebbe essere online su 5432 :

     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    
  9. In primo luogo, controlla che tutto funzioni correttamente. Successivamente, rimuovi il cluster 9.6:

      sudo pg_dropcluster 9.6 main --stop
    

Alcune note su pg_upgradecluster

Questa guida funziona bene per l'aggiornamento da 9.5 a 10.1. Quando esegui l'aggiornamento da una versione precedente, considera di omettere -m upgrade nel passaggio n. 6:

sudo pg_upgradecluster 9.6 main

Se hai un cluster davvero grande, puoi usare pg_upgradecluster con un --link opzione, in modo che l'aggiornamento sia in atto. Tuttavia, questo è pericoloso:puoi perdere il cluster in caso di errore. Non usare questa opzione se non necessario, come -m upgrade è già abbastanza veloce.

Basato su:

  • Documenti:aggiornamento di un cluster PostgreSQL
  • Gist #1:delameko/upgrade-postgres-9.5-to-9.6.md
  • Gist #2:johanndt/upgrade-postgres-9.3-to-9.5.md
  • Cosa succede se interrompo o annullo pg_upgradecluster ?
  • Manpage Ubuntu per pg_upgradecluster

Aggiorna

Questa guida funziona bene per l'aggiornamento da 9.6 a 11 e da 10 a 11, nonché da 10 a 13.