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

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


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

  1. Получить последние обновления Ubuntu 20.04: sudo apt update && sudo apt full-upgrade && sudo reboot
  2. Перейти на Ubuntu 22.04, поменяв в /etc/apt/sources.list focal на jammy: sudo apt update && sudo apt full-upgrade && sudo reboot
  3. В Ubuntu 22.04 проверить установленные пакеты postgresql: dpkg -l | grep postgresql
  4. У systemd должны быть оба экземпляра: sudo systemctl list-units | grep postgresql

    postgresql@12-main.service
    postgresql@14-main.service

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

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

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

Дата последней правки: 2024-08-31 10:57:46

RSS vasilisc.com   


Разделы

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