Авторские статьи

Обновление PostgreSQL 14 до 16 при переходе с Ubuntu 22.04 на 24.04 LTS


Обновляя сервера с Ubuntu LTS с релиза на релиз, нужно так же провести процедуру обновления кластера баз данных PostgreSQL. На просторах Интернета есть множество статей, вот собрал для себя чек-лист, который периодически актуализирую и проверяю. Конкретная последовательность действий, которая помогает мне обновлять PostgreSQL с релиза на релиз без потери информации.

  1. ДО ОБНОВЛЕНИЯ на следующий релиз, закоментируйте строки в /etc/postgresql/14/main/postgresql.conf
    #log_timezone = 'W-SU'
    #timezone = 'W-SU'

    Начиная с PostgreSQL 16 устаревшее имя часового пояса 'W-SU' (West Soviet Union) больше не распознается СУБД из-за обновления встроенной базы данных часовых поясов (tzdata). Если не выполнить этот этап, то будут проблемы при обновлении PostgreSQL до 16 версии в рамках полного обновления всей системы с 22.04 до 24.04!

    ПОСЛЕ ОБНОВЛЕНИЯ уберите комментирование строк и измените эти параметры, на используемую в новых версиях PostgreSQL международную базу данных часовых поясов IANA (tzdata).
    Например,
    log_timezone = 'Europe/Moscow'
    timezone = 'Europe/Moscow'

  2. Получите последние обновления Ubuntu 22.04: sudo apt update && sudo apt full-upgrade && sudo reboot
  3. Не знаю как у вас, но много лет работающим дедовским способом через замену списков репо и apt full-upgrade обновить систему у меня не получалось. Настоятельно рекомендуется использовать sudo do-release-upgrade -m server. После обновления через do-release-upgrade в конце на запрос о reboot ответьте НЕТ - НЕ ПЕРЕЗАГРУЖАЙТЕСЬ!
  4. Проверьте установленные в данный момент пакеты postgresql: dpkg -l | grep postgresql
  5. У systemd должны быть оба экземпляра: sudo systemctl list-units | grep postgresql

    postgresql@14-main.service
    postgresql@16-main.service

  6. Установленные версии: 16 версия доступна на 5433 порту, 14 версия на дефолтном 5432.
    sudo -u postgres pg_lsclusters

    Ver Cluster Port Status Owner    Data directory              Log file
    14  main    5432 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
    16  main    5433 online postgres /var/lib/postgresql/16/main /var/log/postgresql/postgresql-16-main.log
    
  7. Остановите экземпляр с дефолтными данными: sudo systemctl stop postgresql@16-main
  8. При работе с любыми командами pg_* ИГНОРИРУЙТЕ рекомендации в выводе сделать systemctl daemon-reload
    Дропните пустой экземпляр, чтобы на его место пришёл наш с нижней версии: sudo -u postgres pg_dropcluster --stop 16 main
  9. Обновите наш экземпляр до актуальной версии: sudo -u postgres pg_upgradecluster 14 main
  10. Дропните уже не нужный нам экземпляр: sudo -u postgres pg_dropcluster 14 main
  11. Удалите ненужные уже пакеты: sudo apt purge postgresql-14 postgresql-client-14
  12. Перечитайте службы и проверьте работоспособность. Не паникуйте, если отсутствует в выводе postgresql@16-main. Просто перезагрузите сервер и молитесь
    sudo systemctl daemon-reload
    sudo systemctl list-units | grep postgresql
    sudo systemctl restart postgresql@16-main
    sudo systemctl status postgresql@16-main
  13. Проверка версии и что базы данных на месте.
    sudo -u postgres psql -c "SELECT version();"
    sudo -u postgres psql --list
  14. Проверьте файлы конфигураций и данных в каталогах, особенно если использовались свои TABLESPACE.
    /etc/postgresql/
    /var/lib/postgresql/

Дополнительные материалы:

Дата последней правки: 2026-08-15 15:01:06

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта

Quick Response code Поддержите vasilisc.com!Поддержите vasilisc.com!

Лучшее на сайте:

1С под Linux.   Ускорение Ubuntu.   21 пример iptables.   Цикл статей о Ceph.   Убунту в дикой среде.   Ubuntu Linux на SSD.   Ubuntu для блондинок.   Поддержка железа в Linux.   BTSync на службе у админа.   Андроид программы в Ubuntu.   Прокидывание портов для p2p.   Анти СПАМ в Postfix.