Резервное копирование MS SQL: пара полезных функций Commvault, про которые не все знают

azg63fgl1r4cfr9t0_1-vfrebxo.png
Сегодня расскажу про две возможности Commvault для резервного копирования MS SQL, которые незаслуженно обходят стороной: гранулярное восстановление и плагин Commvault для SQL Management Studio.  Базовые моменты настройки рассматривать не буду. Пост скорее для тех, кто уже умеет устанавливать агент, настраивать расписание, политики и пр. О том, как устроен Commvault и что он умеет, рассказывал в этом посте.

Гранулярное восстановление


Опция table level restore появилась в свойствах Subclient  относительно недавно. Она позволяет включить возможность восстановления таблиц из базы данных, при этом не восстанавливая из бэкапа всю базу данных. Это удобно, когда знаешь, где конкретно ошибка или потеря данных. При этом сама база большая и восстанавливать ее всю займет много времени.
e9r-5mcu7hen0f9x3txq1rxsuw8.jpeg

У этой опции есть ограничения:
— Таблицы нельзя восстановить в исходную базу данных, только в другую.  
— Все таблицы восстанавливаются в схему dbo. Таблицу нельзя восстановить в пользовательскую схему.
— Поддерживается только локальная учетная запись SQL-сервера с правами системного администратора.
— Целевой сервер, куда восстанавливаем таблицу, должен работать на ОС Windows.
— На целевом сервере, помимо агента SQL, должны быть установлены Media Agent и Java Runtime Environment.
— База данных должна использовать Recovery model в режиме Full.
— Если включена опция гранулярного восстановления БД, пропадает возможность запускать задания на дифференциальное резервное копирование.  

de88wtsschuzzmp-dcmm1pms7-s.jpeg
Опция table-level-restore выключена.

5deae5vhqzy1jw_8xhwppaldjia.jpeg
Опция table-level-restore выключена.

В моей практике был случай, когда у клиента для SQL-сервера было настроено следующее расписание: один полный бэкап раз в неделю и 6 дифференциальных бэкапов в будние дни. Он включил функцию table-level-restore, и задания на дифференциальный бэкап отрабатывались с ошибкой.

Посмотрим, как же будет выглядеть само восстановление.
1. Запускаем восстановление на нужном агенте.
e2p9wab_8tnblg6giokx7vnhhuq.jpeg

2. В появившемся окне переходим во вкладку Advanced Options. Выбираем SQL Granular Browse — View Content.
akvfo1b1qes9sgvnft5hbozu86m.jpeg

3. В открывшемся списке выбираем базу, из которой будем восстанавливать таблицу, и нажимаем Restore Granular.
e5zpwokavkwqhieszf1towlmkm8.jpeg

4. В диалоговом окне настраиваем точку монтирования базы данных из файлов резервного копирования (что-то вроде технологии Instant Recovery).
Указываем:

  • имя для временной базы данных;
  • как долго держать данную точку восстановления в днях;
  • сервер, куда мы будем монтировать базу данных. В списке будут доступны только сервера, выполняющие все необходимые условия, про которые говорил выше: c ОС Windows, установленными Media Agent и Java Runtime Environment и пр.

Нажимаем ОК.
vdrm0s597zro1cduudlfkabs83w.jpeg

5. В новом окне нажимаем на List Recovery Points.
drrheytr4et_xletdcpojpwbmlm.jpeg

6. Откроется список примонтированных точек восстановления. Если база данных большая, то придется подождать. Затем нажимаем Browse. Появится окно для просмотра таблиц из выбранной базы данных.
nx0r0zja78oa0jhbbjw7y60xquk.jpeg

Пока формируется список, часто диалоговое Recovery Points закрывают, а потом не могут туда вернуться снова. Все просто: кликните правой кнопкой по инстансу SQL-сервера, где был запущен процесс монтирования точки восстановления. Перейдите в All Tasks и выберите List Recovery Points.
_lb15ylva1vqhh82ffp8_mveg2y.jpeg

7. Если таблиц много, для их отображения потребуется некоторое время. Например, для базы данных на 40 ГБ список формируется минут десять. Выбираем нужную таблицу, нажимаем Recover All Selected.
7qrfjlvm3e3pyccdaipcozmssqc.jpeg

8. В новом окне выбираем базу, куда будем восстанавливать таблицу (ы). В нашем случае — это база GPI TEST.
md46i29vzypakjqlj-vtskacliq.jpeg

9. После завершения восстановления в базе GPI TEST появятся выбранные таблицы.
ue0hwqzoktno-_lh1k2d8ux7zrs.jpeg

После восстановления таблицы во временную базу данных ее можно перенести в исходную базу данных средствами Management Studio.

Plug-in от Commvault для SQL Management Studio


Администраторы баз данных не всегда имеют доступ в систему резервного копирования (СРК). Иногда нужно сделать что-то срочно, а администратора СРК нет на месте. С помощью плагина Commvault  для SQL Management Studio администратор БД сможет выполнить базовые действия по резервному копированию и восстановлению данных.

QL Management Studio Version
Command
SQL 2008 R2
CvSQLAddInConfig.exe /i 10 /r
SQL 2012
CvSQLAddInConfig.exe /i 11 /r
SQL 2014
CvSQLAddInConfig.exe /i 12 /r
SQL 2016
CvSQLAddInConfig.exe /i 13 /r
SQL 2017
CvSQLAddInConfig.exe /i 14 /r


Версии SQL-серверов, которые поддерживают Commvault Plug-in и команды, которые активируют работу плагина. Плагин поддерживается только на 64-битной версии ОС Windows.

1. Выполняем команду, которая соответствует нашей версии SQL server:
goqyzhsrhqzci0buz1zo8biha3e.jpeg

2. Теперь в Management Studio стали доступны опции по резервному копированию и восстановлению. Для этого нужно кликнуть правой кнопкой мыши на нужную базу данных.
У администратора, таким образом, появилась возможность напрямую взаимодействовать с резервными копиями данной базы данных без консоли Commvault и обращений к администратору СРК.
pa5sb-xjzyxss86vfzkwgbjmagy.jpeg

3. При запуске любой из доступных функций данного меню появится окно с запросом логина и пароля. Для подключения к CommServe используется SSO или же любая другая учетная запись из раздела Security в Commserve (Commcell login).
8yth8_gnlkmjc_ypieqwua8kof4.jpeg

zy2o8mg49z284ozv5o5pqyqupei.png

4. Если учетные данные были введены правильно и прав доступа хватает, администратор БД может:
— запустить внеочередное резервное копирование (Backup);
— восстановить базу из бэкапа (Restore);
— просмотреть историю выполненных заданий (View History) и прогресс по заданиям в процессе выполнения (Job monitor).
lvdrqfvjvnvyim_rmicorvcdjlo.jpeg
Вот так  в Management Studio выглядит история выполненных заданий резервного копирования по выбранной базе данных.

iff9mqi1zhjpidawfpfhr3l3bk4.jpeg
Меню для восстановления базы данных. Оно даже не отличается от меню консоли.

На этом все об этих двух возможностях агента SQL от Commvault. Добавлю, что резервное копирование средствами Commvault больше подойдет тем, у кого на обслуживании десятки серверов, с несколькими инстансами и БД, все это, возможно, на разных площадках и требует настройки разного расписания, глубины и пр. Если у вас пара серверов, то для бэкапа хватит и штатных средств MS SQL.

Источник: documentation.commvault.com

© Habrahabr.ru