Сегодня рассмотрим нетипичный случай восстановления бэкапа. Когда уже вроде все стандартные способы испробованы, а бэкап отваливается с ошибкой.
Представьте ситуацию, дали вам файлик с названием примерно таким “kometa-2023-11-22_23-00.psql.gz” и сказали, что это бэкап на PostgreSQL. Возможно, что с Linux системами вы немного знакомы и понимаете, что расширение “*.gz” вроде как относится к линуксовым форматам сжатых файлов.
Ну ок, вы пробуете восстановить через кнопочку Restore в pgAdmin. Пытаетесь подсунуть ему целый архив или даже уже распакованное содержимое, но через 0.1 секунды получаете ошибку. Если да, то эта инструкция скорее всего для вас!
Решение
Сначала давайте распакуем куда-нибудь и взглянем на содержимое распакованного файла. Я это сделаю при помощи Notepad++
У меня открылся вот такой скрипт, покажу только самое его начало, так как сам дамп весит 6 гигов.
Понимая, что по сути это SQL код, можно сделать вывод, что от нас требуется просто его запустить. А для этого идем в pgAdmin и для начала проверяем настройки путей для бинарников (утилит). Так как при установке pgAdmin они почему то могут не прописаться. В моём случае это выглядят так:
Если что, то типичное место установки бинарников (утилит) на скриншоте. Делайте поправку на вашу версию!
Следующим шагом создаем пустую базу, в которую в дальнейшем восстановим наш бэкап. Никаких особых настроек не делаем, просто сохраняем.
Следующим шагом, из нашей созданной базы необходимо вызвать утилиту PSQL и при её помощи запустить выполнение скрипта
psql \i D:/kometa-2023-11-22_23-00.psql
!!! АХТУНГ !!! обратите внимание на направление слешей в пути файлов. Не забывайте, мы работаем тем, что писалось под Linux, а там принято другое направление слешей. То есть, если в Windows у вас будет такой путь:
D:\MyBackups\kometa-2023-11-22_23-00.psql
То в pgAdmin пишите так:
D:/MyBackups/kometa-2023-11-22_23-00.psql
Нажимаем Enter и поздравляю, у вас началось восстановление бэкапа
После этого подключаем базу к серверу 1С в обычном режиме.
P.S.
Если это ваш первый опыт работы со связкой 1С + PostgreSQL, то на последнем этапе у вас могут быть ошибки восстановления. Это значит, что забыли скачать и установить специальные патчи от 1С. А если хотите попроще, то можно просто установить дистрибутив специально для 1С от команды PostgresPro