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

Opgrader PostgreSQL fra 9.6 til 10.0 på Ubuntu 16.10

En trin-for-trin guide

  1. Lav en sikkerhedskopi . Sørg for, at din database ikke bliver opdateret.

     pg_dumpall > outputfile
    
  2. Installer Postgres 10 . Følg instruktionerne på denne side:https://www.postgresql.org/download/linux/ubuntu/

    Kør derefter sudo apt-get install postgresql-10 . En nyere version vil blive installeret side om side med den tidligere version.

  3. Kør 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
    

    Der er allerede en klynge main for 10 (da dette oprettes som standard ved pakkeinstallation). Dette gøres, så en ny installation fungerer ud af boksen uden at skulle oprette en klynge først, men den kolliderer selvfølgelig, når du forsøger at opgradere 9.6/main når 10/main findes også. Den anbefalede procedure er at fjerne 10-klyngen med pg_dropcluster og opgrader derefter med pg_upgradecluster .

  4. Stop 10-klyngen og slip den:

     sudo pg_dropcluster 10 main --stop
    
  5. Stop alle processer og tjenester, der skriver til databasen. Stop databasen:

     sudo systemctl stop postgresql 
    
  6. Opgrader 9.6-klyngen:

     sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. Start PostgreSQL igen

     sudo systemctl start postgresql
    
  8. Kør pg_lsclusters . Din 9.6 klynge skulle nu være "ned", og 10 klyngen skulle være online på 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. Tjek først, at alt fungerer som det skal. Fjern derefter 9.6-klyngen:

      sudo pg_dropcluster 9.6 main --stop
    

Nogle bemærkninger om pg_upgradecluster

Denne vejledning fungerer fint til at opgradere fra 9.5 til 10.1. Når du opgraderer fra en ældre version, bør du overveje at udelade -m upgrade på trin #6:

sudo pg_upgradecluster 9.6 main

Hvis du har en rigtig stor klynge, kan du bruge pg_upgradecluster med et --link mulighed, så opgraderingen er på plads. Dette er dog farligt – du kan miste klyngen i tilfælde af fejl. Bare brug ikke denne mulighed, hvis det ikke er nødvendigt, som -m upgrade er allerede hurtig nok.

Baseret på:

  • Docs:Opgradering af en PostgreSQL-klynge
  • Gist 1:delameko/upgrade-postgres-9.5-to-9.6.md
  • Gist 2:johanndt/upgrade-postgres-9.3-to-9.5.md
  • Hvad sker der, hvis jeg afbryder eller annullerer pg_upgradecluster ?
  • Ubuntu-manpage for pg_upgradecluster

Opdater

Denne vejledning fungerer fint til at opgradere fra 9.6 til 11 og fra 10 til 11 samt fra 10 til 13.



  1. Hvad er forskellen mellem utf8mb4 og utf8 tegnsæt i MySQL?

  2. Hvordan vælger man kun dato fra et DATETIME-felt i MySQL?

  3. Dynamisk kolonne i SELECT-sætning postgres

  4. Forskellen mellem primær nøgle og unik nøgle