Обновление PostgreSQL до более новой версии необходимо для поддержания оптимальной производительности, повышения безопасности и доступа к последним функциям. Этот гид предоставляет детальное руководство по обновлению PostgreSQL с версии 11.4 до версии 14.9, охватывая необходимые шаги, такие как резервное копирование данных, подготовка, выполнение обновления и проверка результатов.
Резервное копирование данных
Перед началом любых изменений крайне важно сделать резервное копирование существующих данных PostgreSQL. Эта мера предосторожности гарантирует, что у вас будет страховка на случай возникновения проблем в процессе обновления.
Использование pg_dumpall:
pg_dumpall > all_databases_backup.sql
Если доступен pgBackRest:
pgbackrest --stanza=main --type=full backup
Эти команды создают полное резервное копирование ваших текущих баз данных, что будет бесценно, если вам потребуется восстановить данные позже.
Проверка текущей версии PostgreSQL
Проверьте версию вашей текущей установки PostgreSQL, чтобы убедиться, что это версия 11.4. Используйте следующую команду:
select version();
Пример вывода:
PostgreSQL 11.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-3), 64-bit
Если ваша база данных пуста или вы хотите протестировать процесс обновления, рассмотрите возможность создания тестовых баз данных и таблиц:
create database oz;
c oz --connect database with psql
create schema company;
create table company.customer (name varchar(10), surname varchar(10), number integer);
insert into company.customer (name, surname, number) values ('kemal', 'oz', 12), ('ali', 'oz', 13);
select * from company.customer;
Скачивание и установка обновленного пакета PostgreSQL
Для обновления до PostgreSQL 14 скачайте и установите новую версию. Для бинарных установок используйте следующие команды:
sudo dnf install -y postgresql14-server postgresql14-contrib
Для установок из исходного кода обратитесь к официальному сайту PostgreSQL для инструкций по сборке PostgreSQL из исходного кода. Также может быть полезно прочитать
После установки создайте новый каталог данных:
mkdir /pg_data/DATA_NEW/
Инициализируйте новый каталог данных PostgreSQL:
/usr/pgsql-14/bin/initdb -D /pg_data/DATA_NEW/
Запустите новый экземпляр PostgreSQL:
/usr/pgsql-14/bin/pg_ctl -D /pg_data/DATA_NEW/ start
Остановка службы PostgreSQL
Для выполнения обновления остановите как старую, так и новую службы PostgreSQL:
/usr/pgsql-14/bin/pg_ctl -D /pg_data/DATA_NEW/ stop
/pg_data/11.4/bin/pg_ctl -D /pg_data/DATA stop
Выполнение обновления с использованием pg_upgrade
PostgreSQL предлагает инструмент pg_upgrade для обновления баз данных с более старой версии на новую. Этот инструмент обеспечивает совместимость ваших старых данных с новой версией PostgreSQL. Выполните pg_upgrade с помощью следующей команды:
pgbackrest --stanza=main --type=full backup
Перезапуск службы PostgreSQL
После завершения обновления перезапустите службу PostgreSQL с новой версией:
/usr/pgsql-14/bin/pg_ctl -D /pg_data/DATA_NEW/ start
Проверка и очистка
Проверьте версию PostgreSQL, чтобы убедиться, что обновление прошло успешно:
select version();
Убедитесь, что ваши базы данных и таблицы в порядке:
pgbackrest --stanza=main --type=full backup
Выполнение пост-обновления обслуживания
Запустите вакуум на всех базах данных для оптимизации их производительности после обновления.