sql >> Database >  >> RDS >> PostgreSQL

Hoe postgresql-database te upgraden van 10 naar 12 zonder gegevens te verliezen voor openproject

A) Maak daarvoor eerst een back-up van alle databases (je kunt verder gaan vanuit B als je geen back-up nodig hebt)

  1. Log in als postgres-gebruiker
     sudo su postgres
  1. Maak een back-up .sql-bestand voor alle gegevens in alle databases
    pg_dumpall > backup.sql

B) Upgrade naar PostgreSQL12

  1. pakketten bijwerken en postgres 12 installeren
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Stop de postgresql-service
     sudo systemctl stop postgresql.service
  1. de gegevens migreren
     /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. Overschakelen naar gewone gebruiker
     exit
  1. Verwissel de poorten met de oude en nieuwe postgres-versies.
     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. Start de postgresql-service
     sudo systemctl start postgresql.service
  1. Log in als postgres-gebruiker
     sudo su postgres
  1. Controleer je nieuwe postgres-versie
     psql -c "SELECT version();"
  1. Voer het gegenereerde nieuwe clusterscript uit
     ./analyze_new_cluster.sh
  1. Keer terug als een normale (standaardgebruiker) gebruiker en ruim de rommel van de oude versie op
     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. Gefeliciteerd! Je postgresql-versie is nu geüpgraded. Als alles goed werkt in B, hoeven we de back-up niet toe te passen omdat we de gegevens al van de oudere versie naar de nieuwere versie hebben gemigreerd, de back-up is voor het geval er iets misgaat.

OPMERKING: Wijzig de postgresql.conf en pg_hba.conf volgens uw vereisten

PS :Voel je vrij om commentaar te geven op je problemen, suggesties of andere wijzigingen die je zou willen voorstellen



  1. Oracle Sloten &tafelsloten:hoe het werkt

  2. Controleer of een object een opgeslagen procedure is met behulp van OBJECTPROPERTY() in SQL Server

  3. Zoek naar een bepaalde string in de Oracle clob-kolom

  4. Hoe de SQLite-database op een Android-telefoon synchroniseren met de MySQL-database op de server?