С помощью База данных SQL Azure можно настроить политику долгосрочного хранения резервных копий (LTR) для автоматического хранения резервных копий в отдельных контейнерах хранилища BLOB-объектов Azure до 10 лет. После этого появляется возможность восстановления базы данных с помощью резервных копий через портал Azure, Azure CLI или PowerShell.
Если вы предпочитаете выполнять справочные команды 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-AzSqlDatabaseLongTermRetentionBackup и Restore-AzSqlDatabase, необходимо быть членом одной из следующих ролей:
Роль участника SQL Server не имеет разрешения на удаление резервных копий LTR.
Разрешения управления доступом на основе ролей Azure (RBAC) могут быть предоставлены в области подписки или группы ресурсов. Однако для доступа к резервным копиям LTR, принадлежащим удаленному серверу, это разрешение должно быть предоставлено в области подписки этого сервера:
На портале Azure перейдите к серверу и выберите Резервные копии. Перейдите на вкладку Политики хранения, чтобы изменить параметры хранения резервных копий.
На вкладке Политики хранения выберите базы данных, для которых нужно задать или изменить политики долгосрочного хранения резервных копий. На невыбранные базы данных создаваемые политики распространяться не будут.
На панели Настройка политик укажите необходимый срок хранения резервных копий, продолжительность которого может измеряться неделями, месяцами или годами. Выберите для срока хранения значение "0", если долгосрочное хранение резервных копий не нужно.
Нажмите кнопку Применить, чтобы применить выбранные параметры хранения ко всем выбранным базам данных.
Внимание
При включении политики долгосрочного хранения резервных копий может потребоваться до 7 дней, чтобы первая резервная копия стала видимой и доступной для восстановления. Дополнительные сведения о периодичности создания резервных копий LTR см. в разделе Долгосрочное хранение резервных копий.
Чтобы создать политику LTR, выполните командуaz sql db ltr-policy set. В следующем примере для еженедельного резервного копирования задается политика долгосрочного хранения на 12 недель.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W"
В этом примере политика хранения для еженедельного резервного копирования устанавливается на 12 недель, для ежегодного резервного копирования — на 5 лет, а также на неделю с 15 апреля, когда нужно создать резервную копию LTR за год.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W" \
--yearly-retention "P5Y" \
--week-of-year 16
# get the SQL server
$subId = "<subscriptionId>"
$serverName = "<serverName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16
Просмотр резервных копий и восстановление из резервной копии
Просмотр резервных копий, которые сохраняются для определенной базы данных в соответствии с политикой долгосрочного хранения (LTR), и выполнение восстановления из этих резервных копий.
На портале Azure перейдите к серверу и выберите Резервные копии. Чтобы просмотреть доступные резервные копии LTR для определенной базы данных, выберите "Управление " в столбце "Доступные резервные копии LTR". Откроется панель со списком доступных резервных копий LTR для выбранной базы данных.
В появившейся панели Доступные резервные копии LTR ознакомьтесь с доступными резервными копиями. Выберите резервную копию для восстановления.
Чтобы выполнить восстановление из доступной резервной копии LTR, выберите необходимую резервную копию и нажмите кнопку Восстановить.
Выберите имя для новой базы данных, а затем щелкните Проверить и создать, чтобы проверить сведения для операции восстановления. Выберите Создать, чтобы восстановить базу данных из выбранной резервной копии.
На панели инструментов нажмите значок уведомления, чтобы просмотреть состояние задания восстановления.
После завершения задания откройте страницу Базы данных SQL, чтобы просмотреть восстановленную базу данных.
Чтобы просмотреть политику LTR для отдельной базы данных на сервере, выполните команду az sql db ltr-policy show.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Просмотр резервных копий LTR
Выполните команду az sql db ltr-backup list, чтобы вывести списков резервных копий LTR для базы данных. Эту команду можно использовать, чтобы найти параметр name для использования в других командах.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Внимание
Для восстановления из резервной копии LTR после удаления сервера или группы ресурсов необходимо иметь разрешения, распространяющиеся на подписку сервера, и эта подписка должна быть активной. Необходимо также опустить необязательный параметр -ResourceGroupName.
Примечание.
Теперь вы можете подключиться к восстановленной базе данных, используя SQL Server Management Studio, чтобы выполнить необходимые задачи, такие как переключение баз данных. Ознакомьтесь с восстановлением до точки во времени.
Просмотр политик LTR
В этом примере показано, как вывести список политик LTR на сервере.
# get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName $resourceGroup -ServerName $serverName | `
Get-AzSqlDatabaseLongTermRetentionPolicy
# get the LTR policy of a specific database
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup
Удаление политики LTR
В этом примере показано, как удалить политику LTR из базы данных.
В этом примере показано, как вывести список резервных копий LTR на сервере.
# 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
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location
# get the list of LTR backups from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName
# get the LTR backups for a specific database from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live
# only list the latest LTR backup for each database
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase
Восстановление из резервных копий LTR
В этом примере показано, как выполнить восстановление из резервной копии LTR. Обратите внимание, что интерфейс не меняется, но для параметра идентификатора ресурса теперь требуется наличие идентификатора ресурса резервной копии LTR.
# restore a specific LTR backup as an P1 database on the server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
Внимание
Для восстановления из резервной копии LTR после удаления сервера или группы ресурсов необходимо иметь разрешения, распространяющиеся на подписку сервера, и эта подписка должна быть активной. Необходимо также опустить необязательный параметр -ResourceGroupName.
Если вы используете резервные копии LTR для соответствия требованиям или другим критически важным требованиям, рассмотрите возможность периодической детализации восстановления, чтобы убедиться, что резервные копии LTR можно восстановить и что восстановление приводит к ожидаемому состоянию базы данных.
Примечание.
Здесь вы можете подключиться к восстановленной базе данных с помощью SQL Server Management Studio и выполнить необходимые задания, например извлечь часть данных из восстановленной базы данных, чтобы скопировать их в имеющуюся базу данных или удалить имеющуюся базу данных и присвоить ее имя восстановленной базе данных. Ознакомьтесь с восстановлением до точки во времени.
Удаление резервных копий LTR
Удалите резервные копии, сохраненные для определенной базы данных с помощью политики LTR.
Внимание
Удаление резервной копии LTR отменить нельзя. Чтобы удалить резервную копию LTR после удаления сервера, необходимо иметь разрешение для области подписки. Вы можете настроить в Azure Monitor уведомления о каждом удалении, выполнив фильтрацию по операции "Deletes a long term retention backup" (Удаление резервной копии долгосрочного хранения). В журнале действий содержатся сведения о том, кто и когда выполнил запрос. Подробные сведения см. в статье Создание, просмотр и управление оповещениями журнала действий с помощью Azure Monitor.
В портал Azure перейдите к логическому серверу База данных SQL Azure.
Выберите "Резервные копии". Чтобы просмотреть доступные резервные копии LTR для определенной базы данных, выберите "Управление " в столбце "Доступные резервные копии LTR". Откроется панель со списком доступных резервных копий LTR для выбранной базы данных.
В появившейся панели Доступные резервные копии LTR ознакомьтесь с доступными резервными копиями. Выберите резервную копию для удаления. Выберите команду Удалить.
Если вы используете резервные копии LTR для соответствия требованиям или другим критически важным требованиям:
Убедитесь, что резервные копии LTR выполняются в соответствии с настроенной политикой, выполнив действия, описанные в разделе "Просмотр резервных копий" с помощью портала, Azure CLI или PowerShell.
Рекомендуется проводить периодические детализации восстановления, чтобы убедиться, что восстановление резервных копий LTR приводит к ожидаемому состоянию базы данных.
Связанный контент
Дополнительные сведения о резервных копиях базы данных, создаваемых автоматически службой, см. в этой статье.