Форма "Настройки"

Проект "Агбис Резервное копирование"

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

Можно придумать множество схем восстановления базы данных из бэкапов с разными целями.
Например:

  • восстановление в случае поломки базы данных для замены рабочей базы данных,
  • восстановление для сравнения данных на дату создания бэкапов и выяснения причин не соответствия сумм задаолженности,
  • восстановление для выявления удаленных записей.

Различные варианты использования бэкапов требуют разные расписания выполнения бэкапов и время хранения бэкапов.
Большие сроки хранения и частое создание бэкапов хорошо для выше указанных работ, но требуют большой объем дискового пространства.

Будет рассмотрено четыре варианта настроек:

  • Настройки локальных бэкапов
  • Настройки SFTP сервера и SFTP клиента для дублирования бэкапов на удаленном компьютере.
  • Настройки SFTP сервера и SFTP клиента для перекрестного дублирования бэкапов.

Настройки локальных бэкапов

Пусть имеется файл рабочей базы данных E:\Agbis\DB\Agb_Local\ARM.fdb.
Требуется

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

Бэкапы будем сохранять на другой диск в папку D:\DBBackup\Agb_Local\.

Запускаем программу для настройки и обслуживания комплекса agbDBBackuperGUI.exe

открываем форму «Настройки»

Настройка параметров базы данных

Нажимаем кнопку Добавить БД

Слева в списке баз данных появляется первая запись.
Справа - карточка для заполнения реквизитов базы данных.
Меняем:
Имя БД на Agbis_Local Файл БД на E:\Agbis\DB\Agb_Local\ARM.fdb
При этом автоматически заполняется поле
Файл резервной БД - E:\Agbis\Agb_Local\ARM_clone.fdb. Это важный параметр. Если файл резервной копии задан, то поле создания каждого бэкапа выполняется восстановление базы данных. Это дает гарантии, что бэкап в рабочем состоянии. Но, с другой стороны, это добавляет нагрузку на процессор и требует дополнительное место на диске.
Резеврную копию лучше делать на отдельном диске, если есть такая возможность. Можно очистить это поле, в этом случае контрольное восстановление выполняться не будет.
Оставляем значение по умолчанию.
Описание БД - Настройка локальных бэкапов. Этот текст не влияет на работу бэкапера и служит исключительно для удобства пользователя.
Папка для бэкапов - D:\DBBackup\Agb_Local\ - папка, в которой будут создаваться все бэкапы. Если папка размещается на отдельном диске, то это повышает шансы восстановления базы данных в случае выхода из строя основного диска. На этом диске должнобыть достаточно свободного места. Позже приведем расчет необходимого места.

Нажимается кнопка Сохранить настройки для сохранения настроек.

Далее займемся настройкой расписания создания бэкапов.

Программа NBackup позволяет делать инкремнтные копии, что позволяет сократить время выполнения бэкапа и сократить необходимое для этого место.
Бэкап уровня 0 содержит полную информацию о базе данных. Поэтому для восстановления достасточно иметь бэкап уровня 0.
Бэкап уровня 1 содержит только изменения, которые произошли со времени создания бэкапа уровня 0. Поэтому для восстановления требуются оба бэкапа: бэкап уровня 1 и соответствующий бэкап уровня 0.
Бэкап уровня 2 содержит только изменения, которые произошли со времени создания бэкапа уровня 1. Поэтому для восстановления требуются три бэкапа: бэкап уровня 2 и соответствующие бэкапы уровня 1 и 0.

Настройка бэкапов уровня 0

Требуется раз в неделю делать полную копию базы данных и хранить ее две недели.
Нажимаем кнопку Добавить уровень
Хранить бэкапы, дней изменяем на 14
Создавать бэкапы выбираем Еженедельно Суббота Выполнять в 02:00
То есть создание бэкапа будет выполняться ночью в субботу, когда сотрудники отдыхают.
Нажимается кнопка Сохранить настройки для сохранения настроек.

Настройка бэкапов уровня 1

Требуется каждый день кроме субботы и воскресенья делать инкрементальную полную копию базы данных и хранить ее неделю.
Нажимаем кнопку Добавить уровень
Хранить бэкапы, дней изменяем на 7
Создавать бэкапы выбираем Еженедельно Понедельник, Вторник,Среда,Четверг,Пятница Выполнять в 03:00
То есть создание бэкапа будет выполняться ночью в субботу, когда сотрудники отдыхают.
Нажимается кнопка Сохранить настройки для сохранения настроек.

Настройка бэкапов уровня 2

Требуется каждый день каждый час в течении рабочего дня делать инкрементальную полную копию базы данных и хранить ее два дня.
Нажимаем кнопку Добавить уровень
Хранить бэкапы, дней изменяем на 2
Создавать бэкапы выбираем Ежедневно «Повторять в 9, 10,11, 12, 13, 14, 15, 16, 17, 18
То есть создание бэкапа будет выполняться в течение рабочего дня. Так как сохраняются только изменения, то это не занимает много времени и сотрудники не почувствуют замедления работы программы.
Нажимается кнопка Сохранить настройки для сохранения настроек.

Тестирование настроек

Нажимается кнопка Тест создания бэкапа.
Выполняется создания бакапа наибольшего допустимого уровня. Сейчас нет ни одного бэкапа, поэтому будет создан бэкап уровня 0.
Переключимся на форму Восстановление из бэкапа

Вернемся на форму Настройки и нажмем кнопку Тест создания бэкапа еще три раза.
Снова переключимся на форму Восстановление из бэкапа и увидим, что создано еще три бэкапа.
Значит настройки выполнены верно.

Подсчет необходимого свободного места

Оценка сверху.
3 - копии бэкапа уровня 0.
5 - копий бэкапа уровня 1.
20 - копий бэкапа уровня 2.
Размер бэкапа меньше размера базы данных.
Поэтому суммарный объем бэкапов будет меньше (3+5+20)*Размер БД.

На самом деле требуется гораздо меньше свободного места, так как инкрементные бэкапы занимают существенно меньше места.
Поэтому нужно дать поработать бэкаперу день и посмотреть реальные размеры бэкапа уровня 0, 1 и 2 и на основании этого делать выводы.
Вполне возможно, что придется сократить количество бэкапов увеличив промежутки между созданиями копий или сократить количество уровней.

Дальше, на форме "Служба" устанавливается и запускается служба.

После этого резервное копирование переходит в рабочий режим.

Мониторинг и восстановление базы данных выполняется на форме "Восстановление из бэкапа"

Настройки SFTP сервера и SFTP клиента для дублирования бэкапов на удаленном компьютере.

Дублирование бэкапов служит для повышения надежности системы восстановления базы данных.
Кроме того, дубли базы данных могут служить для составления аналитических отчетов за большой промежуток времени.
Составление таких отчетов часто сильно мешает основной работе с клиентами, так как заметно увеличивает время задержки ответов на запросы.
Еще одно применение - это тестирование нового функционала на реальных данных.

Пусть имеется файл рабочей базы данных E:\Agbis\DB\Agb_Center\ARM.fdb.
Условия на создание бэкапов возьмем такие же как в Agbis_Local Требуется

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

Бэкапы будем сохранять на другой диск в папку D:\DBBackup\Agb_Center\.

Пусть имеется второй компьютер, на котором будем хранить дубли бэкапов. На котором бэкапы будем размещать в папке D:\DBCopy\Agb_Center\.

Настройка параметров бэкапов на компьютере с базой данных

Запускаем программу для настройки и обслуживания комплекса agbDBBackuperGUI.exe, открываем форму «Настройки» и выполняем все настройки из предыдущего раздела.
Однако поле Файл резервной БД делаем пустым, так как проверка бэкапов будет выполняться на удаленном компьютере.
Остановимся на настройке предоставления доступа к папке бэкапами через протокол Secure FTP.
1. Включаем настройку Использование Secure FTP.
После этого открывается панель Давать доступ к папке бэкапов по SFTP с настройками доступа по SFTP: Логин SFTP, Пароль SFTP, Порт SFTP и Адрес SFTP сервера.
Поле Адрес SFTP сервера недоступно для редактирования и показывает IP текущего хоста. Этот IP нужно будет указать в настройках SFTP на удаленном компьютере.
Логин SFTP, Пароль SFTP, Порт SFTP можно изменять.
Эти значения нужно запомнить, так как они потребуются при настройке клиента SFTP.

Нажимается кнопка Сохранить настройки для сохранения настроек.

На форме "Служба" кнопка Открыть порты - открывает порты для работы SFTP


Службу перезапускать не требуется, так как она считывает настройки на каждом цикле работы.
Доступ к файлам открыт.

Осталось настроить клиента.

Настройка параметров бэкапов на удаленном компьютере

Настройка параметров базы данных

Имя БД на Agb_Center.

Имя БД используется для синхронизации параметров бэкапера на удаленном компьютере и компьютере с базой данных.
Поэтому Имя БД на удаленном компьютере должно совпадать со значением поля Имя БД на компьютере с базой данных.

Режим работы меняем Копирование
Включаем настройку Использование Secure FTP.
Папка для бэкапов - D:\DBCopy\Agb_Center\ В разделе Загружать файлы бэкапов с сервера SFTP заполняем значения, которые мы заполнили на панели Давать доступ к папке бэкапов по SFTP: Логин SFTP, Пароль SFTP, Порт SFTP и Адрес SFTP сервера.
Добавляем уровни, так же как на компьютере с базой данных, без этого копирование проводиться не будет! Ниже составляем расписание копирования бэкапов, например: копирование выполнять ежедневно в 7, 12, 17 часов.
Это расписание составляется в зависимости о способов использования бэкапов.
Если в течение дня резервная база даннных используется для тестирования, то разумно днем не копировать, а копировать только ночью.

Нажимается кнопка Сохранить настройки для сохранения настроек.

Осталось настроить сроки хранения бэкапов разных уровней.

Настройка сроков хранения бэкапов

В дереве слева перемещаем курсор на строку уровня 0.
Заполняем поле Хранить бэкапы, дней 30 Аналогично выставляем значение поля Хранить бэкапы, дней уровней 1 и 2.

Отметим, что сроки хранения сервере базы данных и удаленном компьютере могут быть разные. Например: для экономии места на компьютере базы данных их можно поставить минимальные, а на удаленном компьютере сделать большими для уровня 0 и минимальные для уровня

Настройка службы

На форме "Служба" открываются порты для работы SFTP, устанавливается и запускается служба.

Тестирование настроек

Предполагается, что на компьютере с центральной базой данных запущена служба, которая поднимает SFTP сервер.

Имеется две кнопки для тестирования настроек: Тест подключения к SFTP серверу и Тест копирования бэкапов с SFTP.
Первая кнопка Тест подключения к SFTP серверу запускает процедуру подключения и считывания списка файлов из папки с бэкапами.

Вторая кнопка Тест копирования бэкапов с SFTP запускает процедуру подключения и считывания самих файлов из папки с бэкапами. После ее работы на форме "Восстановление из бэкапа" и в самой папке D:\DBCopy\Agb_Center\ должны появится файлы бэкапов.

Резервное копирование настроено.

Настройки SFTP сервера и SFTP клиента для перекрестного дублирования бэкапов.

В этом примере демонстрируется, что одна и та же служба может выполнять одновременно и роль SFTP сервера и роль SFTP клиента.

Пусть на удаленном компьютере есть своя база данных, например, база данных подразделения E:\Agbis\DB\Agb_Dep\ARM.fdb.
1. Настраиваем на удаленном компьютере запись Agb_Dep для создания бэкапов.

Режим работы *Создание Использование SFTP включено Нужно обратить внимание, что порт SFTP сервера должен не совпадать с уже используемыми, например 23.
Настраивается расписание создания бэкапов.

На
форме "Служба" кнопка Открыть порты - открывает порты для работы SFTP


Службу перезапускать не требуется, так как она считывает настройки на каждом цикле работы.
Доступ к файлам открыт.
Настройка системы завершена.
====== Назначение контролов формы «Настройки» ====== *
Сохранить настройки - выполняется сохранение настроек в файл Options.xml
*
Отменить изменения настроек - выполняется считывание настроек из файла Options.xml. Все изменения после последнего сохранения теряются.
==== Дерево бэкапов ==== Система создания резервных копий позволяет настроить создание бэкапов для нескольких баз данных.
Список баз данных отображается в дереве бэкапов.
Если выбрать в нем запись, то справа в карточке бэкапа будут отображаться его настройки.
*
Добавить БД - добавляется в список баз данных новая база. * Удалить БД - удаляется из списка выбранная запись база данных и все настройки, которые к ней относятся. Сам файл базы данных остается без изменений.
*
Тест создания бэкапа - создание бэкапа, если база данных в режиме Создание
*
Тест подключения к SFTP серверу - запускает процедуру подключения и считывания списка файлов из папки с бэкапами.
*
Тест копирования бэкапов с SFTP - запускает процедуру подключения и считывания самих файлов из папки с бэкапами.
==== Блок «Главный компьютер» ==== На этой панели размещаются настройки для подключения к исходной базе данных, для которой будут делаться бэкапы.
*
Имя БД - это название базы данных, которое будет отображаться в дереве бэкапов (Agbis). * Файл БД - полное имя файла исходной базы данных (d:\DB\ARM.fdb).
*
Порт - номер порта, на котором работает Firebird. Если установлено несколько Firebird, то программа nbackup.exe берется из состава Firebird с этим портом. Если порт не указан, то по умолчанию используется порт 3050
*
Login - имя пользователя для подключения к базе данных (SYSDBA).
*
Пароль - пароль пользователя для подключения к базе данных (masterkey).
*
Кодировка - кодировка базы данных (WIN1251).
*
Описание БД - комментарий к настройкам бэкапов базы данных. На работу системы не влияет.
*
Файл резервной базы данных - это клон исходной базы данных (d:\DB\ARM_clone.fdb).
*
Папка для бэкапов - локальная папка для размещения бэкапов (d:\DB\backup\)
<alert info> На каждой итерации создается бэкап соответствующий условиям настроек уровне бэкапов.
И из полученного бэкапа восстанавливается база данных в файл, указанный в этой секции.
Это гарантирует, что из любого бэкапа можно будет восстановить базу данных.
Полученный файл резервной копии можно использовать для тестов.
</alert> ==== Давать доступ к папке бэкапов по SFTP ==== Отображается, если
Режим работы Создание. * Логин SFTP - имя пользователя для подключения к SFTP.
*
Пароль SFTP - пароль пользователя для подключения к SFTP.
*
Порт SFTP - фактически для каждой базы данных создается свой SFTP сервер, который дает доступ к папке бэкапов, поэтому каждому серверу назначается свой порт.
*
Адрес SFTP сервера - IP текущего хоста (поле информационное, чтобы проще было задавать параметры на клиенте).
*
Файл удаленной резервной БД - полное имя файла для удаленной резервной копии. Файл может быть не задан. В этом случае копирование не выполняется. (\\RHost\Folder\ARM_clone.fdb)
*
Папка для временных файлов - папка для размещения копий бэкапов на удаленном компьютере (\\RHost\Folder\Backup\) Программа nbackup.exe не может работать с сетевыми папками, поэтому для выполнения операций по созданию бэкапов с помощью nbackup.exe файлы будут размещаться в этой папке, а затем перемещаться на удаленный компьютер.
==== Загружать файлы бэкапов с сервера SFTP ==== Отображается, если
Режим работы Копирование. * Логин SFTP - имя пользователя для подключения к SFTP.
*
Пароль SFTP - пароль пользователя для подключения к SFTP.
*
Порт SFTP - фактически для каждой базы данных создается свой SFTP сервер, который дает доступ к папке бэкапов, поэтому каждому серверу назначается свой порт.
*
Адрес SFTP сервера - IP текущего хоста (поле информационное, чтобы проще было задавать параметры на клиенте).
Значения полей должны совпадать со значениями раздела
Давать доступ к папке бэкапов по SFTP SFTP сервера.
Ниже идет расписание для копирования быкапов с SFTP сервера.
==== Блок «Настройки уровней бэкапов» ==== Программа
nbackup.exe может создавать инкрементные бэкапы.
А именно, * бэкап уровня 0 содержит полную информации о базе данных (для восстановления базы данных достаточно одного этого файла).
* бэкап уровня 1 содержит изменения, которые произошли с момента создания бэкапа уровня 0 (для восстановления базы требуются два файла бэкапов - уровня 1 и соответствующий бэкап уровня 0).
* бэкап уровня 2 содержит изменения, которые произошли с момента создания бэкапа уровня 1 (для восстановления базы требуются три файла бэкапов - уровня 2 и соответствующие бэкапы уровня 1 и 0).
Это позволяет существенно сократить объем файлов занимаемый бэкапами и сократить время создания бэкапов, но усложняет процедуру восстановления, так как требуется найти соответствующие файла бэкапов.
Программа «Агбис Резервное копирование» следит за связями бэкапов и автоматически выбирает нужные.
Нужно только определить сколько будет уровней и как часто будут выполняться операции по созданию бэкапов и как долго они будут храниться.
Это зависит от наличия свобного места на диске, интенсивности работы с базой данных и ценности самих данных.
Кнопки
*
Добавить уровень - добавляет в настройки уровень бэкапов, который для настройки можно выбирать в дереве бэкапов. * Удалить уровень - удаляет самый старший уровень бэкапов. ==== Параметры уровня ==== Каждый уровень имеет индивидуальное расписание и время хранения файлов бэкапов.
Поля
*
Уровень - номер настраиваемого уровня (информационное поле). * Хранить бэкапы, дней - количество дней, которые будет сохраняться файл бэкапа. Нужно иметь в виду, что при удалении бэкапа более низкого уровня все зависимые бэкапы тоже удаляются. То есть если бэкапы уровня 0 хранятся один день, то даже, если для уровня 1 будет задано время хранения два дня, то фактически они будут хранится один день до удаления бэкапа уровня 0.
*
Расписание** - выбирается тип расписания («Ежедневно», «Еженедельно», «Ежемесячно») и в соответствии с типом выбирается час, день недели, день месяца в которые будет запускаться создание резервной копии. Запуск выполняется в течение часа.
Если в это время компьютер был выключен или служба остановлена, то после завершения часа этот бэкап делаться не будет.

Дополнительная информация