Восстановление существующего выделенного пула SQL (прежнее название — Хранилище данных SQL)

Из этой статьи вы узнаете, как восстановить существующий выделенный пул SQL (прежнее название — Хранилище данных SQL) с помощью портала Azure и PowerShell.

Примечание.

Это руководство предназначено только для автономных выделенных пулов SQL (ранее — хранилище данных SQL). Сведения о выделенных пулах SQL в рабочей области Azure Synapse Analytics см. в статье "Восстановление существующего выделенного пула SQL".

Подготовка к работе

  1. Проверьте ресурсы DTU. Каждый пул размещается логическим СЕРВЕРом SQL Server (например, myserver.database.windows.net), который имеет квоту DTU по умолчанию. Убедитесь, что у сервера осталось достаточно DTU для восстановления базы данных. Чтобы узнать, как вычислить необходимое количество DTU или запросить дополнительные единицы DTU, ознакомьтесь с разделом Создание запроса в службу поддержки.

  2. Не забудьте установить Azure PowerShell.

    Примечание.

    Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

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

Восстановление существующего выделенного пула SQL (прежнее название — хранилище данных SQL) с помощью PowerShell

Чтобы восстановить существующий выделенный пул SQL (прежнее название — Хранилище данных SQL) из точки восстановления, используйте командлет PowerShell Restore-AzSqlDatabase.

  1. Откройте средство PowerShell.

  2. Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.

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

  4. Перечислите точки восстановления для выделенного пула SQL (прежнее название — Хранилище данных SQL).

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

  6. Восстановите выделенный пул SQL (прежнее название — Хранилище данных SQL) в нужную точку восстановления с помощью командлета PowerShell Restore-AzSqlDatabase.

    1. Чтобы восстановить выделенный пул SQL (прежнее название — Хранилище данных SQL) на другой сервер, убедитесь, что указано другое имя сервера. Этот сервер также может находиться в другой группе ресурсов и регионе.
    2. Сведения о восстановлении в другую подписку приведены в разделе ниже.
  7. Убедитесь, что восстановленный выделенный пул SQL (прежнее название — Хранилище данных SQL) находится в сети.

  8. Чтобы настроить хранилище данных после восстановления, вы можете настроить восстановленный выделенный пул 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

  1. Войдите на портал Azure.

  2. Перейдите в выделенный пул SQL, из которого требуется выполнить восстановление.

  3. В верхней области страницы Обзор выберите Восстановить.

    Screenshot from the Azure portal, the Overview page navigation bar of a SQL pool, the Restore button is highlighted.

  4. Выберите Точки автоматического восстановления или Определенные пользователем точки восстановления. Если у выделенного пула SQL (прежнее название — Хранилище данных SQL) нет автоматических точек восстановления, подождите несколько часов или создайте перед восстановлением определенную пользователем точку восстановления. Для определенных пользователем точек восстановления выберите существующую или создайте новую. В качестве значения параметра Сервер можно выбрать сервер в другой группе ресурсов и регионе или создать новый. После предоставления всех параметров нажмите кнопку "Проверить и восстановить".

    Screenshot from the dedicated SQL pool Restore page of the Azure portal. For Restore point type, the radio button for User-defined restore points is selected.

Восстановление существующего выделенного пула SQL (прежнее название — хранилище данных SQL) в раздел другой подписки с помощью PowerShell

Это аналогично руководству по восстановлению существующего выделенного пула SQL, однако приведенные ниже инструкции показывают, что командлет Get-AzSqlDatabase PowerShell должен выполняться в исходной подписке, а командлет Restore-AzSqlDatabase PowerShell должен выполняться в целевой подписке. Пользователь, выполняющий восстановление, должен иметь соответствующие разрешения как в исходных, так и в целевых подписках.

  1. Откройте средство PowerShell.

  2. Обновите модуль 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} }
    
  3. Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.

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

  5. Перечислите точки восстановления для выделенного пула SQL (прежнее название — Хранилище данных SQL).

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

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

  8. Восстановите выделенный пул SQL (прежнее название — Хранилище данных SQL) в нужную точку восстановления с помощью командлета PowerShell Restore-AzSqlDatabase.

  9. Убедитесь, что восстановленный выделенный пул 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