PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да надстроите базата данни postgresql от 10 на 12, без да губите данни за openproject

A) Първо създайте резервно копие на всички бази данни за това (Можете да продължите от Б, ако не се нуждаете от резервно копие)

  1. Влезте като потребител на postgres
     sudo su postgres
  1. Създайте резервен .sql файл за всички данни, които имате във всички бази данни
    pg_dumpall > backup.sql

B) Надстройте до PostgreSQL12

  1. актуализирайте пакетите и инсталирайте postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Спрете услугата postgresql
     sudo systemctl stop postgresql.service
  1. мигрирайте данните
     /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. Превключете към обикновен потребител
     exit
  1. Разменете портовете на старата и новата версия на postgres.
     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. Стартирайте услугата postgresql
     sudo systemctl start postgresql.service
  1. Влезте като потребител на postgres
     sudo su postgres
  1. Проверете новата си версия на postgres
     psql -c "SELECT version();"
  1. Изпълнете генерирания нов клъстерен скрипт
     ./analyze_new_cluster.sh
  1. Върнете се като нормален потребител (по подразбиране) и почистете бъркотията в старата версия
     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. Поздравления! Вашата postgresql версия вече е надстроена. Ако всичко работи добре в B, не е нужно да прилагаме архивирането, тъй като вече сме мигрирали данните от по-старата версия към по-новата версия, архивирането е само в случай, че нещо се обърка.

ЗАБЕЛЕЖКА: Променете postgresql.conf и pg_hba.conf според вашите изисквания

PS :Чувствайте се свободни да коментирате вашите проблеми, предложения или всякакви други модификации, които искате да предложите



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кеширане в PostgreSQL

  2. Моите любими разширения на PostgreSQL - първа част

  3. Пролетна конференция FLOSS UK

  4. INSERT a SELECT GROUP BY :повече целеви колони, отколкото изрази грешка

  5. Трябва да инсталирате postgresql-server-dev-X.Y за изграждане на разширение от страна на сървъра или libpq-dev за изграждане на приложение от страна на клиента