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


Восстановление выделенного пула SQL из удаленной рабочей области

Из этой статьи вы узнаете, как восстановить выделенный пул SQL в Azure Synapse Analytics после случайного сброса рабочей области с помощью PowerShell.

Примечание.

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

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

Примечание.

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

Восстановление пула SQL из удаленной рабочей области

Следующий пример скрипта выполняет следующие действия.

  1. Откройте PowerShell.

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

  3. Задайте контекст для подписки, содержащей удаленную рабочую область.

  4. Определите дату удаления рабочей области. На этом шаге извлекается точную дату и время удаления пула SQL рабочей области.

    • На этом шаге предполагается, что рабочая область с той же группой ресурсов имен и теми же значениями по-прежнему доступна.
    • В противном случае повторно создайте удаленную рабочую область с тем же именем рабочей области, именем группы ресурсов, регионом и всеми теми же значениями из предыдущей удаленной рабочей области.
  5. Создайте строку идентификатора ресурса пула SQL, который вы хотите восстановить. Требуется Microsoft.Sqlформат. Сюда входят дата и время удаления сервера.

  6. Восстановите базу данных из удаленной рабочей области. Восстановите целевую рабочую область с помощью исходного пула SQL.

  7. Убедитесь, что состояние восстановленной базы данных - "в сети".

    $SubscriptionID = "<YourSubscriptionID>"
    $ResourceGroupName = "<YourResourceGroupName>"
    $WorkspaceName = "<YourWorkspaceNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
    $DatabaseName = "<YourDatabaseName>"
    $TargetResourceGroupName = "<YourTargetResourceGroupName>"
    $TargetWorkspaceName = "<YourtargetServerNameWithoutURLSuffixSeeNote>"
    $TargetDatabaseName = "<YourDatabaseName>"
    
    Connect-AzAccount
    Set-AzContext -SubscriptionID $SubscriptionID
    
    # Get the exact date and time the workspace SQL pool was dropped.
    # This assumes that the workspace with the same name resource group and same values is still available.
    # If not, recreate the dropped workspace with the same workspace name, resource group name, region, 
    # and all the same values from prior dropped workspace.
    # There should only be one selection to select from.
    $paramsGetDroppedSqlPool = @{
        ResourceGroupName = $ResourceGroupName
        WorkspaceName     = $WorkspaceName
        Name              = $DatabaseName
    }
    $DroppedDateTime = Get-AzSynapseDroppedSqlPool @paramsGetDroppedSqlPool `
        | Select-Object -ExpandProperty DeletionDate
    
    # Construct a string of the resource ID of the sql pool you wish to recover.
    # The format requires Microsoft.Sql. This includes the approximate date time the server was dropped.
    $SourceDatabaseID = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroupName/providers/" `
                    + "Microsoft.Sql/servers/$WorkspaceName/databases/$DatabaseName"    
    
    # Restore to the target workspace with the source SQL pool.
    $paramsRestoreSqlPool = @{
        FromDroppedSqlPool  = $true
        DeletionDate        = $DroppedDateTime
        TargetSqlPoolName   = $TargetDatabaseName
        ResourceGroupName   = $TargetResourceGroupName
        WorkspaceName       = $TargetWorkspaceName
        ResourceId          = $SourceDatabaseID
    }
    $RestoredDatabase = Restore-AzSynapseSqlPool @paramsRestoreSqlPool
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Устранение неполадок

Если при обработке запроса произошла непредвиденная ошибка." Исходная база данных может не иметь точек восстановления из-за нехватки времени существования исходной рабочей области. Обычно это происходит, когда рабочая область существует менее одного часа.