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

Tip

Microsoft Fabric Data Warehouse — это реляционное хранилище корпоративного масштаба на основе озера данных, с готовой к будущему архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с хранилищем данных, начните с Fabric Data Warehouse. Существующие рабочие нагрузки пула SQL dedicated SQL могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

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

Примечание.

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

Перед началом

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az для 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
    

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

Ошибка: "При обработке запроса произошла непредвиденная ошибка".

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

Ошибка: "ValidationFailed: указанный идентификатор ресурса недопустим для этой операции. Используйте ресурс пула SQL"

Если вы получили эту ошибку, убедитесь, что sourceDatabaseId использует поддерживаемый формат идентификатора ресурса и указывает на нужный исходный выделенный пул SQL.

Поддерживаемые форматы

Идентификатор ресурса пула SQL Synapse /subscriptions/{subscriptionId}/resourceGroups/{workspaceResourceGroup}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}

Идентификатор ресурса управляемой базы данных SQL /subscriptions/{subscriptionId}/resourceGroups/{managedResourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}