39. Uppgraderingar av programvara

Eftersom PostGIS finns inom PostgreSQL består varje PostGIS-installation faktiskt av två versioner av programvara: PostgreSQL-versionen och PostGIS-versionen. Som en allmän princip kan varje version av PostGIS teoretiskt köras inom ett antal versioner av PostgreSQL och vice versa.

I praktiken kommer det exakta versionsparet som finns tillgängligt att dikteras av förpackaren som har byggt din PostgreSQL-distribution. De flesta Linux-paket innehåller ett par PostGIS-versioner för varje PostgreSQL-version, vilket gör att delarna kan uppgraderas antingen oberoende eller samtidigt, beroende på dina önskemål.

Uppgraderingar kan betraktas som en uppgradering av varje komponent.

39.1. Uppgradering av PostgreSQL

Det finns två typer av PostgreSQL-uppgraderingsscenarier:

  • En ”mindre uppgradering” när programvaruversionen ökar på ”patch”-nivå. Till exempel från 8.4.3 till 8.4.4, eller från 9.0.1 till 9.0.3. Ökningar med mer än en patchversion är helt okej. Mindre uppgraderingar åtgärdar buggar men lägger inte till några nya funktioner eller ändrar beteendet.

  • En ”större uppgradering” när ”större” eller ”mindre” versioner ökar. Till exempel från 8.4.5 till 9.0.0, eller från 9.0.5 till 9.1.1. Större uppgraderingar lägger till nya funktioner och ändrar beteende.

39.1.1. Mindre uppgraderingar av PostgreSQL

För ”mindre uppgraderingar” behövs ingen särskild process. Installera helt enkelt den nya programvaran och starta om servern.

39.1.2. Stora uppgraderingar av PostgreSQL

För ”större uppgraderingar” finns det två sätt att genomföra uppgraderingen.

39.1.2.1. Dumpning/återställning

Dumpning och återställning innebär att alla data konverteras till ett plattformsneutralt format (textrepresentationer) vid dumpning och tillbaka till ursprungliga representationer vid återställning, så det kan vara tidskrävande och CPU-intensivt. Men om du migrerar till en ny arkitektur eller ett nytt operativsystem är det en nödvändig process. Det är också en tidtestad och välkänd uppgraderingsväg, så om din databas inte är för stor finns det ingen anledning att inte hålla fast vid den.

  • Dumpa dina data pg_dumpall från den gamla databasen.

  • Installera den nya versionen av PostgreSQL och samma version av PostGIS som du använder i din gamla databas. Du måste matcha PostGIS-versionen så att funktionsdefinitionerna för dumpfilen refererar till en förväntad version av PostGIS-biblioteket.

  • Initialisera det nya dataområdet med hjälp av programmet initdb från den nya programvaran.

  • Starta den nya servern på det nya dataområdet.

  • Återställ dumpfilen med hjälp av pg_restore.

39.1.2.2. pg_upgrade

Verktyget pg_upgrade gör att PostgreSQL-datakataloger kan uppgraderas utan krav på ett dumpnings- / återställningssteg. Verktyget kan inte hantera ändringar i själva datafilerna, men hanterar de vanligaste och vanligaste ändringarna i systemtabeller som inträffar i PostgreSQL större uppgraderingar.

Observera

De fullständiga instruktionerna för att köra uppgraderingsprocessen finns på webbsidan pg_upgrade på PostgreSQL-webbplatsen.

Programmet pg_upgrade förväntar sig att ha tillgång till båda versionerna av PostgreSQL som det arbetar med, den gamla och den nya versionen, så du måste installera dem båda.

  • Installera den nya versionen av PostgreSQL som du kommer att använda.

  • Installera samma version av PostGIS som du använder i den gamla PostgreSQL i den nya PostgreSQL.

  • Initiera det nya PostgreSQL-dataområdet med den nya kopian av initdb.

  • Se till att både den gamla och den nya PostgreSQL-servrarna är avstängda.

  • Kör pg_upgrade och se till att använda binärfilen från installationen av den nya programvaran.

    pg_upgrade
      --old-datadir "/var/lib/postgres/12/data"
      --new-datadir "/var/lib/postgres/13/data"
      --old-bindir "/usr/pgsql/12/bin"
      --new-bindir "/usr/pgsql/13/bin"
    
  • Om pg_upgrade genererade några .sql-filer, kör dem nu.

  • Starta den nya servern.

39.2. Uppgradering av PostGIS

PostGIS hanterar mindre och uppgraderingar genom mekanismen EXTENSION. Om du spatialt aktiverat din databas med hjälp av CREATE EXTENSION postgis, kan du uppdatera din databas med samma funktionalitet.

Först installerar du den nya programvaran så att den är tillgänglig för databasen.

Kör sedan SQL för att uppgradera ditt PostGIS-tillägg.

-- If you are upgrading from PostGIS 2.5 or later
-- and want the latest installed version
SELECT postgis_extensions_upgrade();

-- If you are upgrading from an earlier version
-- you have to specifically turn on the version you want
ALTER EXTENSION postgis UPDATE TO '2.5.5';