После апдейта сетевого МЕДКА на версию 11.02.144 восстановление из бекапа (файл ZBF) сопровождается ошибкой. И тут нам без разницы, где у них там косяки, на этапе создания бекапа или на этапе восстановления. Ситуация требует создания бекапов средствами БД

Скриншот с forum.medoc.ua. С 27.05.2025 ресурс закрыт
Рассмотрим вариант с PostgreSQL. Все операции выполняются в среде Windows Server 2016. На время работ служба ZvitGrp должна быть остановлена
Создание бекапа
Дамп создадим в формате скрипт-файла и в формате каталога соответственно, а также сравним их размеры
pg_dump -C -d MEDOC -U postgres -f 30-07-24.psql pg_dump -Fd -v -j 6 -U postgres -d MEDOC -f 30-07-24.dir
Можете использовать одну из команд на Ваше усмотрение, где в результате:
30-07-24.psql — единственный скрипт-файл, где вся дата
30-07-24.dir — каталог с gz-таблицами и файлом-оглавлением
В первом случае размер дампа — 37,4 GB, во втором — 19,4 GB. Разница очевидна. И если эти бекапы передаются на удаленный бекап-сервер или недостадочно места на локальном, то имеет смысл использовать дамп в формате каталога
Восстановление
Маловероятный, но возможный сценарий к которому нужно подготовиться заранее. Восстановление делаем в другую БД. Назовем ее MEDOC_2
Для начала в консоли psql создадим чистую БД. Владельцем оставляем роль MEDOC
CREATE DATABASE "MEDOC_2" WITH OWNER = "MEDOC" ENCODING = 'UTF8' LC_COLLATE = 'Ukrainian_Ukraine.1251' LC_CTYPE = 'Ukrainian_Ukraine.1251' LOCALE_PROVIDER = 'libc' TABLESPACE = pg_default CONNECTION LIMIT = -1 IS_TEMPLATE = False;
Даем необходимые права
GRANT ALL ON DATABASE "MEDOC_2" TO "MEDOC" WITH GRANT OPTION; GRANT TEMPORARY, CONNECT ON DATABASE "MEDOC_2" TO PUBLIC;
В консоли psql смотрим, что получилось

Свойства старой базы MEDOC и новой MEDOC_2
Все один к одному. Можно накатывать дамп. Если он в формате скрипт-файла то:
psql -U postgres -d MEDOC_2 -f 30-07-24.psql
если формате каталога
pg_restore -v -j 6 -U postgres -d MEDOC_2 30-07-24.dir
Ждем
Переключение
После того, когда дата будет залита нужно переключить програму МЕДОК на работу с новой БД MEDOC_2. Для этого запускаем в установочном каталоге MedocSRV тулзу ConnectionSetup.exe и в закладке настроек PostgreSQL меняем параметры подключения

Интерфейс настройки соединения MEDOC с PostgreSQL
Сохраняем. На запрос о перезапуске ZvitGrp — соглашаемся. Заходим в МЕДОК и работаем. Старую БД MEDOC в будущем можно удалить
В командной строке cmd
dropdb.exe -U postgres MEDOC

Системный администратор с 2000 года
Участник Freelancehunt, Хабр Q&A
Кейсы