sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man uppgraderar postgresql-databas från 10 till 12 utan att förlora data för openproject

A) Skapa först en säkerhetskopia av alla databaser för det (du kan fortsätta från B om du inte behöver en säkerhetskopia)

  1. Logga in som postgres-användare
     sudo su postgres
  1. Skapa en backup .sql-fil för all data du har i alla databaser
    pg_dumpall > backup.sql

B) Uppgradera till PostgreSQL12

  1. uppdatera paket och installera postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Stoppa postgresql-tjänsten
     sudo systemctl stop postgresql.service
  1. migrera data
     /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. Byt till vanlig användare
     exit
  1. Byt ut portarna med den gamla och nya postgres-versionen.
     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. Starta postgresql-tjänsten
     sudo systemctl start postgresql.service
  1. Logga in som postgres-användare
     sudo su postgres
  1. Kontrollera din nya postgres-version
     psql -c "SELECT version();"
  1. Kör det genererade nya klusterskriptet
     ./analyze_new_cluster.sh
  1. Återgå som en normal (standardanvändare) användare och städa upp i den gamla versionens röra
     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. Grattis! Din postgresql-version är nu uppgraderad. Om allt fungerar bra i B, behöver vi inte använda säkerhetskopian eftersom vi redan har migrerat data från den äldre versionen till den nyare versionen, säkerhetskopieringen är bara ifall något går fel.

OBS: Ändra postgresql.conf och pg_hba.conf enligt dina krav

PS :Kommentera gärna dina problem, förslag eller andra ändringar du vill föreslå



  1. Hög utrymmesanvändning Från crfclust.bdb

  2. Så här skapar du en rapport från en tabell i Access 2016

  3. Infoga i flera tabeller i en fråga

  4. Kan jag kommaavgränsa flera rader i en kolumn?