При обновлении PostgreSQL до основной версии используется утилита pg_upgrade
. Она позволяет обновлять данные, хранящиеся в файлах данных PostgreSQL, до более поздней версии PostgreSQL.
Обновление standalone PostgreSQL состоит из шести этапов:
- Резервное копирование базы данных.
- Установка PostgreSQL 15.
- Обновление данных в каталоге базы данных.
- Обновление конфигурации.
- Проверка после установки.
Шаг 1. Резервное копирование базы данных
Перед выполнением любых действий, связанных с обновлением, создайте резервную копию данных и конфигурации PostgreSQL. О том, как это сделать, читайте в статье «Резервное копирование и восстановление баз данных».
начало внимание
Если на сервере PostgreSQL имеются сторонние базы данных, их резервные копии также необходимо создать.
конец внимание
Резервное копирование базы данных PostgreSQL без использования утилиты elma365-backupper
Вы можете создать резервную копию базы данных
sudo -u postgres pg_dump elma365 -Fc > path/to/elma365.bak |
Шаг 2. Установка PostgreSQL 15
С помощью пакетного менеджера вашей операционной системы установите PostgreSQL 15 на сервер, в котором установлена версия 10:
sudo apt install postgresql-15
Шаг 3. Обновление данных в каталоге базы данных
- Остановите PostgreSQL, чтобы его данные оставались недоступными во время обновления:
sudo systemctl stop postgresql@10 postgresql@15
- Убедитесь, что кластеры PostgreSQL 10 и PostgreSQL 15 остановлены:
pg_lsclusters
- На сервере выполните проверку на предмет совместимости конфигураций баз данных:
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
— пути к каталогам данных.
- На сервере выполните перенос данных из 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. Обновление конфигурации
- Обновите настройки конфигурации PostgreSQL 15 в соответствии с используемой конфигурацией PostgreSQL 10:
sudo nano /etc/postgresql/15/main/postgresql.conf
sudo nano /etc/postgresql/15/main/pg_hba.con
- Запустите PostgreSQL 15:
sudo systemctl start postgresql@15
Шаг 5. Проверка после установки
- Проверьте состояние базы данных PostgreSQL:
sudo systemctl status postgresql
- Убедитесь, что PostgreSQL-сервер готов принимать подключения от клиентов:
sudo pg_isready