Sdílet prostřednictvím


Obnovení existujícího vyhrazeného fondu SQL

V tomto článku se dozvíte, jak obnovit existující vyhrazený fond SQL ve službě Azure Synapse Analytics pomocí webu Azure Portal, Synapse Studia a PowerShellu. This article applies to both restores and geo-restores.

Poznámka:

Tyto pokyny jsou určené pouze pro vyhrazené fondy SQL v pracovních prostorech Azure Synapse. Samostatné vyhrazené fondy SQL (dříve SQL DW) najdete v tématu Obnovení existujícího vyhrazeného fondu SQL (dříve SQL DW).

Obnovení existujícího vyhrazeného fondu SQL prostřednictvím Synapse Studia

  1. Přihlaste se k portálu Azure.

  2. Přejděte do svého pracovního prostoru Azure Synapse.

  3. V části Začínáme ->Open Synapse Studio vyberte Otevřít. Snímek obrazovky ze sady Synapse Studio zobrazující pole Otevřít Synapse Studio a odkaz Otevřít

  4. V levém navigačním podokně vyberte Data.

  5. Select Manage pools.

  6. Select + New to create a new dedicated SQL pool in the Azure Synapse Analytics workspace.

  7. Na kartě Další nastavení vyberte bod obnovení, ze které chcete provést obnovení.

    Pokud chcete provést geografické obnovení, vyberte pracovní prostor a vyhrazený fond SQL, který chcete obnovit.

  8. Vyberte buď automatické body obnovení, nebo uživatelsky definované body obnovení.

    Screenshot from the Azure portal, Create SQL pool page, Additional settings page. For Restore point type, the Automatic restore points radio button is selected.

    • Pokud vyhrazený fond SQL nemá žádné automatické body obnovení, počkejte několik hodin nebo před obnovením vytvořte uživatelem definovaný bod obnovení. V případě uživatelem definovaných bodů obnovení vyberte existující nebo vytvořte nový.

    • Pokud chcete obnovit vyhrazený fond SQL z jiného pracovního prostoru, vyberte Nový vyhrazený fond SQL z aktuálního pracovního prostoru. Na kartě Další nastavení vyhledejte Použít existující data a vyberte Bod obnovení. Jak je znázorněno na výše uvedeném snímku obrazovky, můžete vybrat název serveru nebo pracovního prostoru , ze kterého můžete obnovit.

    • Pokud obnovujete geografickou zálohu, vyberte pracovní prostor umístěný ve zdrojové oblasti a vyhrazený fond SQL, který chcete obnovit.

    Poznámka:

    You cannot perform an in-place restore of a SQL pool with the same name as an existing pool. Regardless of the SQL pool being in the same workspace or a different workspace.

  9. Select Review + Create.

Obnovení existujícího vyhrazeného fondu SQL prostřednictvím webu Azure Portal

  1. Přihlaste se k portálu Azure.

  2. Přejděte do vyhrazeného fondu SQL, ze kterého chcete provést obnovení.

  3. V horní části stránky Přehled vyberte Obnovit.

    Snímek obrazovky webu Azure Portal zobrazující stránku přehledu fondu SQL Tlačítko Obnovit je zvýrazněné.

  4. Vyberte buď automatické body obnovení, nebo uživatelsky definované body obnovení.

    Pokud vyhrazený fond SQL nemá žádné automatické body obnovení, počkejte několik hodin nebo před obnovením vytvořte uživatelem definovaný bod obnovení.

    Pokud chcete provést geografické obnovení, vyberte pracovní prostor a vyhrazený fond SQL, který chcete obnovit.

  5. Select Review + Create.

Obnovení existujícího vyhrazeného fondu SQL prostřednictvím PowerShellu

  1. Otevřete terminál PowerShellu.

  2. Připojte se ke svému účtu Azure a uveďte všechna předplatná přidružená k vašemu účtu.

  3. Vyberte předplatné, které obsahuje fond SQL, který se má obnovit.

  4. List the restore points for the dedicated SQL pool.

  5. Pomocí metody RestorePointCreationDate vyberte požadovaný bod obnovení.

  6. Obnovte vyhrazený fond SQL do požadovaného bodu obnovení pomocí příkazu PowerShell Restore-AzSynapseSqlPool.

  7. Verify that the restored dedicated SQL pool is online.

    
    $SubscriptionName="<YourSubscriptionName>"
    $ResourceGroupName="<YourResourceGroupName>"
    $WorkspaceName="<YourWorkspaceNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
    #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different workspace.
    #$TargetWorkspaceName="<YourtargetWorkspaceNameWithoutURLSuffixSeeNote>"  
    $SQLPoolName="<YourDatabaseName>"
    $NewSQLPoolName="<YourDatabaseName>"
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SubscriptionName
    
    # list all restore points
    Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    
    # Get the specific SQL pool to restore
    $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
    $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
        -replace "workspaces", "servers" `
        -replace "sqlPools", "databases"
    
    # Restore database from a restore point
    $RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $SQLPool.ResourceGroupName `
        -WorkspaceName $SQLPool.WorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Use the following command to restore to a different workspace
    #$TargetResourceGroupName = $SQLPool.ResourceGroupName # for restoring to different workspace in same resourcegroup 
    #$RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $TargetResourceGroupName `
    #    -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Obnovení existujícího vyhrazeného fondu SQL do jiného předplatného prostřednictvím PowerShellu

When performing a cross-subscription restore, a dedicated SQL pool in an Azure Synapse workspace can only restore directly to a standalone dedicated SQL pool (formerly SQL DW). Pokud je potřeba obnovit vyhrazený fond SQL v pracovním prostoru Azure Synapse do pracovního prostoru v cílovém předplatném, je potřeba provést další krok obnovení.

Následující příklad PowerShellu je podobný předchozímu příkladu, ale existují tři hlavní rozdíly:

  • Po načtení objektu fondu SQL, který se má obnovit, je potřeba přepnout kontext předplatného na cílový (nebo zamýšlený) název předplatného.
  • Při provádění obnovení použijte moduly Az.Sql místo modulů Az.Synapse.
  • The below sample code has additional steps for restoring to an Azure Synapse workspace in the destination subscription. Uncomment the PowerShell commands as described in the sample.

Steps:

  1. Otevřete terminál PowerShellu.

  2. Pokud používáte starší verzi, Update-Moduleaktualizujte modul Az.Sql na verzi 3.8.0 (nebo vyšší). Jinak způsobí selhání. Ověření vaší verze pomocí PowerShellu:

    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. Připojte se ke svému účtu Azure a uveďte všechna předplatná přidružená k vašemu účtu.

  4. Vyberte předplatné, které obsahuje fond SQL, který se má obnovit.

  5. List the restore points for the dedicated SQL pool.

  6. Pomocí metody RestorePointCreationDate vyberte požadovaný bod obnovení.

  7. Vyberte cílové předplatné, ve kterém se má obnovit fond SQL.

  8. Obnovte vyhrazený fond SQL do požadovaného bodu obnovení pomocí cmdletu PowerShell Restore-AzSqlDatabase.

  9. Ověřte, že obnovený vyhrazený fond SQL (dříve SQL DW) je online.

  10. If the desired destination is a Synapse Workspace, uncomment the code to perform the additional restore step.

    1. Vytvořte bod obnovení pro nově vytvořený datový sklad.

    2. Retrieve the last restore point created by using the Select -Last 1 syntax.

    3. Proveďte obnovení do požadovaného pracovního prostoru Azure Synapse.

      $SourceSubscriptionName="<YourSubscriptionName>"
      $SourceResourceGroupName="<YourResourceGroupName>"
      $SourceWorkspaceName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $SourceSQLPoolName="<YourDatabaseName>"
      $TargetSubscriptionName="<YourTargetSubscriptionName>"
      $TargetResourceGroupName="<YourTargetResourceGroupName>"
      $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $TargetDatabaseName="<YourDatabaseName>"
      #$TargetWorkspaceName="<YourTargetWorkspaceName>" # uncomment if restore to an Azure Synapse workspace is required
      
      # 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
      
      # list all restore points
      Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
      $PointInTime="<RestorePointCreationDate>"
      
      # Get the specific SQL pool to restore
      $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
      $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
          -replace "workspaces", "servers" `
          -replace "sqlPools", "databases"
      
      # 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 $DatabaseID
      
      # Verify the status of restored database
      $RestoredDatabase.status
      
      # uncomment below cmdlets to perform one more restore to push the SQL Pool to an existing workspace in the destination subscription
      # # Create restore point
      # New-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName -RestorePointLabel "UD-001"
      # # Gets the last restore point of the sql dw (will use the RestorePointCreationDate property)
      # $RestorePoint = Get-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName | Select -Last 1
      # # Restore to destination synapse workspace
      # $FinalRestore = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $RestorePoint.RestorePointCreationDate -ResourceGroupName $TargetResourceGroupName `
      #     -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $TargetDatabaseName –ResourceId $RestoredDatabase.ResourceID -PerformanceLevel DW100c
      
      

Odstraňování potíží

A restore operation can result in a deployment failure based on a "RequestTimeout" exception.

Screenshot from resource group deployments dialog of a timeout exception.

Tento časový limit je možné ignorovat. Review the dedicated SQL pool page in the Azure portal and it might still have status of "Restoring" and eventually will transition to "Online".

Snímek obrazovky dialogového okna fondu SQL, které zobrazuje stav obnovování.