Filskiy (обсуждение | вклад) Нет описания правки |
Filskiy (обсуждение | вклад) Нет описания правки |
||
Строка 137: | Строка 137: | ||
[[#top|В начало статьи]] | [[#top|В начало статьи]] | ||
== == | ==Удаление старых резервных копий с использованием командного файла== | ||
Ежедневные бэкапы со временем занимают очень '''много пространства''' на жестком диске | |||
Можно чистить вручную, но лучше '''автоматически''' | |||
Решается этот вопрос также созданием '''bat-файла''' и задачи в планировщике заданий Windows | |||
Содержимое bat-файла такое: | |||
<code> | |||
forfiles /p "C:\Users\Nikolay Sherstnev\Desktop\Backup\Backup" /S /D -5 /C "cmd /c del /f /a /q @file" | |||
</code> - Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней | |||
В планировщике заданий можно создать задачу на '''исполнения''' этого bat-файла '''раз в неделю''' | |||
<br clear="both" /> | <br clear="both" /> | ||
[[#top|В начало статьи]] | [[#top|В начало статьи]] |
Версия от 15:50, 25 августа 2022
Создание резервной копии БД в ОС Windows
Создание резервной копии с использованием командного файла
1. Создайте командный файл
1.1. Создайте и откройте текстовый документ. В меню файл выберите Сохранить как
1.2 В диалоговом окне Сохранить как укажите имя файла и расширение bat (Например start_backup.bat). Нажмите Сохранить
1.3 В результате получится командный файл с расширением bat
2. Откройте файл для редактирования
3. Добавьте в командный файл следующий текст:
REM Пример создание резервной копии базы данных POSTGRESQL CLS ECHO OFF Chcp 65001 REM Установка переменных окружения SET PGBIN=C:\PostgreSQL\9.6\bin SET PGDATABASE=jupiter SET PGHOST=localhost SET PGPORT=5432 SET PGUSER=postgres SET PGPASSWORD=postgres 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% %DATETIME%.backup SET LOGFILE=%PGDATABASE% %DATETIME%.log SET DUMPPATH="Backup\%DUMPFILE%" SET LOGPATH="Backup\%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 * "Error. See backup.log." ECHO %DATETIME% Error backup postgresql %DUMPFILE%. See %LOGFILE%. >> backup.log GOTO End REM В случае удачного резервного копирования просто делается запись в журнал :Successfull ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log GOTO End :End
SET PGBIN=C:\PostgreSQL\9.6\bin
- указывается путь к pg_dump
SET PGDATABASE=jupiter
- название базы данных
SET PGHOST=localhost
- расположение базы данных
SET PGPORT=5432
- порт для подключения к базе
SET PGUSER=postgres
- имя пользователя
SET PGPASSWORD=postgres
- пароль для данной базы данных
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
- задание имени backup (содержит имя, дату и время создания backup)
SET DUMPFILE=%PGDATABASE% %DATETIME%.backup
- расширение файла backup
SET LOGFILE=%PGDATABASE% %DATETIME%.log
- запись лога (что копировалось)
SET DUMPPATH="Backup\%DUMPFILE%"
- указывается путь, куда сохранить backup базы данных
SET LOGPATH="Backup\%LOGFILE%"
- указывается путь, куда сохранить лог файл
CALL "%PGBIN%\pg_dump.exe"
--format=custom --verbose --file=%DUMPPATH% 2>%LOGPATH% - настройка метода сжатия базы данных при backup
--format=custom
- вывести копию в архивном формате
--verbose
- включить подробный режим. pg_dump будет выводить в стандартный поток ошибок подробные комментарии к объектам, включая время начала и окончания выгрузки, а также сообщения о прогрессе выполнения
--file=%DUMPPATH% 2>%LOGPATH%
- отправить вывод в указанный файл
ECHO %DATETIME% OK backup %DUMPFILE% >> backup.log
- дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования
4. Сохраните файл
Таким образом командный файл создан и после его исполнения, будет сохраняться резервная копия схемы данных, в указанную папку
Добавление командного файла в планировщик заданий
1. Для автоматического запуска командного файла в нужное время, необходимо запустить Планировщик заданий (Пуск-Программы-Стандартные-Служебные-Планировщик Заданий)
Или запустить планировщик заданий Windows из окна «Выполнить»:
Нажмите клавиши Windows + R на клавиатуре
В появившемся окне введите taskschd.msc
Нажмите Ok или Enter
2. Выбираем пункт «Создать простую задачу»
3. Вводим Имя задачи и нажимаем Далее
4. Выбираем как часто запускать задачу и нажимаем Далее
5. Укажите время выполнения задания. Время выполнения необходимо выбирать исходя из минимальной активности объектов и минимальной загруженности серверного компьютера.
Обычно это ночное время с 1.00 до 5.00 утра.
Укажите как часто его необходимо выполнять
Нажмите Далее
6. Выбираем действие для задачи и нажимаем Далее
7. Выберите командный файл резервирования созданный ранее, нажав кнопку Обзор, после чего нажимаем Далее
8. Установите флажок и нажмите Готово
9. Установить флажок Выполнять только для зарегистрированного пользователя и Выполнять с наивысшими правами
10. Перейти во складку Условия и убрать галочку Запускать только при питании от электросети
11. Нажать ОК
Удаление старых резервных копий с использованием командного файла
Ежедневные бэкапы со временем занимают очень много пространства на жестком диске
Можно чистить вручную, но лучше автоматически
Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows
Содержимое bat-файла такое:
forfiles /p "C:\Users\Nikolay Sherstnev\Desktop\Backup\Backup" /S /D -5 /C "cmd /c del /f /a /q @file"
- Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней
В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю
В начало статьи