Техническая база знаний T-Wiki.ru

Инструменты пользователя

Инструменты сайта


articles:armers:postgre

Ошибки PostgreSQL10

В данном разделе собраны ошибки, связанные с обновлением PostgreSQL с версии 9.5 до 10

Версия АРМ ЭРС - 3.0.30

Обязательно делайте резервную копию базы данных!

PostgreSQL 10 при обновлении ставится поверх версии 9.5

Убедитесь, что у вас открыт порт 5433 в брандмауэре

Вернуться в основную статью

В соответствии с рекомендациями ФСТЭК с 11.10.2022 будет выложена новая версия АРМ ЛПУ (ЭРС) с PostgreSQL - 10.22. При переходе на версию АРМ ЛПУ (ЭРС) 3.0.30 необходимо выполнить следующие шаги:

1. Сделать резервную копию данных (Администрирование → Резервное копирование базы данных).

2. При установке новой версии АРМ ЛПУ ОБЯЗАТЕЛЬНО выбрать пункт «Установить» на вкладке «Параметры подключения к базе данных». В строке порт соединения ОБЯЗАТЕЛЬНО указать новый номер порта (по умолчанию - 5433), отличный от номера для PostgreSQL 9.5 (по умолчанию - 5432).

3. После запуска АРМ ЛПУ в настройках соединения с базой данных (Администрирование → Настройки соединения с базой данных) ОБЯЗАТЕЛЬНО заменить номер порта на новый.

4. Восстановить данные из резервной копии (Администрирование → Восстановление базы данных).

Примечание: Если вы используете подключение к базе данных, установленной на удаленный сервер, то сначала нужно установить новую версию ЛПУ на этот сервер с учетом условий выше.

Ошибка: Возникла ошибка при попытке загрузки данных из базы данных. Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment].

Причина:

Нет подключения к базе АРМ ЭРС

Решение:

1. Предварительно сделав резервную копию БД - удалить PostgreSQL10.

2. Очистить папку C:\PostgreSQL10

3. Открываем установочный .exe файл АРМ ЭРС в 7zfm.

4. Вытаскиваем оттуда postgresql-10.22-1-windows.exe.

5. Запускаем postgresql-10.22-1-windows.exe, устанавливаем в папку C:\postgresql10, пароль Manager1 порт 5433

6. Запускаем установку АРМ ЛПУ

Ошибка: Error deleting service при попытке удаления postgreSQL

Решение:

Win+R - cmd

в командной строке написать:

для 32-разрядных систем:

sc delete postgresql-10

или для 64-разрядных систем:

sc delete postgresql-x64-10

Принудительно изменить порт используемый программой АРМ ЭРС

Если нет возможности войти в программу и поменять порт (например из-за недоступности БД):

Переходим в C:\FssArmErs\configuration\.settings

Открываем файл: ru.ibs.fss.eln.prefs

Редактируем строку

dburl=jdbc:postgresql://localhost:5433/fss

Где 5433 - порт

Доступ в PGAdmin

Для доступа в админку СУБД нужно перейти в: C:\postgresql\bin

Запустить файл: pgAdmin3.exe

Правой кнопкой мыши на БД - Подключиться

Логин: postgres
Пароль: Manager1

Резервное копирование базы данных

Для резервного копирования БД необходимо в c:\PostgreSQL создать bat-файл со следующим содержимым:

REM СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
SET PGBIN=c:\PostgreSQL\bin
SET PGDATABASE=fss
SET PGHOST=localhost
SET PGPORT=5433
SET PGUSER=postgres
SET PGPASSWORD=Manager1
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
REM Формирование имени файла резервной копии и файла-отчета
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET DUMPFILE=%PGDATABASE%.backup
SET LOGFILE=%PGDATABASE%.log
SET DUMPPATH="C:\backup_db_fss\%DUMPFILE%"
SET LOGPATH="C:\backup_db_fss\%LOGFILE%"
REM Создание резервной копии
IF NOT EXIST Backup MD Backup
CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH%
REM Анализ кода завершения
IF NOT %ERRORLEVEL%==0 GOTO Error
GOTO Successfull
REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале
:Error
DEL %DUMPPATH%
MSG * "Ошибка при создании резервной копии базы данных. Смотрите backup.log."
ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log
GOTO End
REM В случае удачного резервного копирования просто делается запись в журнал
:Successfull
ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log
GOTO End
:End

в строках:

SET DUMPPATH="C:\backup_db_fss\%DUMPFILE%"

SET LOGPATH="C:\backup_db_fss\%LOGFILE%"

необходимо выставить свой путь для сохранения бэкапа БД и логов (переменные %DUMPFILE% и %LOGFILE% не трогать)

После этого необходимо добавить данный bat-файл в планировщик заданий для выполнения задачи резервного копирования по расписанию.

Как восстановить базу данных из Бекапа?

Скопируем резервную копию базы fss.backup, которую мы создали скриптом выше в папку c:\postgresql\bin

Открываем командную строку (cmd.exe):

c:\postgresql\bin>pg_restore.exe -p 5433 -U fss -d fss < fss.backup
articles/armers/postgre.txt · Последнее изменение: 2022/10/31 11:43 — dragdrop