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

Sådan opgraderes postgresql-database fra 10 til 12 uden at miste data til openproject

A) Opret først en sikkerhedskopi af alle databaserne til det (Du kan fortsætte fra B, hvis du ikke har brug for en sikkerhedskopi)

  1. Log ind som postgres-bruger
     sudo su postgres
  1. Opret en backup .sql-fil for alle de data, du har i alle databaserne
    pg_dumpall > backup.sql

B) Opgrader til PostgreSQL12

  1. opdater pakker og installer postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Stop postgresql-tjenesten
     sudo systemctl stop postgresql.service
  1. migrer dataene
     /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. Skift til almindelig bruger
     exit
  1. Skift portene i den gamle og den nye postgres-version.
     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 postgresql-tjenesten
     sudo systemctl start postgresql.service
  1. Log ind som postgres-bruger
     sudo su postgres
  1. Tjek din nye postgres-version
     psql -c "SELECT version();"
  1. Kør det genererede nye klyngescript
     ./analyze_new_cluster.sh
  1. Vend tilbage som en normal (standardbruger) bruger og ryd op i den gamle versions rod
     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. Tillykke! Din postgresql-version er nu opgraderet. Hvis alt fungerer godt i B, behøver vi ikke at anvende sikkerhedskopien, da vi allerede har migreret dataene fra den ældre version til den nyere version, sikkerhedskopien er bare i tilfælde af, at noget går galt.

BEMÆRK: Skift postgresql.conf og pg_hba.conf efter dit krav

PS :Du er velkommen til at kommentere dine problemer, forslag eller andre ændringer, du gerne vil foreslå



  1. Tabellen muterer, trigger/funktion ser den muligvis ikke (hvilket forhindrer en gennemsnitskarakter i at falde til under 2,5)

  2. Hvad er MariaDB Enterprise Cluster?

  3. DATEPART() Eksempler i SQL Server

  4. Nye AMD-processorfamilier kan sammenlignes med nye Intel-processorer