План резервного копирования
В современном мире большинство компаний должны обеспечивать круглосуточную работу ИТ-инфраструктуры. Это означает, что администратор должен гарантировать высокую доступность базы данных для пользователей.
Первым важным шагом в достижении высокой доступности является резервное копирование и успешное восстановление базы данных. Наличие резервной копии позволяет быстро реагировать на незапланированные простои, связанные с выходом из строя носителей, ошибками пользователей, повреждениями в базе данных возникших из-за стихийных бедствий и прочих катастроф.
Резервное копирование и восстановление базы данных состоит из следующих задач:
- Создание плана резервного копирования.
- Резервное копирование базы данных.
- Проверка файлов резервной копии.
- Архивирование файлов резервной копии.
- Восстановление базы данных из резервной копии в случае необходимости.
Создание плана резервного копирования
Очень важно разработать план резервного копирования базы данных, которому должен следовать администратор. План резервного копирования базы данных может касаться только базы данных или может быть частью корпоративного плана резервного копирования и восстановления всей ИТ-инфраструктуры компании.
Для подготовки плана резервного копирования необходимо учитывать несколько факторов:
- Определить файлы для копирования.
- Выбрать утилиту для резервного копирования.
- Выбрать режим резервного копирования.
- Определить объем данных для резервного копирования.
Файлы базы данных
Главной частью плана резервного копирования является идентификация файлов базы данных, которые должны обязательно копироваться для обеспечения её работоспособности после восстановления из резервной копии.
Существует две группы файлов базы данных, которые необходимо включать в резервную копию:
- Обязательные файлы – должны копироваться как единое целое, т.к. они нужны для восстановления целостности базы данных. Инструмент резервного копирования СУБД OpenEdge утилита probkup или OpenEdge Management копирует только эти файлы. Такими файлами являются файл базы данных (.db), BI-файлы (.bn), файлы данных (.dn), transaction log (.tn).
- Необязательные файлы – должны копироваться средствами операционной системы или сторонними утилитами резервного копирования. Такими файлами являются структурные файлы (.st), лог базы данных (.lg), AI-файлы (.an), хранилище ключей (.ks).
В дополнение к файлам базы данных необходимо копировать любые прочие файлы, которые являются частью приложения и обеспечивают его работу. Такими файлами могут быть:
- Исходный и компилированный код программ на языке OpenEdge ABL.
- Файлы параметров.
- Файлы процедурных библиотек.
- Файлы сетевых настроек.
- Конфигурационные файлы операционной системы.
Выбор инструментов
Не менее важной частью плана резервного копирования является выбор инструмента для резервного копирования базы данных. Можно выбрать либо инструменты резервного копирования СУБД OpenEdge, либо утилиты операционной системы или сторонние инструменты для резервного копирования.
В СУБД OpenEdge для резервного копирования баз данных используется либо утилита командной строки probkup, либо веб-консоль OpenEdge Management. Эти инструменты применяются для резервного копирования всех необходимых для работы базы данных файлов. Для копирования дополнительных файлов необходимо воспользоваться средствами операционной системы или инструментами для резервного копирования сторонних компаний.
Преимущества и недостатки использования встроенных в СУБД OpenEdge инструментов резервного копирования:
Преимущества |
Недостатки |
Создание резервных копий в онлайн или в офлайн, а также возможность формирования полной и инкрементальной резервных копий.
Возможность доступа пользователей к базе данных во время резервного копирования в онлайн. Резервное копирование всех необходимых файлов базы на основе .db-файла. Проверка каждого блока базы данных перед копированием на целостность и корректность формата блока. Резервное копирование только используемых блоков; не копируются размещённые, но не используемые (empty) блоки. Выставляется пометка о резервном копировании в базе данных. Файл резервной копии может быть проверен и восстановлен с помощью утилиты prorest. |
Резервное копирование только обязательных файлов базы данных. Дополнительные файлы необходимо копировать средствами операционной системы или сторонними средствами резервного копирования.
Медленная работа, т.к. выполняется проверка каждого блока базы данных. В момент копирования активных блоков BI-файла в онлайн приостанавливается пользовательская активность. |
Если в плане резервного копирования существующей ИТ-инфраструктуры используются утилиты операционной системы или инструменты для резервного копирования от сторонних компаний, то их также можно задействовать для резервного копирования базы данных OpenEdge.
Преимущества и недостатки такого выбора:
Преимущества |
Недостатки |
Возможность копирования как обязательных, так и необязательных файлов базы данных.
При больших размерах базы данных |
Может быть громоздким в использовании. Например, если перемещается, добавляется или удаляется экстент базы данных, то необходимо корректировать сценарии резервного копирования.
Невозможно формировать инкрементальные резервные копии. Создаются полные резервные копии всех файлов сразу. Не проверяется целостность и корректность форматов блоков базы данных. |
Выбор режима
Существует два режима резервного копирования базы данных: в онлайн или в офлайн.
Для выбора режима достаточно ответить на следующие вопросы:
- Требует ли бизнес работы базы данных в режиме 24х7?
- Влияет ли на рентабельность бизнеса остановка базы данных для резервного копирования?
- Как долго можно позволить базе данных находиться в офлайн?
Формирование резервной копии в онлайн
При создании резервной копии в онлайн пользователи могут продолжать работать с базой данных. Поэтому при выборе этого режима следует помнить:
- Резервное копирование в онлайн возможно только когда база данных находится в многопользовательском режиме. Для остановленной базы данных должен быть выбран режим резервного копирования в офлайн.
- Если в базе данных включён механизм After-Imaging, то перед началом резервного копирования СУБД выполнит переключение c текущего AI-экстента на следующий. Поэтому необходимо, чтобы следующий AI-экстент был пустым перед началом процесса резервного копирования.
- В момент старта процесса резервного копирования в онлайн активность в базе данных приостанавливается до тех пор, пока не будет скопирована необходимая информация для восстановления. Чтобы свести к минимуму продолжительность паузы, необходимо убедиться в том, что резервный носитель готов и имеет достаточно свободного пространства.
Преимущества |
Недостатки |
Подходит для баз данных, которые должны работать в режиме 24х7.
Позволяет пользователям работать с базой данных одновременно с процессом формирования резервной копии. |
Может быть медленным, так как другие пользователи конкурируют за общие ресурсы и данные. |
Формирование резервной копии в офлайн
Если существует возможность остановить базу данных на некоторое время, то этим можно воспользоваться для создания резервной копии в офлайн.
Преимущества |
Недостатки |
Работает быстрее чем в онлайн поскольку:
|
База данных недоступна пользователям до завершения процесса резервного копирования. |
Объём копируемых данных
Для определения объёма данных для резервного копирования необходимо ответить на следующие вопросы:
- Сколько времени потребуется для резервного копирования?
- Как часто необходимо создавать резервные копии?
- Может ли весь объем базы данных поместиться на один резервный носитель?
- Если нет, то может ли кто-то присутствовать для замены резервных носителей?
- Как много данных необходимо копировать каждый раз?
- Сколько времени понадобится для восстановления базы из данной резервной копии или инкрементальных резервных копий?
Типы резервных копий
Ответы на предыдущие вопросы помогут определить, какой тип резервной копии выбрать. Существует два типа резервного копирования:
- Полное резервное копирование.
- Инкрементальное резервное копирование.
Полное резервное копирование означает копирование всех блоков базы данных, содержащих прикладные данные в обязательных файлах базы данных независимо от того, когда в данные вносились изменения. Прежде чем получить возможность создания инкрементальных копий, должна быть создана полная резервная копия базы данных.
Инкрементальное резервное копирование означает копирование только тех блоков базы данных, данные в которых были изменены после полного или предыдущего инкрементального копирования. На формирование инкрементальных копий уходит значительно меньше времени, чем на формирование полной резервной копии, но потребуется больше времени для восстановления базы данных. Для восстановления базы данных необходимо сначала восстановить базу данных из полной копии, а затем последовательно поверх восстановленной базы данных восстановить все инкрементальные.
Учитывая низкую стоимость носителей для хранения резервных копий и удобство восстановления базы данных из полной резервной копии, по мере возможностей всегда старайтесь формировать полную резервную копию. Рекомендуется создавать полную резервную копию минимум один раз в неделю, в идеальном случае ежедневно.
Если полное резервное копирование отнимает много времени, то можно воспользоваться одной из следующих схем:
- Один раз в неделю создавать полную копию, а каждый последующий день инкрементальную.
- Один раз в день создавать полную копию, а каждый последующий час инкрементальную.
- Возможны иные комбинации, в зависимости от ваших требований.
Преимущества описанных схем заключаются в том, что будет несколько точек восстановления, благодаря которым можно восстановить базу данных на определённый момент времени.
Если же недопустима потеря данных больше, чем было накоплено, например, за 15 минут или меньше, то дополнительно к инкрементальным копиям необходимо включить механизм After-Imaging и сохранять в архивы AI-экстенты. Это позволит восстановить базу данных на любой момент времени, а риск потери данных будет ограничен максимум временем переключения между AI-экстентами. Подробно о реализации резервного копирования с использование механизма After-Imaging будет рассказано на следующем уроке.