Перейти к содержанию

Обновление версии PostgreSQL для GNU/Linux

Данная страница является дополнением к инструкции по установке на GNU/Linux и поможет обновить используемую в сканере систему управления базами данных PostgreSQL до версии 16, содержащей необходимое для корректной работы сервиса расширение TimescaleDB. Если версия PostgreSQL соответствует требуемой, необходимо только установить расширение, если оно не установлено.

Список затрагиваемых версий

Инструкцию необходимо проделать при обновлении сканера с версии v25.9 и старше на версию v25.10 и новее.

Миграция

Примечание

  • В предлагаемой инструкции миграция осуществляется с помощью встроенной в PostgresQL команды pg_dump. Допускаются другие способы обновления, не указанные в инструкции.
  • Все команды в инструкции запускаются пользователем с ролью «администратор».
  1. Создайте копию базы данных solidpoint_backend.

    pg_dump -U postgres solidpoint_backend > backend_dump.sql
    
  2. Создайте копию базы данных fuchsia.

    pg_dump -U postgres fuchsia > fuchsiad_dump.sql
    
  3. Удалите базу данных solidpoint_backend.

    dropdb -U postgres solidpoint_backend
    
  4. Удалите базу данных fuchsia.

    dropdb -U postgres fuchsia
    
  5. Обновите версию PostgreSQL до необходимой

    1. Остановите старый кластер.

      systemctl stop postgresql
      
    2. Обновите пакеты.

      apt update
      apt upgrade
      apt install postgresql-16
      
    3. Определите старую и новую версию PostgreSQL, а также имя кластера.

      pg_lsclusters
      
    4. Используйте утилиту pg_upgrade.

      pg_upgradecluster <старая_версия> <имя_кластера>
      
    5. Запустите новый кластер.

      systemctl start postgresql
      
    6. Удалите старый кластер.

      pg_dropcluster <старая_версия> <имя_кластера>
      
  6. Заново создайте удалённые базы данных.

    su postgres -c psql
    > CREATE DATABASE solidpoint_backend;
    > CREATE DATABASE fuchsia;
    > GRANT ALL PRIVILEGES ON DATABASE fuchsia TO fuchsia;
    > GRANT ALL PRIVILEGES ON DATABASE solidpoint_backend TO backend;
    > quit
    
  7. Импортируйте копию базы данных solidpoint_backend.

    psql -U postgres -d solidpoint_backend < backend_dump.sql
    
  8. Импортируйте копию базы данных fuchsia.

    psql -U postgres -d fuchsia < fuchsiad_dump.sql
    
  9. Перезапустите PostgreSQL.

    systemctl restart postgresql