sql >> Databasteknik >  >> RDS >> PostgreSQL

Uppgradera PostgreSQL från 9.6 till 10.0 på Ubuntu 16.10

En steg-för-steg-guide

  1. Gör en säkerhetskopia . Se till att din databas inte uppdateras.

     pg_dumpall > outputfile
    
  2. Installera Postgres 10 . Följ instruktionerna på den här sidan:https://www.postgresql.org/download/linux/ubuntu/

    Kör sedan sudo apt-get install postgresql-10 . En nyare version kommer att installeras sida vid sida med den tidigare versionen.

  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
    

    Det finns redan ett kluster main för 10 (eftersom detta skapas som standard vid paketinstallation). Detta görs så att en ny installation fungerar direkt utan att behöva skapa ett kluster först, men det krockar så klart när du försöker uppgradera 9.6/main när 10/main finns också. Den rekommenderade proceduren är att ta bort klustret 10 med pg_dropcluster och uppgradera sedan med pg_upgradecluster .

  4. Stoppa 10-klustret och släpp det:

     sudo pg_dropcluster 10 main --stop
    
  5. Stoppa alla processer och tjänster som skriver till databasen. Stoppa databasen:

     sudo systemctl stop postgresql 
    
  6. Uppgradera 9.6-klustret:

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

     sudo systemctl start postgresql
    
  8. Kör pg_lsclusters . Ditt 9.6-kluster ska nu vara "ner" och 10-klustret ska vara 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. Kontrollera först att allt fungerar som det ska. Ta sedan bort 9.6-klustret:

      sudo pg_dropcluster 9.6 main --stop
    

Några anteckningar om pg_upgradecluster

Den här guiden fungerar bra för att uppgradera från 9.5 till 10.1. När du uppgraderar från en äldre version, överväg att utelämna -m upgrade på steg #6:

sudo pg_upgradecluster 9.6 main

Om du har ett riktigt stort kluster kan du använda pg_upgradecluster med en --link alternativet, så att uppgraderingen kommer att vara på plats. Det här är dock farligt – du kan tappa klustret om det uppstår ett misslyckande. Använd bara inte det här alternativet om det inte är nödvändigt, som -m upgrade är redan tillräckligt snabb.

Baserat på:

  • Dokument:Uppgradering av ett PostgreSQL-kluster
  • Grund 1:delameko/upgrade-postgres-9.5-to-9.6.md
  • Grund 2:johanndt/upgrade-postgres-9.3-to-9.5.md
  • Vad händer om jag avbryter eller avbryter pg_upgradecluster ?
  • Ubuntu-manpage för pg_upgradecluster

Uppdatera

Den här guiden fungerar bra för att uppgradera från 9.6 till 11 och från 10 till 11, samt från 10 till 13.



  1. Hur man definierar en primärnyckel för automatisk ökning i SQL Server

  2. Hur man formaterar siffror i PostgreSQL

  3. När behöver jag använda semikolon kontra snedstreck i Oracle SQL?

  4. Sql*plus returnerar alltid utgångskoden 0?