В Управляемом экземпляре SQL Azure можно настроить политику долгосрочного хранения резервных копий (LTR). Она позволяет автоматически сохранять резервные копии баз данных в отдельных контейнерах хранилища BLOB-объектов Azure на срок до 10 лет. Затем можно восстановить базу данных с помощью этих резервных копий с помощью портал Azure, Azure CLI и PowerShell.
В следующем разделе показано, как настроить долгосрочное хранение резервных копий, просматривать резервные копии и выполнять восстановление из них в хранилище Azure SQL с помощью портала Azure, PowerShell и Azure CLI.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Подготовьте среду к работе с PowerShell.
Примечание.
В этой статье предусмотрено использование модуля Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Внимание
Модуль PowerShell Azure Resource Manager по-прежнему поддерживается Базой данных SQL Azure, но вся будущая разработка будет выполняться только в модуле Az.Sql. Сведения об этих командлетах см. в разделе AzureRM.Sql. Аргументы команд в модулях Az и AzureRm практически идентичны.
Для Get-AzSqlInstanceDatabaseLongTermRetentionBackup и Restore-AzSqlInstanceDatabase, необходимо быть членом одной из следующих ролей:
Роль участника Управляемый экземпляр SQL не имеет разрешения на удаление резервных копий LTR.
Разрешения управления доступом на основе ролей Azure (RBAC) могут быть предоставлены в области подписки или группы ресурсов. Однако для доступа к резервным копиям LTR, принадлежащим удаленному экземпляру, разрешение может быть предоставлено только в области подписки этого экземпляра.
В портал Azure выберите управляемый экземпляр и выберите "Резервные копии". На вкладке Политики хранения выберите базы данных, для которых нужно задать или изменить политики долгосрочного хранения резервных копий. Эти изменения не будут применяться к остальным базам данных, кроме выбранных.
На панели Настройка политик укажите необходимый срок хранения резервных копий, продолжительность которого может измеряться неделями, месяцами или годами. Выберите для срока хранения значение "0", если долгосрочное хранение резервных копий не нужно.
По завершении нажмите кнопку "Применить".
Внимание
При включении политики долгосрочного хранения резервных копий может потребоваться до 7 дней, чтобы первая резервная копия стала видимой и доступной для восстановления. Дополнительные сведения о периодичности создания резервных копий LTR см. в разделе Долгосрочное хранение резервных копий.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Чтобы создать политику LTR, выполните команду az sql midb ltr-policy set. В следующем примере для еженедельного резервного копирования задается политика долгосрочного хранения на 12 недель.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W"
В этом примере политика хранения для еженедельного резервного копирования устанавливается на 12 недель, для ежегодного резервного копирования — на 5 лет, а также на неделю с 15 апреля, когда нужно создать резервную копию LTR за год.
Чтобы просмотреть доступные долгосрочные резервные копии из портал Azure, выполните следующие действия.
В портал Azure выберите управляемый экземпляр и выберите "Резервные копии". На вкладке Доступные архивы выберите базу данных, для которой нужно просмотреть доступные резервные копии. Выберите Управление.
На панели Управление резервными копиями просмотрите доступные резервные копии.
Вы также можете восстановить эту страницу, выбрав резервную копию и выбрав " Восстановить".
Кроме того, чтобы восстановить резервную копию из долгосрочного хранения с помощью портал Azure, выполните следующие действия.
Перейдите в целевую Управляемый экземпляр SQL, в которой планируется восстановить базу данных.
На странице "Обзор" выберите +Создать базу данных, чтобы открыть страницу "Создание управляемой базы данных SQL Azure".
На вкладке "Основы" на странице "Создание управляемой базы данных SQL Azure" укажите сведения о подписке и группе ресурсов в разделе "Сведения о проекте". Затем в разделе "Сведения о базе данных" укажите новое имя базы данных, который вы планируете восстановить. Убедитесь, что правильный управляемый экземпляр указан в раскрывающемся списке. Затем нажмите кнопку Next: Источник данных >
На вкладке "Источник данных" выберите восстановление на определенный момент времени в разделе "Использование существующих данных". Укажите подписку, группу ресурсов и управляемый экземпляр, содержащий исходную базу данных. В раскрывающемся списке управляемой базы данных выберите базу данных , которую вы хотите восстановить, а затем выберите точку во времени, из которой нужно восстановить базу данных. Исходный и целевой экземпляр могут быть одинаковыми или двумя различными экземплярами. Нажмите кнопку "Далее" : дополнительные параметры >
На вкладке "Дополнительные параметры" можно установить флажок, чтобы наследовать политику хранения из исходной базы данных или, кроме того, можно выбрать "Настроить хранение", чтобы открыть страницу "Настройка политик" и задать нужные политики хранения для восстановленной базы данных. Завершив этот процесс, выберите Просмотреть и создать.
При успешном выполнении проверки нажмите кнопку "Создать ", чтобы восстановить базу данных.
Это действие запускает процесс восстановления, который создает новую базу данных и заполняет ее данными из исходной базы данных на указанный момент времени. Дополнительные сведения о процессе восстановления см. в статье Время восстановления.
Для восстановления из резервной копии LTR после удаления экземпляра необходимо иметь разрешения в области подписки этого экземпляра. При этом подписка должна быть активной.
Примечание.
Здесь вы можете подключиться к восстановленной базе данных с помощью SQL Server Management Studio и выполнить необходимые задания, например извлечь часть данных из восстановленной базы данных, чтобы скопировать их в имеющуюся базу данных или удалить имеющуюся базу данных и присвоить ее имя восстановленной базе данных. Ознакомьтесь с восстановлением до точки во времени.
Просмотр политик LTR
В этом примере показано, как получить список политик LTR для отдельной базы данных в экземпляре.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
В этом примере показано, как получить список политик LTR для всех баз данных в экземпляре.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
Удаление политики LTR
В этом примере показано, как удалить политику LTR из базы данных.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Просмотр резервных копий LTR
В этом примере показано, как получить список резервных копий LTR на конкретном экземпляре.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
Восстановление из резервных копий LTR
В этом примере показано, как выполнить восстановление из резервной копии LTR. Обратите внимание, что интерфейс не меняется, но для параметра идентификатора ресурса теперь требуется наличие идентификатора ресурса резервной копии LTR.
# restore a specific LTR backup as an P1 database on the instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
Внимание
Для восстановления из резервной копии LTR после удаления экземпляра необходимо иметь разрешения в области подписки этого экземпляра. При этом подписка должна быть активной. Необходимо также опустить необязательный параметр -ResourceGroupName.
Примечание.
Здесь вы можете подключиться к восстановленной базе данных с помощью SQL Server Management Studio и выполнить необходимые задания, например извлечь часть данных из восстановленной базы данных, чтобы скопировать их в имеющуюся базу данных или удалить имеющуюся базу данных и присвоить ее имя восстановленной базе данных. Ознакомьтесь с восстановлением до точки во времени.
Удаление резервных копий LTR
Удалите резервные копии, сохраненные для определенной базы данных с помощью политики LTR.
Внимание
Удаление резервной копии LTR отменить нельзя. Чтобы удалить резервную копию LTR после удаления экземпляра, необходимо иметь разрешение в области подписки. Вы можете настроить в Azure Monitor уведомления о каждом удалении, выполнив фильтрацию по операции "Deletes a long term retention backup" (Удаление резервной копии долгосрочного хранения). В журнале действий содержатся сведения о том, кто и когда выполнил запрос. Подробные сведения см. в статье Создание, просмотр и управление оповещениями журнала действий с помощью Azure Monitor.
В портал Azure перейдите к управляемому экземпляру SQL.
Выберите "Резервные копии". Чтобы просмотреть доступные резервные копии LTR для определенной базы данных, выберите "Управление " в столбце "Доступные резервные копии LTR". Откроется панель со списком доступных резервных копий LTR для выбранной базы данных.
В появившейся панели Доступные резервные копии LTR ознакомьтесь с доступными резервными копиями. Выберите резервную копию для удаления. Выберите команду Удалить.
В этом примере показано, как удалить раннюю резервную копию LTR из списка резервных копий. Этот пример получает список резервных копий LTR для определенной базы данных из региона Azure в заданном управляемом экземпляре SQL.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
Ограничения
Резервные копии базы данных, полученные из экземпляров, настроенных с помощью политики обновления SQL Server 2022, можно восстановить в экземплярах, настроенных с помощью политики обновления SQL Server 2022 или Always-up-up. Резервные копии базы данных, полученные из экземпляров, настроенных с помощью политики обновления Always-up-up, можно восстановить только в экземплярах, которые также настроены с помощью политики обновления Always-up-up.