Обновление standalone PostgreSQL 10 до 15

При обновлении PostgreSQL до основной версии используется утилита pg_upgrade. Она позволяет обновлять данные, хранящиеся в файлах данных PostgreSQL, до более поздней версии PostgreSQL.

Обновление standalone PostgreSQL состоит из шести этапов:

  1. Резервное копирование базы данных.
  2. Установка PostgreSQL 15.
  3. Обновление данных в каталоге базы данных.
  4. Обновление конфигурации.
  5. Проверка после установки.

Шаг 1. Резервное копирование базы данных

Перед выполнением любых действий, связанных с обновлением, создайте резервную копию данных и конфигурации PostgreSQL. О том, как это сделать, читайте в статье «Резервное копирование и восстановление баз данных».

начало внимание

Если на сервере PostgreSQL имеются сторонние базы данных, их резервные копии также необходимо создать.

конец внимание

Резервное копирование базы данных PostgreSQL без использования утилиты elma365-backupper

Шаг 2. Установка PostgreSQL 15

С помощью пакетного менеджера вашей операционной системы установите PostgreSQL 15 на сервер, в котором установлена версия 10:

sudo apt install postgresql-15

Шаг 3. Обновление данных в каталоге базы данных

  1. Остановите PostgreSQL, чтобы его данные оставались недоступными во время обновления:

sudo systemctl stop postgresql@10 postgresql@15

  1. Убедитесь, что кластеры PostgreSQL 10 и PostgreSQL 15 остановлены:

pg_lsclusters

  1. На сервере выполните проверку на предмет совместимости конфигураций баз данных:

sudo -iu postgres /usr/lib/postgresql/15/bin/pg_upgrade \
-o "-c config_file=/etc/postgresql/10/main/postgresql.conf" \
-O "-c config_file=/etc/postgresql/15/main/postgresql.conf" \
--old-datadir=/var/lib/postgresql/10/main/ \
--new-datadir=/var/lib/postgresql/15/main/ \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/15/bin --check

где:

  • /usr/lib/postgresql/10/bin и /usr/lib/postgresql/15/bin пути к бинарным файлам PostgreSQL версий 10 и 15;
  • /var/lib/postgresql/10/main и /var/lib/postgresql/15/main пути к каталогам данных.
  1. На сервере выполните перенос данных из PostgreSQL 10 в PostgreSQL 15:

sudo -iu postgres /usr/lib/postgresql/15/bin/pg_upgrade \
-o "-c config_file=/etc/postgresql/10/main/postgresql.conf" \
-O "-c config_file=/etc/postgresql/15/main/postgresql.conf" \
--old-datadir=/var/lib/postgresql/10/main/ \
--new-datadir=/var/lib/postgresql/15/main/ \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/15/bin

где:

  • /usr/lib/postgresql/10/bin и /usr/lib/postgresql/15/bin пути к бинарным файлам PostgreSQL версий 10 и 15;
  • /var/lib/postgresql/10/main и /var/lib/postgresql/15/main пути к каталогам данных.

Шаг 4. Обновление конфигурации

  1. Обновите настройки конфигурации PostgreSQL 15 в соответствии с используемой конфигурацией PostgreSQL 10:

sudo nano /etc/postgresql/15/main/postgresql.conf
sudo nano /etc/postgresql/15/main/pg_hba.con

  1. Запустите PostgreSQL 15:

sudo systemctl start postgresql@15

Шаг 5. Проверка после установки

  1. Проверьте состояние базы данных PostgreSQL:

sudo systemctl status postgresql

  1. Убедитесь, что PostgreSQL-сервер готов принимать подключения от клиентов:

sudo pg_isready