Резервное копирование и восстановление БД

Настройка резервного копирования БД

Полный путь к папке с файлами резервных копий БД задается в настройках сервера с помощью параметра BackupLocation (см. документ «Описание параметров настройки сервера.ЭСКД ProIDC»).

Для ограничения доступа к папке с резервными копиями БД необходимо воспользоваться утилитой cacls.exe, встроенной в семейство ОС Windows. Данная утилита позволяет управлять правами на уровне файловой системы NTFS.

При этом необходимо дать права на папку с резервными копиями БД SQL-серверу. Например, для пользователя «VM-WIN7-X64SQLServerMSSQLUser$VM-WIN7-x64$SQLEXPRESS», необходимо выполнить следующий набор команд под учетной записью администратора ОС Windows:

takeown /F ProIDCServer
echo y|cacls ProIDCServer /T /G %username%:F
echo y|cacls ProIDCServer /T /E /G SYSTEM:F
echo y|cacls ProIDCServer /T /E /G VM-WIN7-X64\SQLServerMSSQLUser$VM-WIN7-x64$SQLEXPRESS:F

Создание резервной копии БД и восстановление БД из нее выполняются средствами Microsoft SQL Server. Информацию о выполнении этих операций можно проверить с помощью следующих SQL-запросов:

Листинг 2. Получить список успешных резервных копирований БД
SELECT *
FROM sys.databases t1
INNER JOIN backupset t3 ON (t3.database_name = t1.name)
LEFT OUTER JOIN backupmediaset t5 ON ( t3.media_set_id = t5.media_set_id)
LEFT OUTER JOIN backupmediafamily t6 ON ( t6.media_set_id = t5.media_set_id)
ORDER BY backup_start_date DESC,t3.backup_set_id,t6.physical_device_name;
Листинг 3. Получить список успешных восстановлений БД
SELECT *
FROM sys.databases t1
INNER JOIN backupset t3 ON (t3.database_name = t1.name)
LEFT OUTER JOIN backupmediaset t5 ON ( t3.media_set_id = t5.media_set_id)
LEFT OUTER JOIN backupmediafamily t6 ON ( t6.media_set_id = t5.media_set_id)
ORDER BY backup_start_date DESC,t3.backup_set_id,t6.physical_device_name;
Листинг 4. Получить информацию о текущем выполнении операций
SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000,
getdate()) as estimated_completion_time
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')

Резервное копирование БД

Внимание

Операция доступна для всех пользователей, кроме пользователей с ролью «Аудитор/сотрудник безопасности».

Нажмите пункт меню Операции > Создать резервную копию базы данных. В журнал операций будет добавлена запись с сообщением «Операция резервного копирования базы данных поставлена в очередь задач». В журнал аудита будет добавлена запись с типом «Резервное копирование» и текстом «32: Запущен процесс создания резервной копии базы данных пользователем <логин>», где <логин> – имя учетной записи пользователя, который запустил резервное копирование.

В папке для хранения резервных копий будет создан файл с расширением BAK. Список всех BAK-файлов с датами их создания можно увидеть в окне «Резервные копии базы данных» (см. рис. 81). Чтобы открыть это окно нажмите на пункт меню Операции > Восстановить базу данных из резервной копии. Чтобы закрыть окно «Резервные копии базы данных» нажмите в нем кнопку Назад.

Если при попытке создать резервную копию возникла ошибка, то в журнал операций будет добавлена запись с сообщением «Ошибка операции резервного копирования базы данных: Ошибка при создании резервной копии базы данных : <описание ошибки>».

Восстановление БД из резервной копии

Внимание

По умолчанию восстановить БД из резервной копии может только СуперАдминистратор.

  1. Нажмите пункт меню Операции > Восстановить базу данных из резервной копии. Будет открыто окно со списком файлов резервных копий.

    ../_images/db_backups.jpg

    Рисунок 79. Резервные копии БД

  2. Выделите нужный файл и нажмите кнопку Восстановить базу.

    ../_images/db_backup_file.jpg

    Рисунок 80. Выбрана резервная копия дл восстановления

  3. Нажмите кнопку Да в окне подтверждения операции.

    ../_images/confirm_db_restore.jpg

    Рисунок 81. Окно подтверждения операции

Соединение с сервером будет разорвано. АРМ будет автоматически заблокировано. Начнется восстановление БД. Восстановление БД занимает некоторое время. Дождитесь окончания операции. Признак того, что восстановление БД завершено – успешная авторизация пользователя в АРМ. Связь с модулями в хранилище будет потеряна.