Улучшенные автоматические резервные копии

Материал из MikroBILL
Перейти к навигации Перейти к поиску

В данной статье мы разберёмся как автоматизировать процесс создания резервных копий, которые будут автоматически архивироваться 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

00000.jpg


Поместите следующие файлы: HiddenLocalDBStart.bat, localdb.bat, mysqldump.exe, Rar.exe, localdb.vbs в папку d:\_BACKUPs

000.jpg


Теперь установите программу для резервных копий Cobian Backup 11 - Cobian Backup v11 setup.exe

После установки Cobian Backup v11 выключите её (это необходимо, чтобы подсунуть программе файл с готовыми настройками).

Далее поместите файл MainList.lst в папку c:\Program Files (x86)\Cobian Backup 11\DB

0000.jpg


Теперь запускайте Cobian Backup. Программа должна подцепить наш файл с настройками:

001.jpg


Теперь нужно отредактировать скрипты, а именно указать свой пароль от базы данных в файле 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 части личного кабинета

002.jpg


В нашем случае папка с личным кабинетом находится по адресу c:\Program Files (x86)\Apache, а резервные копии складываются в папку D:\_BACKUPs\_Automatic\Apache - личный кабинет WEB. Вам следует отредактировать эти значения, если в Вашем случае используются другие папки.

003.jpg


Оптимально делать резервные копии личного кабинета раз в неделю. Например по понедельникам в 3 часа утра.

004.jpg


Задаём низкий приоритет процессу создания резервной копии, чтобы не тратить лишних ресурсов серверной машины. Количество хранимых резервных копий - 30.

005.jpg


Используем компрессию ZIP. Не разбиваем архив на мелкие части. Не используем шифрования.

006.jpg


Для удобства вырезаем из резервной копии лишние файлы (отфильтровываем их) - например не нужна папка с логами апача C:\Program Files (x86)\Apache\logs

007.jpg


При создании резервной копии личного кабинета не требуется запуск никаких скриптов, поэтому на этой странице ничего не трогаем

008.jpg


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

009.jpg




Вторая задача резервного копирования называется - 24h MySQL Database_full_folders - и служит для резервного копирования баз данных MikroBill. Архивируются как основная база биллинга, так и сетевая статистика (отдельно).

B001.jpg


Здесь есть небольшая хитрость. Нужно чтобы бекапился любой EXE файл (требуется для запуска скриптов), например C:\Windows\notepad.exe. Далее указываем папку с базой данных, которую будем целиком бекапить - в нашем случае это c:\Program Files (x86)\MySQL\data\mikrobill. А сохраняем всё в D:\_BACKUPs\_Automatic\MySQL.

B002.jpg


Такие резервные копии оптимально делать каждый день. Но мы для экономии места делаем их через день - по понедельникам, средам и субботам. В 3 ночи.

B003.jpg

Задаём низкий приоритет процессу создания резервной копии, чтобы не тратить лишних ресурсов серверной машины. Количество хранимых резервных копий - 365.

B004.jpg


Используем компрессию ZIP. Не разбиваем архив на мелкие части. Не используем шифрования.

B005.jpg


Для удобства вырезаем из резервной копии лишние файлы (отфильтровываем их) - в нашем случае не нужны все EXE файлы (notepad.exe).

B006.jpg


При создании резервной копии баз данных требуется запуск скрипта дампа базы данных и её архивирования.

   EXECUTE,D:\_BACKUPs\HiddenLocalDBStart.bat,

B007.jpg


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

B008.jpg



Таким образом в итоге мы имеем следующее:

Первая задача. Создаёт резервную копию личного кабинета WEB.

C001.jpg


Вторая задача. Создаёт резервную копию базы данных - самой папки.

После выполнения второй задачи запускается скрипт, который

  • в фоне делает дамп базы данных MikroBill,
  • затем делает дамп сетевой статистики netflow mikrobill,

C004.jpg

  • затем упаковывает всё в архивы RAR (с указанием метки времени), включая папки базы данных, созданные второй задачей.

C002.jpg


А ещё сам MikroBill делает свои резервные копии. Не забудьте указать папку для резервных копий в самом MikroBill d:\_BACKUPs\_Automatic\MikroBill - автобекапы

C003.jpg



То есть мы имеем три копии баз данных. Первая копия - папка целиком, а второй SQL файл с базами данных для импорта. А третью делает сам MikroBill.

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

Всё автоматически архивируется (включая сетевую статистику) с максимальной компрессией и складывается в нужные папки.

На выходе имеем только высокоупакованные архивы с метками времени, никакой кучи папок.