Улучшенные автоматические резервные копии
В данной статье мы разберёмся как автоматизировать процесс создания резервных копий, которые будут автоматически архивироваться WinRAR и складываться в нужные нам папки с указанием меток времени создания.
В нашей конфигурации система, Apache и MySQL установлены на SSD диск (C:) объёмом 256 Гб, а под резервные копии выделен HDD объёмом 1 Терабайт (D:).
Для Вашего удобства мы подготовили готовый пакет скриптов и программ: http://mikro-bill.com/shop/files/drdeft/backups.zip
Распакуйте скаченный архив. И создайте следующие папки:
(D:) _BACKUPs _Automatic Apache - личный кабинет WEB MikroBill - автобекапы MySQL
Поместите следующие файлы: HiddenLocalDBStart.bat, localdb.bat, mysqldump.exe, Rar.exe, localdb.vbs в папку d:\_BACKUPs
Теперь установите программу для резервных копий Cobian Backup 11 - Cobian Backup v11 setup.exe
После установки Cobian Backup v11 выключите её (это необходимо, чтобы подсунуть программе файл с готовыми настройками).
Далее поместите файл MainList.lst в папку c:\Program Files (x86)\Cobian Backup 11\DB
Теперь запускайте Cobian Backup. Программа должна подцепить наш файл с настройками:
Теперь нужно отредактировать скрипты, а именно указать свой пароль от базы данных в файле d:\_BACKUPs\localdb.bat:
@ECHO OFF "d:\_BACKUPs\mysqldump.exe" -u ЛОГИН_ОТ_БАЗЫ_ДАННЫХ -pПАРОЛЬ_ОТ_БАЗЫ_ДАННЫХ_БЕЗ_ПРОБЕЛОВ_ПОСЛЕ_P mikrobill >"d:\_BACKUPs\_Automatic\MySQL\%DATE% %time:~0,2%-%time:~3,2% mikrobill.sql" "d:\_BACKUPs\mysqldump.exe" -u ЛОГИН_ОТ_БАЗЫ_ДАННЫХ -pПАРОЛЬ_ОТ_БАЗЫ_ДАННЫХ_БЕЗ_ПРОБЕЛОВ_ПОСЛЕ_P mikrobill_netflow >"d:\_BACKUPs\_Automatic\MySQL\%DATE% %time:~0,2%-%time:~3,2% mikrobill_netflow.sql" "d:\_BACKUPs\rar.exe" a "-ag YYYY-MM-DD HH;MM;SS" -df -m5 -ep -ibck "d:\_BACKUPs\_Automatic\MySQL\24h MySQL in SQL format.rar" "d:\_BACKUPs\_Automatic\MySQL\*.sql"
Должно получиться что-то вроде этого:
@ECHO OFF "d:\_BACKUPs\mysqldump.exe" -u root -pD3eg73SfkkegGehETnETlgE224 mikrobill >"d:\_BACKUPs\_Automatic\MySQL\%DATE% %time:~0,2%-%time:~3,2% mikrobill.sql" "d:\_BACKUPs\mysqldump.exe" -u root -pD3eg73SfkkegGehETnETlgE224 mikrobill_netflow >"d:\_BACKUPs\_Automatic\MySQL\%DATE% %time:~0,2%-%time:~3,2% mikrobill_netflow.sql" "d:\_BACKUPs\rar.exe" a "-ag YYYY-MM-DD HH;MM;SS" -df -m5 -ep -ibck "d:\_BACKUPs\_Automatic\MySQL\24h MySQL in SQL format.rar" "d:\_BACKUPs\_Automatic\MySQL\*.sql"
Обратите внимание, что пароль после -p идёт сразу без пробелов (!!!)
Если Вы всё сделали правильно, то должно получиться так, как ниже на скриншотах. В случае если это не так, то Вам придётся создать все задачи резервного копирования вручную.
Первая задача резервного копирования называется - OnMondays Личный Кабинет WEB - и служит для резервного копирования WEB части личного кабинета
В нашем случае папка с личным кабинетом находится по адресу c:\Program Files (x86)\Apache, а резервные копии складываются в папку D:\_BACKUPs\_Automatic\Apache - личный кабинет WEB. Вам следует отредактировать эти значения, если в Вашем случае используются другие папки.
Оптимально делать резервные копии личного кабинета раз в неделю. Например по понедельникам в 3 часа утра.
Задаём низкий приоритет процессу создания резервной копии, чтобы не тратить лишних ресурсов серверной машины.
Количество хранимых резервных копий - 30.
Используем компрессию ZIP. Не разбиваем архив на мелкие части. Не используем шифрования.
Для удобства вырезаем из резервной копии лишние файлы (отфильтровываем их) - например не нужна папка с логами апача C:\Program Files (x86)\Apache\logs
При создании резервной копии личного кабинета не требуется запуск никаких скриптов, поэтому на этой странице ничего не трогаем
В случае, если Вы не хотите использовать системную учётную запись во время создания резервной копии, то можете указать необходимые логин и пароль администратора здесь:
Вторая задача резервного копирования называется - 24h MySQL Database_full_folders - и служит для резервного копирования баз данных MikroBill. Архивируются как основная база биллинга, так и сетевая статистика (отдельно).
Здесь есть небольшая хитрость. Нужно чтобы бекапился любой EXE файл (требуется для запуска скриптов), например C:\Windows\notepad.exe.
Далее указываем папку с базой данных, которую будем целиком бекапить - в нашем случае это c:\Program Files (x86)\MySQL\data\mikrobill.
А сохраняем всё в D:\_BACKUPs\_Automatic\MySQL.
Такие резервные копии оптимально делать каждый день. Но мы для экономии места делаем их через день - по понедельникам, средам и субботам. В 3 ночи.
Задаём низкий приоритет процессу создания резервной копии, чтобы не тратить лишних ресурсов серверной машины. Количество хранимых резервных копий - 365.
Используем компрессию ZIP. Не разбиваем архив на мелкие части. Не используем шифрования.
Для удобства вырезаем из резервной копии лишние файлы (отфильтровываем их) - в нашем случае не нужны все EXE файлы (notepad.exe).
При создании резервной копии баз данных требуется запуск скрипта дампа базы данных и её архивирования.
EXECUTE,D:\_BACKUPs\HiddenLocalDBStart.bat,
В случае, если Вы не хотите использовать системную учётную запись во время создания резервной копии, то можете указать необходимые логин и пароль администратора здесь:
Таким образом в итоге мы имеем следующее:
Первая задача. Создаёт резервную копию личного кабинета WEB.
Вторая задача. Создаёт резервную копию базы данных - самой папки.
После выполнения второй задачи запускается скрипт, который
- в фоне делает дамп базы данных MikroBill,
- затем делает дамп сетевой статистики netflow mikrobill,
- затем упаковывает всё в архивы RAR (с указанием метки времени), включая папки базы данных, созданные второй задачей.
А ещё сам MikroBill делает свои резервные копии. Не забудьте указать папку для резервных копий в самом MikroBill d:\_BACKUPs\_Automatic\MikroBill - автобекапы
То есть мы имеем три копии баз данных. Первая копия - папка целиком, а второй SQL файл с базами данных для импорта. А третью делает сам MikroBill.
В случае неполадки мы можем воспользоваться любой из этих резервных копий. Каждая из них удобна в своём случае.
Всё автоматически архивируется (включая сетевую статистику) с максимальной компрессией и складывается в нужные папки.
На выходе имеем только высокоупакованные архивы с метками времени, никакой кучи папок.