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

Come aggiornare il database postgresql da 10 a 12 senza perdere dati per openproject

A) Per prima cosa crea un backup di tutti i database (puoi continuare da B se non hai bisogno di un backup)

  1. Accedi come utente postgres
     sudo su postgres
  1. Crea un file .sql di backup per tutti i dati che hai in tutti i database
    pg_dumpall > backup.sql

B) Esegui l'upgrade a PostgreSQL12

  1. aggiorna i pacchetti e installa Postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Interrompi il servizio postgresql
     sudo systemctl stop postgresql.service
  1. migra i dati
     /usr/lib/postgresql/12/bin/pg_upgrade \
     --old-datadir=/var/lib/postgresql/10/main \
     --new-datadir=/var/lib/postgresql/12/main \
     --old-bindir=/usr/lib/postgresql/10/bin \
     --new-bindir=/usr/lib/postgresql/12/bin \
     --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
     --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
  1. Passa a utente normale
     exit
  1. Scambia le porte con la vecchia e la nuova versione di Postgres.
     sudo vim /etc/postgresql/12/main/postgresql.conf
     #change port to 5432
     sudo vim /etc/postgresql/10/main/postgresql.conf
     #change port to 5433
  1. Avvia il servizio postgresql
     sudo systemctl start postgresql.service
  1. Accedi come utente postgres
     sudo su postgres
  1. Controlla la tua nuova versione di Postgres
     psql -c "SELECT version();"
  1. Esegui il nuovo script del cluster generato
     ./analyze_new_cluster.sh
  1. Torna come utente normale (utente predefinito) e ripulisci il pasticcio della vecchia versione
     sudo apt-get remove postgresql-10 postgresql-server-dev-10
     #uninstalls postgres packages
     sudo rm -rf /etc/postgresql/10/
     #removes the old postgresql directory
     sudo su postgres
     #login as postgres user
     ./delete_old_cluster.sh
     #delete the old cluster data
  1. Complimenti! La tua versione postgresql è ora aggiornata, se tutto funziona bene in B, non dobbiamo applicare il backup poiché abbiamo già migrato i dati dalla versione precedente alla versione più recente, il backup è giusto nel caso qualcosa vada storto.

NOTA: Modifica postgresql.conf e pg_hba.conf secondo le tue esigenze

PS :Sentiti libero di commentare i tuoi problemi, suggerimenti o qualsiasi altra modifica che vorresti suggerire