Восстановление существующего выделенного пула SQL (прежнее название — Хранилище данных SQL)
Из этой статьи вы узнаете, как восстановить существующий выделенный пул SQL (прежнее название — Хранилище данных SQL) с помощью портала Azure и PowerShell.
Примечание.
Это руководство предназначено только для автономных выделенных пулов SQL (ранее — хранилище данных SQL). Сведения о выделенных пулах SQL в рабочей области Azure Synapse Analytics см. в статье "Восстановление существующего выделенного пула SQL".
Подготовка к работе
Проверьте ресурсы DTU. Каждый пул размещается логическим СЕРВЕРом SQL Server (например,
myserver.database.windows.net
), который имеет квоту DTU по умолчанию. Убедитесь, что у сервера осталось достаточно DTU для восстановления базы данных. Чтобы узнать, как вычислить необходимое количество DTU или запросить дополнительные единицы DTU, ознакомьтесь с разделом Создание запроса в службу поддержки.Не забудьте установить Azure PowerShell.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Убедитесь в наличии точки восстановления, из которой необходимо выполнить восстановление. Если вы хотите создать новое восстановление, см. руководство по созданию точки восстановления, определенной пользователем.
Восстановление существующего выделенного пула SQL (прежнее название — хранилище данных SQL) с помощью PowerShell
Чтобы восстановить существующий выделенный пул SQL (прежнее название — Хранилище данных SQL) из точки восстановления, используйте командлет PowerShell Restore-AzSqlDatabase.
Откройте средство PowerShell.
Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.
Выберите подписку, содержащую базу данных, которую нужно восстановить.
Перечислите точки восстановления для выделенного пула SQL (прежнее название — Хранилище данных SQL).
Выберите нужные точки восстановления с помощью свойства RestorePointCreationDate.
Восстановите выделенный пул SQL (прежнее название — Хранилище данных SQL) в нужную точку восстановления с помощью командлета PowerShell Restore-AzSqlDatabase.
- Чтобы восстановить выделенный пул SQL (прежнее название — Хранилище данных SQL) на другой сервер, убедитесь, что указано другое имя сервера. Этот сервер также может находиться в другой группе ресурсов и регионе.
- Сведения о восстановлении в другую подписку приведены в разделе ниже.
Убедитесь, что восстановленный выделенный пул SQL (прежнее название — Хранилище данных SQL) находится в сети.
Чтобы настроить хранилище данных после восстановления, вы можете настроить восстановленный выделенный пул SQL (прежнее название — Хранилище данных SQL), следуя инструкциям из раздела Настройка базы данных после восстановления.
$SubscriptionName="<YourSubscriptionName>" $ResourceGroupName="<YourResourceGroupName>" $ServerName="<YourServerNameWithoutURLSuffixSeeNote>" # Without database.windows.net #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different server. #$TargetServerName="<YourtargetServerNameWithoutURLSuffixSeeNote>" $DatabaseName="<YourDatabaseName>" $NewDatabaseName="<YourDatabaseName>" Connect-AzAccount Get-AzSubscription Select-AzSubscription -SubscriptionName $SubscriptionName # Or list all restore points Get-AzSqlDatabaseRestorePoint -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName # Get the specific database to restore $Database = Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx" $PointInTime="<RestorePointCreationDate>" # Restore database from a restore point $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID # Use the following command to restore to a different server #$TargetResourceGroupName = $Database.ResourceGroupName # for restoring to different server in same resourcegroup #$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID # Verify the status of restored database $RestoredDatabase.status
Восстановление существующего выделенного пула SQL (прежнее название — хранилище данных SQL) с помощью портала Azure
Войдите на портал Azure.
Перейдите в выделенный пул SQL, из которого требуется выполнить восстановление.
В верхней области страницы Обзор выберите Восстановить.
Выберите Точки автоматического восстановления или Определенные пользователем точки восстановления. Если у выделенного пула SQL (прежнее название — Хранилище данных SQL) нет автоматических точек восстановления, подождите несколько часов или создайте перед восстановлением определенную пользователем точку восстановления. Для определенных пользователем точек восстановления выберите существующую или создайте новую. В качестве значения параметра Сервер можно выбрать сервер в другой группе ресурсов и регионе или создать новый. После предоставления всех параметров нажмите кнопку "Проверить и восстановить".
Восстановление существующего выделенного пула SQL (прежнее название — хранилище данных SQL) в раздел другой подписки с помощью PowerShell
Это аналогично руководству по восстановлению существующего выделенного пула SQL, однако приведенные ниже инструкции показывают, что командлет Get-AzSqlDatabase PowerShell должен выполняться в исходной подписке, а командлет Restore-AzSqlDatabase PowerShell должен выполняться в целевой подписке. Пользователь, выполняющий восстановление, должен иметь соответствующие разрешения как в исходных, так и в целевых подписках.
Откройте средство PowerShell.
Обновите модуль Az.Sql до версии 3.8.0 (или больше), если используется
Update-Module
более ранняя версия. В противном случае это приведет к сбоям. Чтобы проверить версию с помощью PowerShell, выполните следующие действия.foreach ($i in (get-module -ListAvailable | ?{$_.name -eq 'az.sql'}).Version) { $version = [string]$i.Major + "." + [string]$i.Minor; if ($version -gt 3.7) {write-host "Az.Sql version $version installed. Prequisite met."} else {update-module az.sql} }
Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.
Выберите подписку, содержащую базу данных, которую нужно восстановить.
Перечислите точки восстановления для выделенного пула SQL (прежнее название — Хранилище данных SQL).
Выберите нужные точки восстановления с помощью свойства RestorePointCreationDate.
Выберите целевую подписку, в которой необходимо восстановить базу данных.
Восстановите выделенный пул SQL (прежнее название — Хранилище данных SQL) в нужную точку восстановления с помощью командлета PowerShell Restore-AzSqlDatabase.
Убедитесь, что восстановленный выделенный пул SQL (прежнее название — Хранилище данных SQL) находится в сети.
$SourceSubscriptionName="<YourSubscriptionName>" $SourceResourceGroupName="<YourResourceGroupName>" $SourceServerName="<YourServerNameWithoutURLSuffixSeeNote>" # Without database.windows.net $SourceDatabaseName="<YourDatabaseName>" $TargetSubscriptionName="<YourTargetSubscriptionName>" $TargetResourceGroupName="<YourTargetResourceGroupName>" $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>" # Without database.windows.net $TargetDatabaseName="<YourDatabaseName>" # Update Az.Sql module to the latest version (3.8.0 or above) # Update-Module -Name Az.Sql -RequiredVersion 3.8.0 Connect-AzAccount Get-AzSubscription Select-AzSubscription -SubscriptionName $SourceSubscriptionName # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx" $PointInTime="<RestorePointCreationDate>" # Or list all restore points Get-AzSqlDatabaseRestorePoint -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName # Get the specific database to restore $Database = Get-AzSqlDatabase -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName # Switch context to the destination subscription Select-AzSubscription -SubscriptionName $TargetSubscriptionName # Restore database from a desired restore point of the source database to the target server in the desired subscription $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName –ResourceId $Database.ResourceID # Verify the status of restored database $RestoredDatabase.status