Restore SQL Server databases on Azure VMs (Восстановление баз данных SQL Server на виртуальных машинах Azure)

В этой статье описано, как восстановить запущенную на виртуальной машине (VM) Azure базу данных SQL Server, резервная копия которой была создана в хранилище Служб восстановления Azure Backup с помощью службы Azure Backup.

В этой статье описывается восстановление баз данных SQL Server. Дополнительные сведения см. в статье Back up SQL Server database on Azure VMs (Резервное копирование базы данных SQL Server на виртуальных машинах Azure).

Примечание.

Дополнительные сведения о поддерживаемых конфигурациях и сценариях можно найти в матрице резервной копии SQL.

Восстановление на время или точку восстановления

В Azure Backup можно выполнить восстановление баз данных SQL Server, запущенных на виртуальных машинах Azure, следующим образом.

  • Восстановление баз данных в состоянии на определенную дату или время (до секунды) с помощью резервных копий журнала транзакций. На основе выбранного времени Azure Backup автоматически определяет соответствующее полное разностное резервное копирование и цепочку резервных копий журналов, необходимых для восстановления.
  • Восстановление конкретной полной или разностной резервной копии по определенной точке восстановления.

Предварительные требования для восстановления

Перед восстановлением базы данных обратите внимание на следующее.

  • Можно восстановить базу данных на экземпляре SQL Server, расположенном в том же регионе Azure.
  • Целевой сервер должен быть зарегистрирован в том же хранилище, что и исходный сервер. Если вы хотите восстановить резервные копии в другом хранилище, включите перекрестное восстановление подписки.
  • Если на сервере работает несколько экземпляров, все эти экземпляры должны быть настроены и задействованы. В противном случае сервер не будет отображаться в списке целевых серверов для восстановления базы данных. Подробные сведения см. в статье Устранение неполадок.
  • Чтобы восстановить базу данных, зашифрованную с помощью технологии TDE, на другой экземпляр SQL Server, сначала восстановите сертификат на целевом сервере.
  • Базы данных с поддержкой CDC следует восстановить с помощью параметра восстановить как файлы .
  • Чтобы восстановить базу данных master, мы рекомендуем использовать функцию Восстановить в виде файлов и команды T-SQL.
  • Остановите службу агента SQL Server для всех системных баз данных (model, msdb), прежде чем активировать восстановление.
  • Закройте все приложения, которые могут попытаться перехватить подключение к любой из этих баз данных.

Восстановление базы данных

Для выполнения восстановления требуются следующие разрешения.

  • оператор резервного копирования для хранилища, в котором выполняется восстановление.
  • Доступ участника (с правами на запись) к исходной виртуальной машине, резервное копирование которой выполняется.
  • Доступ участника (записи) к целевой виртуальной машине:
    • Если вы выполняете восстановление на ту же виртуальную машину, целевой будет исходная виртуальная машина,
    • а если в альтернативное расположение, целевой будет новая виртуальная машина.

Восстановление состоит из следующих шагов.

  1. На портале Azure перейдите в Центр резервного копирования и щелкните + Резервная копия.

    Screenshot showing the start the restore process.

  2. Выберите в качестве типа источника данных SQL на виртуальной машине Azure, укажите базу данных для восстановления и нажмите кнопку Продолжить.

    Screenshot showing to select the datasource type.

  3. В разделе Конфигурация восстановления укажите, где (или как) следует восстановить данные.

    • Альтернативное расположение — база данных восстановится в другом расположении, а оригинальная база данных-источник будет сохранена.

    • Перезаписать базу данных: восстановление данных в том же экземпляре SQL Server, где находится исходный источник. В этом варианте перезаписывается исходная база данных.

      Важно!

      Если выбранная база данных принадлежит к группе доступности Always On, SQL Server не позволит перезаписать базу данных. Доступно только значение Альтернативное расположение.

    • Восстановить в виде файлов. Вместо восстановления в качестве базы данных восстановите файлы резервных копий, которые можно будет воспроизвести в виде базы данных на любом компьютере с этими файлами с помощью SQL Server Management Studio.

Восстановление в альтернативном расположении

  1. В меню Конфигурация восстановления в разделе Выбор места для восстановления выберите Альтернативное расположение.

  2. Выберите имя сервера SQL Server и экземпляр, в котором нужно восстановить базу данных.

  3. В поле Имя восстановленной базы данных введите имя целевой базы данных.

  4. Если это применимо, выберите параметр Overwrite if the DB with the same name already exists on selected SQL instance (Перезаписать, если база данных с тем же именем уже существует в выбранном экземпляре SQL).

  5. Выберите точку восстановления и выберите тип восстановления: до определенной точки во времени или до определенной точки восстановления.

    Screenshot showing to select Restore Point.

    Screenshot showing restore to point in time.

  6. В меню Расширенная конфигурация выполните следующие действия.

    • Чтобы оставить базу данных после восстановления в нерабочем состоянии включите Restore with NORECOVERY.

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

      Enter target paths

  7. Выберите OK для запуска восстановления. Отслеживайте ход восстановления в области уведомлений или в представлении задания резервного копирования в хранилище.

    Примечание.

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

Восстановление и перезапись

  1. В меню Конфигурация восстановления в разделе Выбор места для восстановления выберите Перезаписать базу данных>ОК.

    Select Overwrite DB

  2. В разделе Выбор точки восстановления выберите Журналы (точка во времени), чтобы выполнить восстановление до определенной точки во времени. Или выберите Полные и дифференциальные, чтобы выполнить восстановление до определенной точки восстановления.

    Примечание.

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

Восстановление в виде файлов

Чтобы восстановить данные резервной копии в виде файлов .bak, а не в виде базы данных, выберите параметр Восстановление в виде файлов. Когда файлы будут скопированы в указанное расположение, их можно будет использовать на любом компьютере, где их нужно восстановить в качестве базы данных. Так как эти файлы можно переместить на любой компьютер, теперь можно восстанавливать данные в разных подписках и регионах.

  1. В разделе где и как выполнить восстановление выберите восстановить как файлы.

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

  3. В поле Конечный путь на сервере введите путь к папке на сервере, выбранном на шаге 2. В этом расположении служба создаст дамп всех необходимых файлов резервной копии. Как правило, использование пути к общей сетевой папке или пути к подключенной общей папке Azure, если он указан в качестве пути назначения, упрощает доступ к этим файлам с других компьютеров в той же сети или с подключенной к ним общей папкой Azure.

    Примечание.

    Чтобы восстановить файлы резервной копии базы данных в общей папке Azure, подключенной к целевой зарегистрированной виртуальной машине, убедитесь, что у NT AUTHORITY\SYSTEM есть общий доступ к файлам. Вы можете выполнить указанные ниже действия, чтобы предоставить разрешения на чтение и запись для подключения к AFS на виртуальной машине.

    • Запуск PsExec -s cmd для ввода в оболочку NT AUTHORITY\SYSTEM
      • Выполните команду cmdkey /add:<storageacct>.file.core.windows.net /user:AZURE\<storageacct> /pass:<storagekey>.
      • Проверьте доступ с помощью dir \\<storageacct>.file.core.windows.net\<filesharename>
    • Запустите восстановление в качестве файлов из хранилища архивации в \\<storageacct>.file.core.windows.net\<filesharename> качестве пути
      Скачайте программу PsExec со страницы Sysinternals.
  4. Нажмите ОК.

    Select Restore As Files

  5. Выберите точку восстановления и выберите тип восстановления: до определенной точки во времени или до определенной точки восстановления.

  6. При восстановлении базы данных SQL на определенный момент времени с помощью восстановления в качестве файлов все точки восстановления будут храниться все точки восстановления из полной резервной копии до выбранной точки во времени. Затем вы можете восстановить эти файлы в качестве базы данных на любом компьютере, который они присутствуют с помощью SQL Server Management Studio.

    Restored Backup Files in Destination Path

Восстановление данных до определенной точки во времени

Если вы выбрали Logs (Point in Time) (Журналы (восстановление до точки во времени)) как тип восстановления, выполните следующие действия:

  1. В меню Restore Date/Time откройте календарь. В календаре даты с точками восстановления отображаются жирным шрифтом, а текущая дата подсвечивается.

  2. Выберите дату с точками восстановления. Нельзя выбрать даты, не имеющие точек восстановления.

    Open the calendar

  3. После выбора даты временная шкала отображает доступные точки восстановления в непрерывном диапазоне.

  4. Укажите время для восстановления с помощью временной шкалы или выберите время. Затем выберите OK.

Частичное восстановление в виде файлов

Служба Azure Backup самостоятельно определяет, какую цепочку файлов нужно скачать в процессе восстановления в виде файлов. Но в некоторых сценариях вам нет смысла скачивать все содержимое снова.

Для примера предположим, что ваша политика резервного копирования еженедельно создает полные копии, ежедневно создает разностные копии и копии журналов, и вы уже скачали файлы из разностной резервной копии. Затем вы обнаружили, что неправильно выбрали точку восстановления, и теперь вам нужно скачать разностную резервную копию за следующий день. В этом случае вам достаточно скачать только разностный файл, ведь файл начальной полной копии у вас уже есть. Возможность частичного восстановления в виде файлов в Azure Backup позволяет исключить полную резервную копию из цепочки для скачивания, и получить только разностную резервную копию.

Исключение типов файлов из резервной копии

Расширение ПараметрыOverrides.json — это файл JSON (нотация объектов JavaScript), содержащий переопределения для нескольких параметров службы архивации Azure для SQL. Для операции частичного восстановления в виде файлов нужно добавить в него новое поле JSON с именем RecoveryPointTypesToBeExcludedForRestoreAsFiles. Это поле содержит строковое значение, которое обозначает, какие типы точек восстановления следует исключить при следующей операции восстановления в виде файлов.

  1. На целевом компьютере, куда вы намерены скачать файлы, перейдите в папку "C:\Program Files\Azure Workload Backup\bin".

  2. Создайте файл JSON с именем Extension ПараметрыOverrides.JSON, если он еще не существует.

  3. Добавьте в него следующую пару "ключ – значение" в формате JSON.

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Вам не потребуется перезапускать службы. Служба Azure Backup попытается исключить из цепочки восстановления типы резервных копий, упомянутые в этом файле.

При операции RecoveryPointTypesToBeExcludedForRestoreAsFiles учитываются только определенные значения, обозначающие точки восстановления, которые будут исключены из процесса восстановления. Для SQL поддерживаются следующие значения:

  • ExcludeFull (исключает полные резервные копии и скачивает все остальные типы, например разностные и копии журналов, которые присутствуют в цепочке точек восстановления).
  • ExcludeFullAndDifferential (исключает полные и разностные резервные копии и скачивает все остальные типы, например копии журналов, которые присутствуют в цепочке точек восстановления).
  • ИсключитьFullAndIncremental (другие типы резервных копий, такие как журналы, будут загружены, если они присутствуют в цепочке точек восстановления)
  • ExcludeFullAndDifferentialAndIncremental (исключает полные, разностные и добавочные резервные копии и скачивает все остальные типы, например копии журналов, которые присутствуют в цепочке точек восстановления).

Восстановление данных до определенной точки восстановления

Если вы выбрали Full & Differential (Полная и разностная) как тип восстановления, выполните следующие действия:

  1. Чтобы завершить процедуру, из списка точек восстановления выберите точку восстановления и нажмите кнопку ОК.

    Choose a full recovery point

    Примечание.

    По умолчанию отображаются точки восстановления за последние 30 дней. Вы можете отобразить точки восстановления старше 30 дней, выбрав Фильтр и настраиваемый диапазон.

Восстановление баз данных с большим количеством файлов

Если общий размер строки файлов в базе данных превышает определенный предел, Azure Backup сохраняет список файлов базы данных в другом компоненте, чтобы не задавать целевой путь восстановления во время операции восстановления. Файлы будут восстановлены по пути SQL по умолчанию.

Restore Database with large file

Восстановление базы данных из файла .bak с помощью SSMS

Операцию восстановления в качестве файлов можно использовать для восстановления файлов базы данных в .bak формате при восстановлении из портал Azure. Подробнее.

После завершения восстановления .bak файла на виртуальную машину Azure можно активировать восстановление с помощью команд TSQL с помощью SSMS.   Чтобы восстановить файлы базы данных на исходном сервере, удалите MOVE предложение из запроса восстановления TSQL.   Пример

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'

Примечание.

На целевом сервере не должно быть одинаковых файлов базы данных (восстановление с заменой).  Кроме того, можно включить мгновенное инициализацию файлов на целевом сервере, чтобы сократить затраты на время инициализации файлов.

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

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'  MOVE N'<LogicalName1>' TO N'<TargetFilePath1OnDisk>',  MOVE N'<LogicalName2>' TO N'<TargetFilePath2OnDisk>' GO

Пример

  USE [master] 
  RESTORE DATABASE [test] FROM  DISK = N'J:\dbBackupFiles\test.bak' WITH  FILE = 1,  MOVE N'test' TO N'F:\data\test.mdf',  MOVE N'test_log' TO N'G:\log\test_log.ldf',  NOUNLOAD,  STATS = 5 
  GO

Если для базы данных существует более двух файлов, можно добавить дополнительные MOVE предложения в запрос восстановления. Вы также можете использовать SSMS для восстановления базы данных с помощью .bak файлов. Подробнее.

Примечание.

Для восстановления больших баз данных рекомендуется использовать инструкции TSQL. Если вы хотите переместить определенные файлы базы данных, просмотрите список файлов базы данных в формате JSON, созданном во время операции восстановления в качестве файлов .

Восстановление между регионами

Один из вариантов восстановления между регионами (CRR) позволяет восстановить базы данных SQL, размещенные на виртуальных машинах Azure в дополнительном регионе, который является парным регионом Azure.

Чтобы приступить к использованию функции, ознакомьтесь с разделом Перед началом работы.

Чтобы узнать, включено ли восстановление между регионами, следуйте инструкциям в разделе Настройка восстановления между регионами.

Просмотр элементов резервного копирования в дополнительном регионе

Если включено восстановление между регионами, можно просмотреть элементы резервного копирования в дополнительном регионе.

  1. Перейдите в раздел Хранилище служб восстановления>Архивные элементы на портале.
  2. Выберите Дополнительный регион, чтобы просмотреть элементы в дополнительном регионе.

Примечание.

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

Backup items in secondary region

Databases in secondary region

Восстановление в дополнительном регионе

Возможности восстановления в нем будут соответствовать возможностям восстановления в основном регионе. При вводе параметров в области конфигурации восстановления вам будет предложено указать только параметры дополнительного региона. Хранилище должно существовать в дополнительном регионе, а сервер SQL должен быть зарегистрирован в хранилище в дополнительном регионе.

Where and how to restore

Trigger restore in progress notification

Примечание.

  • После запуска восстановления и на этапе передачи данных задание восстановления нельзя отменить.
  • Уровень роли или доступа, необходимый для выполнения операции восстановления в разных регионах, — это роль оператора резервного копирования в подписке и права доступа участника (запись) на исходной и целевой виртуальных машинах. Для просмотра заданий резервного копирования средство чтения резервных копий является минимальным разрешением, необходимым в подписке.
  • RPO для данных резервного копирования, доступных в дополнительном регионе, составляет 12 часов. Таким образом, при включении CRR RPO для дополнительного региона составляет 12 часов и длительность частоты регистрации журнала (может составлять не менее 15 минут).

Сведения о минимальных требованиях к роли для восстановления между регионами.

Мониторинг заданий восстановления в дополнительном регионе

  1. На портале Azure перейдите в раздел Центр резервного копирования>Задания резервного копирования.

  2. Отфильтруйте раздел "Операция" по значению CrossRegionRestore, чтобы просмотреть задания в дополнительном регионе.

    Screenshot showing the filtered Backup jobs.

Восстановление между подписками

Azure Backup теперь позволяет восстановить базу данных SQL в любую подписку (согласно следующим требованиям Azure RBAC) из точки восстановления. По умолчанию Служба архивации Azure восстанавливается в той же подписке, где доступны точки восстановления.

При использовании восстановления между подписками (CSR) вы можете восстановить любую подписку и любое хранилище в клиенте, если доступны разрешения на восстановление. По умолчанию CSR включен во всех хранилищах служб восстановления (существующие и только что созданные хранилища).

Примечание.

  • Вы можете активировать восстановление между подписками из хранилища служб восстановления.
  • CSR поддерживается только для резервного копирования на основе потоковой передачи и не поддерживается для резервного копирования на основе моментальных снимков.
  • Межрегиональная восстановление (CRR) с CSR не поддерживается.

Требования к Azure RBAC

Тип операции Оператор архивации Хранилище Служб восстановления Альтернативный оператор
Восстановление базы данных или восстановление в виде файлов Virtual Machine Contributor Исходная виртуальная машина, для которой создана резервная копия Вместо встроенной роли можно рассмотреть пользовательскую роль, которая имеет следующие разрешения:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Virtual Machine Contributor Целевая виртуальная машина, в которой будет восстановлена база данных или создаются файлы. Вместо встроенной роли можно рассмотреть пользовательскую роль, которая имеет следующие разрешения:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Целевое хранилище служб восстановления

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

Screenshot shows how to modify the Cross Subscription Restore settings on a Recovery Services vault for SQL database.

Следующие шаги

Управление и мониторинг баз данных SQL Server, резервное копирование которых выполняется с помощью Azure Backup.