Настройка резервного копирования в PostgreSQL

preview_player
Показать описание
Хотите быть уверенными в том, что ваши информационные данные не исчезнут бесследно в случае системного сбоя?
Тогда вам пригодится этот ролик! В нём специалист компании «Неосистемы Северо-Запад ЛТД» расскажет про настройку резервного копирования в PostgreSQL в операционных системах Линукс и Windows.

Описание для Linux:
2) Находим строку:
local all postgres peer
И меняем peer на trust, что бы получилось
local all postgres trust
3) Перезапускаем службу, что бы принять изменения.
systemctl restart postgresql

4) Теперь создаём скрипт с разрешением .sh и пишем туда следующий код:
#!/bin/sh
DATA=`date +"%Y-%m-%d"`
database=Mondi_erp_ps_6
/usr/bin/find /backup -type f -mtime +60 -exec rm -rf {} \;

5) Сохраняем полученный скрипт, с расширением .sh, и разрешаем его запуск в качестве программы.
Теперь вы можете запустить его и выполнить резервное копирование.

Настройка автоматического выполнения:
crontab -e
И создаём задание следующем образом. Указываем минуту, час, день, месяц, и неделю выполнения. Так же указываем пользователя от имени которого должно выполняться задание, и путь до скрипта.
[минута][час][день][месяц][неделя][пользователь][команда]
Т.е если мы хотим что бы наш скрипт выполнялся в 21 час 30 минут, каждый день, из под пользователя root мы должны это указать следующим образом.
Сохраняем изменения, если сron не ругается, на проблемы с синтаксисом, значит мы сделали все правильно.

Восcтановления Резервной копии.
1) Для восстановления бекапа, необходимо создать чистую базу и восстановить бекап в нее, иначе могут возникнуть ошибки.
После этого создаём новую базу на кластере 1С, и получаем работающих архив.
Если вам надо было восстановить бекап в рабочую базу, то просто удаляем текущую, базу, и добавляем новую с таким же именем.

Описание для Windows:
Создаем файл с расширением cmd, и содержимым
CHCP 1251
SET PGBIN=D:\Program Files\PostgreSQL\12.5-3.1C\bin
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=QWaszx12
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
SET PGDATABASE=Test
forfiles /p C:\1c_backup\ /m *.dump /s /d -29 /c "cmd /c del @path /q"
Сохраняем скрипт и добавляем его в планировщик заданий.

Для восстановления резервной копии, мы так же должны создать чистую базу, и восстановить бекап в неё. Для этого опять указываем параметры сервера postgresql
CHCP 1251
SET PGBIN=D:\Program Files\PostgreSQL\12.5-3.1C\bin
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=QWaszx12
Теперь так же как на Linux создаём новую базу на кластере 1С, и получаем работающих архив.
Если вам надо было восстановить бекап в рабочую базу, то просто удаляем текущую, базу, и добавляем новую с таким же именем.

Смотрите предыдущие ролики из этой серии:

Хотите получать первыми информацию об интересных решениях для бизнеса? На практических примерах учиться решать сложные рабочие задачи? Тогда подписывайтесь на наш канал, ставьте лайки, добавляйте видео в «Избранное».

Если у вас остались вопросы, звоните нам: 8 (8142) 67-21-20

Тайм-коды:
00:00 Распаковочка. Настройка резервного копирования в PostgreSQL
00:38 Зачем нужно резервное копирование
01:05 Настройка резервного копирования на Линукс
05:30 Настройка резервного копирования на Windows

#postgresql
#резервноекопирование
#линукс
#windows
#резервнаякопияpostgresql
#резервнаякопиябазыpostgresql
#резервноекопированиебазыpostgresql
#postgresqlрезервноекопированиеwindows
#настройкарезервногокопированияpostgresql
Рекомендации по теме
Комментарии
Автор

Ребята, вы прекрасны! Но "Востоновить" заставило мои глаза истечь кровью...

Emsique
Автор

Здравствуйте, не совсем понятно почему для восстановления необходимо сначала удалить базу. Если я например копию хочу из рабочей актуализировать мне сначала необходимо каждый раз копию удалять? Какие ошибки появляются если в базу с данными загрузить бекап? И что значит удалить - полностью или из списка pgadmin?

sergvs
Автор

В описании к видео в скрипте для линукса ошибка: вместо "gzip /backup/$DATA-$database.dump.gz", должно быть "gzip > Потерялся знак ">".
То же самое касается команды восстановления, там пропущен знак "<". Должно быть psql -U postgres test_base2 <

ilyasibragimov
Автор

Добрый день, скажите, а если баз несколько на одном сервере крутится я могу их прописать через запятую или для каждой базы отдельно свой скрипт делать ?

МихаилВетров-йш
Автор

В инструкции к восстановлению на windows ошибка в тексте. Должно быть: CALL "%PGBIN%\pg_restore.exe"

Soul-mtsr
Автор

Восстановление по этой инструкции проходит с ошибками, база 1с после восстановления не запускается.
Устанавливал скачанный с сайта 1с: PostgreSQL 14.1-2.1C(x64). Платформа 1с последняя. Тестил на 2-ух базах 1с.
Архивация и восстановление этих же баз сторонним ПО проходит без ошибок.

Soul-mtsr
Автор

А бэкап таким образом можно восстановить на другом сервере или устройстве?

Human-denf
Автор

Это всё хорошо, пока база не сильно распухла. А вот как просто и изящно настроить инкрементный бэкап и восстановление?

rusmuzhik
Автор

Скопировал ваши скрипты, при выполнении не принимает пароль postgres, если вручную вводить - все в порядке, почему не принимает?

dmitryskorospelov
Автор

если сервер ляжет, на другом эта версия бэкапа развернется или для этого надо wal настраивать?

АнгелИнокентий
Автор

Можете ли подсказать, почему у меня при ручном резервном копировании и дальнейшем восстановлении этой базы, все данные загружаются, но полностью очищается журнал регистрации в 1с. Может дело в каких-то настройках?

fra-bw
Автор

1:30 "тем самым, мы указываем что любой пользователь подключенный к серверу авторизован для доступа к БД" всмысле???? а безопасность в смысле нафиг, да?

drwatson
Автор

Добрый день. Можно по подробнее по этим строкам?
SET DATETIME=%DATE:~6, 4%-%DATE:~3, 2%-%DATE:~0, 2%


CALL "%PGBIN%\pg_dump.exe" --format=custom --verbose
forfiles /p C:\1c_backup\ /m *.backup /s /d -29 /c "cmd /c del @path /q"
Учусь, хотелось бы понимать что к чему

aresgod
Автор

а как отправлять бэкапы на внешку? на другие сервера для хранения?

atriux
Автор

Не рабочие скрипты для pg15 (под винду)

ITDV
Автор

боже какой мусор эта постгрес. не могу восстановить базу данных получаю кракозябры. прям как 20 лет назад на

Negative