С помощью этой инструкции вы узнаете как настроить резервное копирование баз данных и прочих файлов по FTP на хостинг Timeweb с помощью программ MS SQL Server, WinRAR, WinSCP и планировщика заданий Windows.
Итак, у нас имеется локальный сервер, на котором хранятся базы данных и фтп сервер, куда мы хотим эти базы данных отправлять. Ftp сервером у нас будет хостинг для сайтов Timeweb, так как у организации имеется сайт на этом хостинге, там есть немного свободного места и мы используем его для хранения копий баз данных. Кроме этого у вас на локальном сервере должны быть установлены WinRAR и WinSCP. Если у вас нет необходимости сжимать архиватором базу данных,как в моём случае, вы можете отправлять на фтп сервер базу без архивации. Пример с архивацией может пригодиться, если вы отправляете произвольные файлы, и их надо предварительно запаковать, либо хотите установить пароль на архив, так как передача по ftp протоколу небезопасна. Общая схема описываемых действий выглядит так:
Содержание
- Подготовка каталогов на сервере;
- Настройка резервного копирования в Microsoft SQL Server;
- Настройка архивации базы данных с помощью консольных команд WinRAR;
- Настройка передачи файлов с сервера на фтп сервер Timeweb с помощью скрипта WinSCP.
Подготовка каталогов на сервере
Предварительно создаём каталог для сохранения выгрузки из MS SQL Server, к примеру "F:\backup\bd1".
Далее создаём папку,в которую будет запаковываться архиватором winrar база данных, к примеру "F:\backup\bd1rar".
Настройка резервного копирования в Microsoft SQL Server
На сервере заходим в среду Microsoft SQL Server Management Studio. Далее Управление => Планы обслуживания => Создать план обслуживания. В плане создаём задачу резервного копирования базы данных:
Теперь нужно изменить настройки задачи. Указываем:
- Тип резервной копии - Полное;
- Базы данных - выбираем нужную базу, в моём случае bd1;
- Компонент резервного копирования - база данных;
- Создать резервную копию на - диске;
- Создать резервную копию баз данных в одном или нескольких файлах - Добавить и указываем путь к папке для сохранения выгрузки из MS SQL Server, в моём случае "F:\backup\bd1;
- Если файлы резервной копии существуют - Перезаписать;
- Сжимать резервные копии - Сжимать.
Сохраняем и проверяем создаётся ли резервная копия:
Создаём расписание резервного копирования. Указываем, что задача будет выполняться ежедневно в 0:00 каждый день и сохраняем изменения:
На этом настройка на стороне MS SQL Server окончена.
Настройка архивации базы данных с помощью консольных команд WinRAR
Эту задачу мы будем прописывать сразу в планировщик задач Windows. Открываем планировщик и создаём простую задачу:
Указываем удобное для понимания название:
Указываем, что задачу надо запускать ежедневно:
Ставим время выполнения так, чтобы задача резервного копирования MS SQL Server успела выполниться. В моём случае поставил на 5 минут позже:
Действие выбираем "Запустить программу":
Выбираем программу WinRAR, а именно исполняемый файл Rar.exe и прописываем необходимые аргументы:
Аргументами в моём случае были: a -r -m5 -ep -u F:\backup\bd1rar\bd1.rar F:\backup\bd1\bd1.bak.
- a - добавить файлы в архив;
- -r - с вложенными папками (в моём случае это не нужно, но вам может пригодиться);
- -m5 - указываем максимальную степень сжатия;
- -ep - исключает путь от корня к папке назначения. Если не прописать, то внутри архива будет структура папок с файлом backup\bd1\bd1.bak, а не просто сам файл;
- -u - указывает, что нужно обновить файлы в архиве. WinRAR смотрит на дату создания файла, и если она отличается, перезаписывает файлы в архиве;
- -p - устанавливаем пароль на архив (необязательно).
С установкой пароля будет выглядеть так: a -r -m5 -ep -u -pPaRoLLLLL2020xxx F:\backup\bd1rar\bd1.rar F:\backup\bd1\bd1.bak, где PaRoLLLLL2020xxx - пароль.
Кроме этого нужно обратить внимание на пути, если в пути есть пробел, к примеру F:\back up, то путь надо заключать в кавычки - "F:\back up".
Далее проверяем настройки задачи и жмём Готово:
Запускаем созданную задачу в планировщике:
На этом архивация резервной копии завершена.
Настройка передачи файлов с сервера на FTP сервер Timeweb с помощью скрипта WinSCP
В моём случае база данных передаётся по FTP протоколу на хостинг Timeweb, где находится сайт организации. И, кстати говоря, когда словили вирус шифровальщик, эта резервная копия очень спасла, так как она передалась ночью, а после этого в 5 утра началась атака и в результате сетевые хранилища резервных копий тоже были заражены.
Настройка хостинга для сайтов Timeweb для хранения резервных копий
В панели управления хостинга Timeweb переходим в файловый менеджер и создаём папку для бекапов backupbd1:
Переходим в "Пользователи ПУ/FTP" и создаём нового пользователя - специально для задачи резервного копирования нашей базы. Придумываем логин и пароль, включаем доступ к файлам по FTP и переходим в раздел "Доступ к файлам по FTP":
Включаем "Ограничить доступ директорией" и указываем нашу созданную папку /backupbd1:
На этом настройка на стороне хостинга Timeweb закончена.
Хочу обратить внимание, что в такой настройке передачи безопасность передаваемых данных будет осуществлять только пароль на архив. Злоумышленники при этом могут попытаться перехватить архив при передаче. Максимальная длина пароля в программе WinRAR 127 символов. Вам нужно ставить сложный пароль в виде набора букв,цифр и специальных символов не менее 8 символов в пароле. Если поставите пароль длиной 127 символов, на его расшифровку и взлом архива потребуется время, сопоставимое с временем существования вселенной.
Для более безопасной передаче данных, при которой злоумышленники не смогут перехватить архив, можно использовать соединение SFTP по протоколу SSH. О том как это настроить будет написано в другой статье.
И если даже ваш сервер и все локальные резервные копии зашифрует вирус шифровальщик, на хостинге Timeweb делаются свои резервные копии в течении трех дней по дной копии в день, и вы сможете восстановить данные там. Шифровальщик зашифрует ваш файл базы данных и создает его пустую копию, которая при следующей передаче файлов на фтп заменит файл на хостинге, но вы сможете откатить файлы на хостинге и восстановить бекап.
Создание файла скрипта и задачи в планировщике
Итак, создаём текстовый файл scriptbd1scp.txt (указывайте своё название) со скриптом, который будем далее запускать из планировщика, положим его, к примеру, в папку F:\backup, чтобы всё в одной куче было. Общий вид содержимого скрипта будет таким:
option batch on option confirm off # open ftp connection open ftp://user:password@server # synchronize files from server synchronize -criteria=size -transfer=binary remote local-path remote-path exit
Где
- user и password - подставляете данные созданного пользователя FTP Timeweb;
- local-path - путь к папке локального сервера;
- remote-path - путь к папке на фтп сервере, ставите "/", то есть в корень папки backupbd1;
- server - имя или адрес вашего сервера. В Timeweb его посмотреть можно тут:
В итоге в моём случае получилось так:
option batch on option confirm off # open ftp connection open ftp://*****_backup:HRkQeRL8SOBAKAvh50.timeweb.ru # synchronize files from server synchronize -criteria=size -transfer=binary remote F:\backup\bd1rar / exit
*В коде вместо SOBAKA - @, движок сайта думает что это почтовый адрес иначе :)
***** - скрыт основной логин хостинга.
Итак, создаём ещё одну простую задачу в планировщике по аналогии c задачей архивации. Укажем время выполнения через 15 минут после задачи архивации. Выбираем программу WinSCP в папке её установки и указываем аргументы /console /script=F:\backup\scriptbd1scp.txt:
Запускаем созданную задачу и видим, процесс передачи на фтп сервер Timeweb:
Так как файл базы у нас всегда называется одинаково, на хостинге он будет перезаписываться и вы будете понимать сколько примерно места он занимает, дабы не закончилось свободное место на хостинге для сайтов Timeweb.
На этом настройка резервного копирования завершена!