Поделиться через


Восстановление существующего выделенного пула 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. Убедитесь в наличии точки восстановления, из которой необходимо выполнить восстановление. Если вы хотите создать новое восстановление, см. руководство по созданию точки восстановления, определенной пользователем.

  4. Разрешения. Убедитесь, что пользователь, выполняющий восстановление, должен иметь соответствующие разрешения как в исходной, так и в целевой подписках.

    Задача Требуемая роль (минимум) Дополнительные требования
    Резервное копирование исходного пула SQL Участник SQL Server (исходный сервер) Требуется доступ к учетной записи хранения с участником данных BLOB-объектов хранилища
    Доступ к файлу резервного копирования Средство чтения данных BLOB-объектов хранилища (в учетной записи хранения)
    Восстановление на целевом сервере Участник SQL Server (целевой сервер) Требуется средство чтения данных BLOB-объектов хранилища для резервной копии

Восстановление существующего выделенного пула 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. Сведения о восстановлении в другой подписке см. в статье "Восстановление существующего выделенного пула SQL" в другую подписку с помощью PowerShell.
  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. В верхней области страницы Обзор выберите Восстановить.

    Снимок экрана: портал Azure, панель навигации страницы пула SQL, выделена кнопка

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

    Снимок экрана: страница восстановления выделенного пула SQL портал Azure. Для типа точки восстановления выбрана переключатель для определяемых пользователем точек восстановления.

Восстановление существующего выделенного пула 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. Prerequisite 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