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), прежде чем активировать восстановление.
- Закройте все приложения, которые могут попытаться перехватить подключение к любой из этих баз данных.
- Для основных баз данных параметр "Альтернативное расположение" для восстановления не поддерживается. Мы рекомендуем восстановить базу данных master с помощью параметра "Восстановить как файлы ", а затем восстановить с помощью
T-SQL
команд. - Для
msdb
иmodel
, вариант альтернативного расположения для восстановления поддерживается только в том случае, если имя восстановленной базы данных отличается от имени целевой базы данных. Если вы хотите восстановить то же имя с целевой базой данных, рекомендуется восстановить с помощью параметра "Восстановить в качестве файлов ", а затем восстановить с помощьюT-SQL
команд.
Восстановление базы данных
Для выполнения восстановления требуются следующие разрешения.
- оператор резервного копирования для хранилища, в котором выполняется восстановление.
- Доступ участника (с правами на запись) к исходной виртуальной машине, резервное копирование которой выполняется.
- Доступ участника (записи) к целевой виртуальной машине:
- Если вы выполняете восстановление на ту же виртуальную машину, целевой будет исходная виртуальная машина,
- а если в альтернативное расположение, целевой будет новая виртуальная машина.
Восстановление состоит из следующих шагов.
На портале Azure перейдите в Центр резервного копирования и щелкните + Резервная копия.
Выберите в качестве типа источника данных SQL на виртуальной машине Azure, укажите базу данных для восстановления и нажмите кнопку Продолжить.
В разделе Конфигурация восстановления укажите, где (или как) следует восстановить данные.
Альтернативное расположение — база данных восстановится в другом расположении, а оригинальная база данных-источник будет сохранена.
Перезаписать базу данных: восстановление данных в том же экземпляре SQL Server, где находится исходный источник. В этом варианте перезаписывается исходная база данных.
Внимание
Если выбранная база данных принадлежит к группе доступности Always On, SQL Server не позволит перезаписать базу данных. Доступно только значение Альтернативное расположение.
Восстановить в виде файлов. Вместо восстановления в качестве базы данных восстановите файлы резервных копий, которые можно будет воспроизвести в виде базы данных на любом компьютере с этими файлами с помощью SQL Server Management Studio.
Восстановление в альтернативном расположении
В меню Конфигурация восстановления в разделе Выбор места для восстановления выберите Альтернативное расположение.
Выберите имя сервера SQL Server и экземпляр, в котором нужно восстановить базу данных.
В поле Имя восстановленной базы данных введите имя целевой базы данных.
Если это применимо, выберите параметр Overwrite if the DB with the same name already exists on selected SQL instance (Перезаписать, если база данных с тем же именем уже существует в выбранном экземпляре SQL).
Выберите точку восстановления и выберите тип восстановления: до определенной точки во времени или до определенной точки восстановления.
В меню Расширенная конфигурация выполните следующие действия.
Чтобы оставить базу данных после восстановления в нерабочем состоянии включите Restore with NORECOVERY.
Если необходимо изменить расположение восстановления на целевом сервере, укажите новый конечный путь.
Выберите OK для запуска восстановления. Отслеживайте ход восстановления в области уведомлений или в представлении задания резервного копирования в хранилище.
Примечание.
Восстановление до точки во времени доступно только для резервных копий журналов для баз данных, использующих режим восстановления с полным и неполным протоколированием.
Восстановление и перезапись
В меню Конфигурация восстановления в разделе Выбор места для восстановления выберите Перезаписать базу данных>ОК.
В разделе Выбор точки восстановления выберите Журналы (точка во времени), чтобы выполнить восстановление до определенной точки во времени. Или выберите Полные и дифференциальные, чтобы выполнить восстановление до определенной точки восстановления.
Примечание.
Восстановление до точки во времени доступно только для резервных копий журналов для баз данных, использующих режим восстановления с полным и неполным протоколированием.
Восстановление в виде файлов
Чтобы восстановить данные резервной копии в виде файлов .bak, а не в виде базы данных, выберите параметр Восстановление в виде файлов. Когда файлы будут скопированы в указанное расположение, их можно будет использовать на любом компьютере, где их нужно восстановить в качестве базы данных. Так как эти файлы можно переместить на любой компьютер, теперь можно восстанавливать данные в разных подписках и регионах.
В разделе где и как выполнить восстановление выберите восстановить как файлы.
Выберите имя сервера SQL Server, на котором будут восстановлены файлы резервной копии.
В поле Конечный путь на сервере введите путь к папке на сервере, выбранном на шаге 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.
- Запуск
Нажмите ОК.
Выберите точку восстановления и выберите тип восстановления: до определенной точки во времени или до определенной точки восстановления.
При восстановлении базы данных SQL на определенный момент времени с помощью восстановления в качестве файлов все точки восстановления будут храниться все точки восстановления из полной резервной копии до выбранной точки во времени. Затем вы можете восстановить эти файлы в качестве базы данных на любом компьютере, который они присутствуют с помощью SQL Server Management Studio.
Восстановление данных до определенной точки во времени
Если вы выбрали Logs (Point in Time) (Журналы (восстановление до точки во времени)) как тип восстановления, выполните следующие действия:
В меню Restore Date/Time откройте календарь. В календаре даты с точками восстановления отображаются жирным шрифтом, а текущая дата подсвечивается.
Выберите дату с точками восстановления. Нельзя выбрать даты, не имеющие точек восстановления.
После выбора даты временная шкала отображает доступные точки восстановления в непрерывном диапазоне.
Укажите время для восстановления с помощью временной шкалы или выберите время. Затем выберите OK.
Частичное восстановление в виде файлов
Служба Azure Backup самостоятельно определяет, какую цепочку файлов нужно скачать в процессе восстановления в виде файлов. Но в некоторых сценариях вам нет смысла скачивать все содержимое снова.
Для примера предположим, что ваша политика резервного копирования еженедельно создает полные копии, ежедневно создает разностные копии и копии журналов, и вы уже скачали файлы из разностной резервной копии. Затем вы обнаружили, что неправильно выбрали точку восстановления, и теперь вам нужно скачать разностную резервную копию за следующий день. В этом случае вам достаточно скачать только разностный файл, ведь файл начальной полной копии у вас уже есть. Возможность частичного восстановления в виде файлов в Azure Backup позволяет исключить полную резервную копию из цепочки для скачивания, и получить только разностную резервную копию.
Исключение типов файлов из резервной копии
ExtensionSettingsOverrides.json — это файл JSON (нотация объектов JavaScript), содержащий переопределения для нескольких параметров службы архивации Azure для SQL. Для операции частичного восстановления в виде файлов нужно добавить в него новое поле JSON с именем RecoveryPointTypesToBeExcludedForRestoreAsFiles
. Это поле содержит строковое значение, которое обозначает, какие типы точек восстановления следует исключить при следующей операции восстановления в виде файлов.
На целевом компьютере, куда вы намерены скачать файлы, перейдите в папку "C:\Program Files\Azure Workload Backup\bin".
Создайте файл JSON с именем "ExtensionSettingsOverrides.JSON", если он еще не существует.
Добавьте в него следующую пару "ключ – значение" в формате JSON.
{ "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull" }
Вам не потребуется перезапускать службы. Служба Azure Backup попытается исключить из цепочки восстановления типы резервных копий, упомянутые в этом файле.
При операции RecoveryPointTypesToBeExcludedForRestoreAsFiles
учитываются только определенные значения, обозначающие точки восстановления, которые будут исключены из процесса восстановления. Для SQL поддерживаются следующие значения:
- ExcludeFull (исключает полные резервные копии и скачивает все остальные типы, например разностные и копии журналов, которые присутствуют в цепочке точек восстановления).
- ExcludeFullAndDifferential (исключает полные и разностные резервные копии и скачивает все остальные типы, например копии журналов, которые присутствуют в цепочке точек восстановления).
- ИсключитьFullAndIncremental (другие типы резервных копий, такие как журналы, будут загружены, если они присутствуют в цепочке точек восстановления)
- ExcludeFullAndDifferentialAndIncremental (исключает полные, разностные и добавочные резервные копии и скачивает все остальные типы, например копии журналов, которые присутствуют в цепочке точек восстановления).
Восстановление данных до определенной точки восстановления
Если вы выбрали Full & Differential (Полная и разностная) как тип восстановления, выполните следующие действия:
Чтобы завершить процедуру, из списка точек восстановления выберите точку восстановления и нажмите кнопку ОК.
Примечание.
По умолчанию отображаются точки восстановления за последние 30 дней. Вы можете отобразить точки восстановления старше 30 дней, выбрав Фильтр и настраиваемый диапазон.
Восстановление баз данных с большим количеством файлов
Если общий размер строки файлов в базе данных превышает определенный предел, Azure Backup сохраняет список файлов базы данных в другом компоненте, чтобы не задавать целевой путь восстановления во время операции восстановления. Файлы будут восстановлены по пути SQL по умолчанию.
Восстановление базы данных из файла .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.
Чтобы приступить к использованию функции, ознакомьтесь с разделом Перед началом работы.
Чтобы узнать, включено ли восстановление между регионами, следуйте инструкциям в разделе Настройка восстановления между регионами.
Просмотр элементов резервного копирования в дополнительном регионе
Если включено восстановление между регионами, можно просмотреть элементы резервного копирования в дополнительном регионе.
- Перейдите в раздел Хранилище служб восстановления>Архивные элементы на портале.
- Выберите Дополнительный регион, чтобы просмотреть элементы в дополнительном регионе.
Примечание.
В списке отображаются только типы управления резервным копированием, поддерживающие восстановление между регионами. В настоящее время поддерживается только восстановление данных одного дополнительного региона в другом дополнительном регионе.
Восстановление в дополнительном регионе
Возможности восстановления в нем будут соответствовать возможностям восстановления в основном регионе. При вводе параметров в области конфигурации восстановления вам будет предложено указать только параметры дополнительного региона. Хранилище должно существовать в дополнительном регионе, а сервер SQL должен быть зарегистрирован в хранилище в дополнительном регионе.
Примечание.
- После запуска восстановления и на этапе передачи данных задание восстановления нельзя отменить.
- Уровень роли или доступа, необходимый для выполнения операции восстановления в разных регионах, — это роль оператора резервного копирования в подписке и права доступа участника (запись) на исходной и целевой виртуальных машинах. Для просмотра заданий резервного копирования средство чтения резервных копий является минимальным разрешением, необходимым в подписке.
- RPO для данных резервного копирования, доступных в дополнительном регионе, составляет 12 часов. Таким образом, при включении CRR RPO для дополнительного региона составляет 12 часов и длительность частоты регистрации журнала (может составлять не менее 15 минут).
Сведения о минимальных требованиях к роли для восстановления между регионами.
Мониторинг заданий восстановления в дополнительном регионе
На портале Azure перейдите в раздел Центр резервного копирования>Задания резервного копирования.
Отфильтруйте раздел "Операция" по значению CrossRegionRestore, чтобы просмотреть задания в дополнительном регионе.
Восстановление между подписками
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 включен в хранилище служб восстановления. Чтобы обновить параметры восстановления хранилища служб восстановления, перейдите к разделу "Свойства>перекрестного восстановления подписки" и внесите необходимые изменения.
Следующие шаги
Управление и мониторинг баз данных SQL Server, резервное копирование которых выполняется с помощью Azure Backup.