Работа с данными

Резервное копирование РСУБД MS SQL Server выполняется путём установки клиента резервного копирования (также автоматически устанавливается модуль MS SQL) на узел с резервируемым экземпляром.

1. Описание подготовки

Предварительно для успешного резервного копирования и восстановления РСУБД MS SQL Server (в соответствии с Подготовка к установке):

  • подготовьте данные для подключения к резервируемому локальному экземпляру MS SQL Server;

  • выполните настройку конфигурационного файла модуля С:\RuBackup-win-client\etc\rb_module_mssql_win.conf для подключения к локальному экземпляру;

  • обеспечьте свободное место на диске для промежуточного сохранения РК:

    • примерно 100% от размера резервируемых данных при полном типе резервного копирования;

    • примерно 50% от размера резервируемых данных при дифференциальном или инкрементальном резервном копировании;

    • задайте директорию для промежуточного сохранения резервной копии в конфигурационном файле клиента резервного копирования С:\RuBackup-win-client\etc\rb_module_mssql_win.conf.txt, для параметра use-local-backup-directory;

  • установите роль sysadmin уровня сервера в MS SQL Server для пользователя, от имени которого модуль rb_module_mssql_win будет подключаться к MS SQL Server и выполнять резервное копирование и восстановление;

  • проверьте, что экземпляр MS SQL Server запущен и база данных master доступна;

  • при использовании VSS-режима убедитесь, что служба SQL Writer работает (имеет статус Stable).

2. Описание резервного копирования СУБД

2.1. ODBC режим

При запуске задачи на резервное копирование экземпляра MS SQL Server:

  1. Модуль MS SQL посылает Transact-SQL запрос к локальному экземпляру MS SQL Server на создание резервной копии.

  2. MS SQL Server создаёт резервную копию во временную директорию:

    1. в зависимости от значения параметра тонкой настройки модуля number_of_disks резервная копия будет сохранена в заданное количество файлов (для полного РК - с расширением .bak; для дифференциального РК - с расширением .diff, для инкрементального РК - с расширением .trn);

    2. при резервном копировании в кластере MS SQL Server (availability groups):

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

      • определить тип реплики Primary или Secondary, для которого будет выполняться резевное копирование.

        Роль реплики Secondary временно не поддерживается;

      • установить выбранное значение реплики для параметра PreferredReplica в конфигурационном файле модуля С:\RuBackup-win-client\etc\rb_module_mssql_win.conf на каждом узле MS SQL Server;

    3. в отказоустойчивом кластере (On failover cluster instances):

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

      • рекомендуем указывать учётные данные пользователя (имя пользователя и пароль) в конфигурационном файле модуля С:\RuBackup-win-client\etc\rb_module_mssql_win.conf для подключения к базе данных.

  3. Резервное копирование MS SQL Server выполняется в контексте модели восстановления базы данных, которая предназначена для управления журналом транзакций.

    Создание резервной копии поддерживается при любой модели восстановления (Full, Bulk-logged или Simple), но необходимо учитывать ограничения той или иной модели:

    1. при использовании модели восстановления Simple Recovery model резервное копирование журнала транзакций не поддерживается;

    2. при использовании модели восстановления Bulk-logged осуществляется минимальное ведение журнала транзакций, который подлежит резервному копированию;

    3. при использовании модели восстановления Full осуществляется полное ведение журнала транзакций, который подлежит резервному копированию.

  4. Выполняется резервное копирование в зависимости от выбранного типа:

    1. полное резервное копирование может выполняться для всех баз данных, в том числе системных (master, model, msdb).

      Полное резервное копирование может быть дополнено:

    2. дифференциальными резервными копиями;

    3. инкрементальными резервными копиями - создание цепочки резервных копий журналов транзакций.

  5. Если в правиле резервного копирования определен параметр Защитное преобразование, то архивные файлы резервной копии будут преобразованы по выбранному алгоритму защитного преобразования с помощью мастер-ключа, сгенерированному на клиенте РК.

  6. Если в тонких настройках модуля активирован переключатель compression, то архивные файлы резервной копии будут сжаты средствами MS SQL Server [1].

  7. Модуль отправляет подготовленную резервную копию на медиасервер с помощью утилиты rbfd.

  8. Временная директория очищается.

2.2. VSS режим

При запуске задачи на полное резервное копирование экземпляра MS SQL Server:

  1. Для выполнения резервного копирования в режиме VSS с применением технологии создания моментальных снимков активируйте переключатель use_vss_snapshot тонких настроек модуля MS SQL.

  2. Модуль MS SQL запрашивает создание мгновенного снимка базы данных у службы VSS.

  3. VSS уведомляет SQL Writer о начале процесса создания мгновенных снимков.

  4. SQL Writer замораживает все операции ввода-вывода между MS SQL Server и базой данных.

  5. MS SQL Server фиксирует все незавершённые транзакции, приводя все файлы в консистентное состояние.

  6. VSS создаёт теневую копию, которая занимает минимальное дисковое пространство.

    Для последующего восстановления РК с развертыванием необходимо сохранить метаданные полученные при резервном копировании - файл vss_metadata в snap каталоге, содержащий полный сгенеренный VSS XML-файл.

  7. MS SQL Server возвращается к нормальному режиму работы.

  8. rbfd перемещает файлы теневой копии на медиасервер.

При запуске задачи на дифференциальное резервное копирование экземпляра MS SQL Server:

  1. VSS обеспечивает информацию об измененных частях файлов базы данных.

  2. rbfd выполняет вычисления от последней полной резервной копии, выполненной в режиме VSS.

  3. Файлы дифференциальной РК перемещаются на медиасервер.

3. Описание восстановления СУБД

3.1. ODBC режим

3.1.1. Подготовка

Предварительно, если база данных не существует:

  • у пользователя, от имени которого происходит подключение к MS SQL Server для восстановления, должо быть разрешение CREATE DATABASE.

Предварительно, если база данных существует:

  • у пользователя, от имени которого происходит подключение к MS SQL Server для восстановления, должо быть разрешение на восстановление базы данных, которое по умолчанию предоставлено пользователю с ролью sysadmin, dbcreator или dbo уровня сервера в MS SQL Server.

3.1.2. Восстановление

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

  1. Резервная копия будет перемещена из медиасервера на клиент резервного копирования и распакована в выбранный Каталог распаковки.

    В случае, если РК было выполнено с защитным преобразованием, то РК будет обратно преобразована с использованием того же мастер-ключа.

  2. Если активирован переключатель Восстановить на целевом ресурсе, то модуль делает запрос в MS SQL Server на восстановление экземпляра из Каталога распаковки.

    Для системных баз данных (master, msdb, model) восстановление на целевом ресурсе (с автоматическим развертыванием) не поддерживается, необходимо проводить восстановление вручную.

  3. При восстановлении полной РК база данных будет перезаписана полностью.

  4. После восстановления каталог распаковки очищается.

  5. Восстановленная база данных соответствует состоянию исходной базы данных на момент завершения резервной копии, за исключением незавершённых транзакций.

3.1.3. Восстановление из смешанных цепочек

При восстановлении базы данных из двух смешанных цепочек дифференциальных и инкрементальных резервных копий с развёртыванием (например, когда для одной базы данных резервное копирование выполнялось по двум правилам: дифференциального и инкрементального резервного копирования) необходимо восстановить все РК, с момента выполнения полной РК базы данных до выбранного момента восстановления базы данных из инкрементальной РК, по порядку ID резервных копий:

  1. Предварительно очистите Каталог распаковки.

  2. Восстановите полную резервную копию базы данных в выбранный Каталог распаковки БЕЗ восстановления на целевом ресурсе.

  3. Все восстанавливаемые цепочки РК должны начинаться с одной и той же полной РК.

  4. Восстановите дифференциальную резервную копию базы данных в выбранный Каталог распаковки БЕЗ восстановления на целевом ресурсе.

  5. Запустите восстановление выбранной инкрементальной РК, указав тот же Каталог распаковки и активировав переключатель Восстановить на целевом ресурсе.

    Таким образом будут восстановлены сначала полная РК, затем дифференциальная РК, а затем все журналы транзакций, созданные после дифференциальной резервной копии базы данных, в хронологическом порядке.

3.1.4. Восстановление БД в Always On availability groups

При восстановлении РК в кластере MS SQL Server (availability groups) (например, состоящем из Primary и Secondary реплик):

  1. Автоматическое развёртывание в каждую реплику кластера не поддерживается.

  2. Выведите восстанавливаемую базу данных из Always On availability group на Primary реплике:

    ALTER AVAILABILITY GROUP [<Availability Group>] REMOVE DATABASE [<Database Name>]
  3. Восстановите базу данных на Primary реплике, активировав переключатель Восстановить на целевом ресурсе.

  4. Восстановите базу данных на Secondary реплике, активировав переключатель Восстановить на целевом ресурсе и активировав переключатель norecovery в тонких настройках восстановления модуля MS SQL.

  5. Добавьте базу данных в Always On availability group на Primary реплике:

    ALTER AVAILABILITY GROUP [<Availability Group>] ADD DATABASE [<Database Name>]
  6. Присоедините базу данных в Always On availability group на Secondary реплике:

    ALTER DATABASE <Database Name> SET HADR AVAILABILITY GROUP = <Availability Group>

3.2. VSS режим

При запуске задачи на восстановление базы данных из теневой копии:

  1. Для полной замены базы данных master остановите службу SQL Server.

  2. Для восстановления РК без развёртывания деактивируйте переключатель Восстановить на целевом ресурсе.

    Файлы РК будут консистентны и восстановлены только в указанный Каталог распаковки, и могут быть использованы для восстановления вручную путем копирования в нужные каталоги.

  3. Для восстановления базы данных с развёртыванием активируйте переключатель Восстановить на целевом ресурсе:

    1. Резервная копия перемещается из медиасервера на клиент резервного копирования в указанный Каталог распаковки.

    2. Модуль MS SQL запрашивает восстановление базы данных у службы VSS.

    3. VSS уведомляет SQL Writer о начале процесса восстановления базы данных из теневой копии.

    4. SQL Writer замораживает файлы, которые будут восстановлены, и все операции ввода-вывода между MS SQL Server и базой данных, файлы которой будут восстановлены.

    5. Файлы базы данных заменяются, путём копирования файлов из Каталога распаковки в оригинальные места.

    6. Файлы размораживаются. MS SQL Server возвращается к нормальному режиму работы.

    7. После восстановления Каталог распаковки очищается.

4. Описание работы с данными в RBM

4.1. РК для одного экземпляра по расписанию

Выполнение резервного копирования для одного экземпляра MS SQL Server по расписанию:

  1. Запустите Менеджер Администратора RuBackup (RBM).

  2. Авторизуйтесь с правами Администратора СРК.

  3. Проверьте статус клиента РК, на котором развёрнут модуль MS SQL.

  4. Создайте и настройте правило полного резервного копирования для создания плановых резервных копий любым способом:

    • в разделе Глобальное расписание, нажав кнопку Добавить и настроив создаваемое Правило;

    • в разделе Объекты, выбрав вкладку Правила и нажав кнопку Добавить;

      Правило должно иметь статус run (запущено) для выполнения резервного копирования по расписанию.

  5. В разделе Очередь задач отслеживайте статус выполненных и ход выполняемых задач резервного копирования.

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

4.2. РК для кластера по расписанию

Выполнение резервного копирования для кластера MS SQL Server по расписанию:

  1. Запустите Менеджер Администратора RuBackup (RBM).

  2. Авторизуйтесь с правами Администратора СРК.

  3. Проверьте статус клиента РК, на котором развёрнут модуль MS SQL.

  4. Создайте и настройте последовательно:

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

    • правило стратегии для каждого экземпляра кластера в разделе Стратегии, выделив нужную стратегию и нажав кнопку Правила. Повторите создание правила для каждого экземпляра;

    Правило должно иметь статус run (запущено) для выполнения резервного копирования по расписанию.
  5. В разделе Очередь задач отслеживайте статус выполненных и ход выполняемых задач резервного копирования.

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

4.3. Срочное РК

Срочное резервное копирование выполняется для одного экземпляра:

  1. Запустите Менеджер Администратора RuBackup (RBM).

  2. Авторизуйтесь с правами Администратора СРК.

  3. Проверьте статус клиента РК, на котором развёрнут модуль MS SQL и резервируемый.

  4. Выполните срочное резервное копирование любым способом:

    • быстрый доступ к функции срочного резервного копирования по нажатию на кнопку Срочное РК на верхней панели RBM;

    • в разделе Объекты, выделив клиента РК, который управляет резервным копированием ВМ, и нажав появившуюся кнопку Срочное РК;

  5. Выполните настройку параметров резервного копирования (см. Тонкие настройки модуля при выполнении РК);

  6. В разделе Очередь задач отслеживайте статус выполненных и ход выполняемых задач резервного копирования.

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

4.4. Восстановление из РК

Для выполнения восстановления экземпляра из резервной копии:

  1. Запустите Менеджер Администратора RuBackup (RBM).

  2. Авторизуйтесь с правами Администратора СРК.

  3. Проверьте статус клиента РК, на котором развёрнут модуль MS SQL и восстанавливаемый экземпляр.

  4. В разделе Репозиторий выберите РК и нажмите кнопку Восстановить.

  5. Выполните настройку параметров восстановления (см. Тонкие настройки модуля при восстановлении);

  6. В разделе Очередь задач отслеживайте статус выполненных и ход выполняемых задач восстановления резервной копии;

В результате произведено восстановление удаленной или изменённой MS SQL Server до состояния, в котором она была на момент создания резервной копии.

5. Особенности настройки RBM для РК MS SQL Server

При выполнении любого сценария (при настройке правил, стратегий, восстановления из РК) следует в соответствующих полях указать следующие данные:

  • в поле Клиент выбрать из выпадающего списка имя клиента РК, на котором развёрнут клиент резервного копирования с модулем MS SQL и резервируемая локальная РСУБД MS SQL Server ;

  • в поле Тип ресурса выбрать из выпадающего списка SQL Server;

  • при необходимости произвести тонкую настройку модуля MS SQL;

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

  • в поле Тип РК выбрать «Полное», «Дифференциальное» или «Инкрементальное».