Устранение неполадок PostgreSQL🔗

Прервался процесс переноса данных в PostgreSQL 16🔗

Примечание

Информация об ошибке отображается в окне утилиты Macroscop Статус Инфо.

Если при переносе данных из PostgreSQL 12 в PostgreSQL 16 возникли проблемы:

  1. Откройте директорию с файлами PostgreSQL:

    C:\ProgramData\postgredb\
    
  2. Удалите файл .migrated.

  3. Переустановите приложения Macroscop с помощью файла MacroscopMainCommon Installer.exe.

Не запускается служба PostgreSQL🔗

В случае такой ошибки следует проверить логи PostgreSQL. В логах не должен упоминаться файл WAL Redo, пример:

FATAL:  could not create directory "pg_tblspc/16399": File exists

CONTEXT:  WAL redo at 29/E1DDEC18 for XLOG/FPI_FOR_HINT:

LOG:  startup process (PID 479752) exited with exit code 1

При наличии логов с WAL Redo следует очистить журнал предзаписи с помощью команды:

[путь до Bin]/pg_resetwal -D [путь до Data]

Пример команды на Windows для PostgreSQL 12:

cd "C:\Program Files\PostgreSQL\12\bin"
./pg_resetwal -D "C:\ProgramData\postgredb"

Пути к директориям Bin и Data для разных ОС перечислены ниже.

Пути к директории Bin🔗

  • На Windows: C:\Program Files\PostgreSQL\[версия]\bin

  • На Linux:

    • Debian (Ubuntu, Astra Linux): /usr/lib/postgresql/[версия]/bin

    • ALT Linux: добавлены в PATH (/usr/bin)

    • РЕД ОС (PostgreSQL 12): /usr/bin

    • РЕД ОС (PostgreSQL выше 12): /usr/pgsql-[версия]/bin

    • Роса «Хром» (PostgreSQL 12): /usr/bin

    • Роса «Хром» (PostgreSQL выше 12): /usr/libexec/postgresql[версия]

Пути к директории Data🔗

  • На Windows (PostgreSQL 12): C:\ProgramData\postgredb

  • На Windows (PostgreSQL 16): C:\ProgramData\postgredb16

Предупреждение

При установке путём запуска файла MacroscopMainCommon Installer.exe может быть указан другой путь. В таком случае расположение данных можно узнать из реестра Registry Editor в ветке HKLM\SOFTWARE\PostgreSQL\Installations с помощью ключа Data Directory.

  • На Linux:

    • Debian (Ubuntu, Astra Linux): /var/lib/postgresql/[версия]/main

    • ALT Linux: /var/lib/pgsql/data

    • РЕД ОС (PostgreSQL 12): /var/lib/pgsql/data

    • РЕД ОС (PostgreSQL выше 12): /var/lib/pgsql/[версия]/data

    • Роса «Хром» (PostgreSQL 12): /var/lib/pgsql/data

    • Роса «Хром» (PostgreSQL выше 12): /var/lib/postgresql[версия]/data

Не запускается приложение pgadmin4🔗

Ошибка при запуске приложения pgadmin4 может возникнуть при попытке переноса данных на новую версию.

Решение:

  1. Откройте директорию:

    C:\Users\username\AppData\Roaming\pgAdmin
    
  2. Найдите и переименуйте папку pgAdmin, например, в pgAdmin_bak.

  3. Перезапустите приложение pgadmin4.

После установки не удаётся подключиться к PostgreSQL через pgadmin4🔗

  1. Откройте директорию с конфигурационными файлами PostgreSQL.

    C:\ProgramData\postgredb16\
    
  2. В текстовом редакторе откройте файл postgresql.conf.

  3. Замените строку:

    port = 5433
    

    на:

    port = 5432
    
  4. Перезапустите службу postgresql-x64-16 с помощью командной строки или стандартной оснастки Службы.

Не работает синхронизация базы данных модулей аналитики🔗

После обновления нужно настроить файл pg_hba.conf.

Для этого:

  1. Откройте директорию с конфигурационными файлами PostgreSQL.

    Путь по умолчанию для ОС Windows:

    C:\ProgramData\postgredb16\
    

    Путь по умолчанию для ОС Debian, Ubuntu:

    /etc/postgresql/16/main/
    
  2. В текстовом редакторе откройте файл postgresql.conf и добавьте в него строку вида:

    listen_addresses = '*'
    

    Указанный пример разрешает получать запросы через все доступные сетевые адаптеры сервера. При необходимости ограничить список адаптеров, разрешённых для приёма запросов к базам данных, замените символ /* на точный адрес сетевого адаптера.

    Примечание

    Подробную информацию о настройке можно получить в документации к PostgreSQL 16 (см. Connections and Authentication).

  3. В текстовом редакторе откройте файл pg_hba.conf и добавьте в него строку вида:

    host all all 192.168.0.0/24 md5
    

    Указанный пример разрешает удалённое подключение ко всем базам, хранящимся на сервере, для всех пользователей, обращающихся с адресов диапазона 192.168.0.XXX. В случае, если в сети системы применяется иная адресация, необходимо указать соответствующий диапазон адресов. Допускается внесение нескольких строк с разными диапазонами адресов.

    Примечание

    Подробную информацию о настройке можно получить в документации к PostgreSQL 16 (см. The pg_hba.conf File).

  4. Перезапустите службу postgresql-x64-16 с помощью командной строки или стандартной оснастки Службы.