Без использования стороннего софта
Резервное копирование 1С баз postgreSQL на Windows Server 2016. Скрипт
Резервное копирование нескольких баз с распределением по отдельным директориям в Windows среде создадим batch-скрипт и создадим скрипт бэкапа . А далее настроем перенос полученных бэкапов на отдельное хранилище в сети с последующим удалением успешно переданных бэкапов.
Бесплатно и стабильно
Используем стандартные утилиты PostgreSQL
Повышаем собственный скилл в batch
Понимание данного материала поможет Вам успешно модернизировать скрипт под свои нужды и оптимизировать ресурсы, необходимые для проведения создания резервных копий баз данных на PostgreSQL.
-
Исходные данные
Входные условия для автоматизации бэкапа баз 1С на PostgreSQL который установлен на Windows Server. -
Пишем скрипт бэкапа баз
Разберем по косточкам скрипт бэкапа нескольких баз данных PostgreSQL. -
Автоматизируем запуск скрипта
Экономим свои ресурсы и настраиваем автоматическое создание резервных копий баз данных 1C на Windows Server. -
Повышаем безопасность резервных копий
Как обезопасить созданные БЭКАПы от вирусов и падения самого сервера и переносить резервные копии отдельное сетевое хранилище,
Исходные данные
Входные условия
- PostgreSQL16 для 1С сервера стоит на Windows Server 2016.
- Есть FTP сервер под Бэкапы.
- Баз данных 1С – несколько.
- Выделенный сервер: HP ProLiant DL360 GEN9 2xE5-2680v4, RAM:128 Гб, SSD 2x1TB 2.5 Sata3 за 13,5 т.р./мес
- Необходим автоматический бэкап 1С баз на PostgreSQL.
- Без установки сторонних программ, языков и т.п.
Итак решаем задачу посредством обычного batch–скрипта в файле с расширением .bat ну или .cmd (итак, пишем батник).
Пишем скрипт бэкапа баз данных 1С
Создаём батник в любимом Вашем текстовом редакторе или блокноте, например Notepad++.
Разберем по шагам скрипт
Установим переменные окружения и укажем где лежат исполняемые утилиты PostgreSQL, нам потребуется утилита pg_dump:
Укажем, что скрипт будет запускаться локально на сервере и укажем пользователя и пароль БД, при необходимости можно задать IP сервера БД
Заменим строки объявления переменных на строки получения нашей пары
ключей из файла <полный_путь_до файла>\.env
c последующим присвоением значений соответствующим переменным:
Объявим первую базу, которую будем резервировать а также переменную для счетчика:
Начинаем обрабатывать первую базу: перейдем в папку из которой запущен наш bat-ник и сформируем имя файла резервной копии и файла отчета с присвоением даты создания.
Также будем раскладывать все бэкапы в свои подпапки SET DUMPDIR=%PGDATABASE%
с именами соответствующих баз SET DUMPFILE=%PGDATABASE%%DATETIME%.sql
.
Для начала проверим, есть ли необходимые директории и если нет - создадим их. Далее переходим собственно к созданию дампа базы и лога, при этом анализируем код завершения операции.
В случае получения ошибки удаляем поврежденную резервную копию и делаем соотвествующую запись в журнал.
далее переходим посредством счетчика к следующей базе. В случае удачного резервного копирования базы просто делается запись в журнал.
Присваиваем переменной имя следующей базы SET PGDATABASE=Base_name_2
и возвращаемся в начало процесса обработки (дампа)
базы по метке :Sstart и так до конца перебора интересующих нас баз:
Теперь проведем очистку от старых БЭКАП-ов, чтобы не дожидаться момента, когда нам просто не хватит места на диске для работы. В скрипте настроено удалять все что старше 31 дня, но следует учитывать размеры баз и их количество с учетом размеров диска, на который создаются бэкапы:
Эту очистку конечно можно проводить отдельным батником по отдельному заданию для Windows, я сделал в одном батнике. После всех операций закончим работу скрипта.
Полный вариант скрипта
Полный batch-скрипт создания резервных копий баз данных 1С на PostgreSQL с комментариями.
Все что Вам остается, это заменить имя пользователя postgresuser базы PostgreSQL, его пароль pguser_pass, и имена баз данных (Base_name_1)
Автоматизация запуска скрипта по времени
Ставим задачу в планировщик задач.
Запускаем планировщик:
Пуск – Панель Управления – Администрирование – Планировщик заданий.
Создаем задачу -> Задаем ей имя в планировщике
и устанавливаем триггеры (расписание начала задачи). Я ставлю еженедельно задачу в рабочие дни ночью.
Далее указываем Действие: Создать -> программу сценарий: (находим нашу программу) run_backup.cmd жмем Ок.
Всё, наш Скрипт создан и установлен в планировщик Windows. Осталось проверить его работоспособность: прямо в планировщике задач выбираем нашу задачу и вызвав правой кнопкой мыши контекстное меню, выбираем “Запустить” – далее смотрим результат. радуемся жизни или анализируем причины записи ошибок в лог.
Повышаем безопасность бэкапов
Подробнее о том, как организовать перенос бэкапов баз данных на удаленные сетевые хранилища:
Улучшайте Ваши IT-инструменты
Когда резервные копии наших баз данных 1С на сервере PostgreSQL под Windows Server создаются, укладываются по своим директориям и радуют глаз, стоит задуматься над тем, чтобы обезопасить эти БЭКАПы от вирусов и падения самого сервера. А значит есть смысл организовать БЭКАП-сервер на отдельном железе и переносить резервные копии туда, либо использовать другие сетевые хранилища.