sql >> Databáze >  >> RDS >> PostgreSQL

Jak upgradovat postgresql databázi z 10 na 12 bez ztráty dat pro openproject

A) Nejprve pro to vytvořte zálohu všech databází (můžete pokračovat od B, pokud zálohu nepotřebujete)

  1. Přihlaste se jako uživatel postgres
     sudo su postgres
  1. Vytvořte záložní soubor .sql pro všechna data, která máte ve všech databázích
    pg_dumpall > backup.sql

B) Upgradujte na PostgreSQL12

  1. aktualizovat balíčky a nainstalovat postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Zastavte službu postgresql
     sudo systemctl stop postgresql.service
  1. migrujte 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. Přepnout na běžného uživatele
     exit
  1. Vyměňte porty staré a nové postgresové verze.
     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. Spusťte službu postgresql
     sudo systemctl start postgresql.service
  1. Přihlaste se jako uživatel postgres
     sudo su postgres
  1. Zkontrolujte svou novou verzi postgres
     psql -c "SELECT version();"
  1. Spusťte vygenerovaný nový skript clusteru
     ./analyze_new_cluster.sh
  1. Vraťte se jako normální (výchozí uživatel) uživatel a vyčistěte nepořádek staré verze
     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. Blahopřejeme! Vaše verze postgresql je nyní upgradována. Pokud vše funguje dobře v B, nemusíme zálohu používat, protože jsme již migrovali data ze starší verze na novější verzi, záloha je pouze pro případ, že by se něco pokazilo.

POZNÁMKA: Změňte postgresql.conf a pg_hba.conf podle svých požadavků

PS :Neváhejte komentovat své problémy, návrhy nebo jakékoli jiné úpravy, které byste chtěli navrhnout



  1. Postgres/JSON - aktualizujte všechny prvky pole

  2. java.sql.SQLException:ORA-03115:nepodporovaný datový typ sítě nebo reprezentace

  3. Jak získat velikost databáze mysql?

  4. Jak změnit velikost sloupce v MySQL