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. Tento článek se týká obnovení i geografického obnovení.

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. Screenshot from Synapse Studio, showing the Open Synapse Studio box and Open link.

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

  5. Vyberte Spravovat fondy.

  6. V pracovním prostoru Azure Synapse Analytics vyberte + Nový a vytvořte nový vyhrazený fond SQL.

  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živatelem 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 existující data a vyberte možnost 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:

    Místní obnovení fondu SQL se stejným názvem jako existující fond nelze provést. Bez ohledu na to, jestli je fond SQL ve stejném pracovním prostoru nebo jiném pracovním prostoru.

  9. Vyberte Zkontrolovat a vytvořit.

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.

    Screenshot from the Azure portal, showing the SQL pool overview page. The Restore button is highlighted.

  4. Vyberte buď automatické body obnovení, nebo uživatelem 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. Vyberte Zkontrolovat a vytvořit.

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

  1. Otevřete terminál PowerShellu.

  2. Připojení k vašemu úč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. Vypíše body obnovení pro vyhrazený fond SQL.

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

  6. Obnovte vyhrazený fond SQL do požadovaného bodu obnovení pomocí rutiny PowerShellu Restore-AzSynapseSqlPool .

  7. Ověřte, že je obnovený vyhrazený fond SQL 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

Při obnovení mezi předplatnými se vyhrazený fond SQL v pracovním prostoru Azure Synapse může obnovit pouze přímo do samostatného vyhrazeného fondu SQL (dříve 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 cílový) název předplatného.
  • Při provádění obnovení použijte moduly Az.Sql místo modulů Az.Synapse.
  • Následující ukázkový kód obsahuje další kroky pro obnovení do pracovního prostoru Azure Synapse v cílovém předplatném. Odkomentujte příkazy PowerShellu, jak je popsáno v ukázce.

Kroky:

  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. Prequisite met."} else {update-module az.sql} }
    
  3. Připojení k vašemu úč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. Vypíše body obnovení pro vyhrazený fond SQL.

  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í rutiny PowerShellu Restore-AzSqlDatabase .

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

  10. Pokud je požadovaným cílem pracovní prostor Synapse, odkomentujte kód a proveďte další krok obnovení.

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

    2. Načtěte poslední bod obnovení vytvořený pomocí Select -Last 1 syntaxe.

    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íží

Operace obnovení může způsobit selhání nasazení na základě výjimky RequestTimeout.

Screenshot from resource group deployments dialog of a timeout exception.

Tento časový limit je možné ignorovat. Zkontrolujte stránku vyhrazeného fondu SQL na webu Azure Portal a stále může mít stav Obnovení a nakonec přejde na Online.

Screenshot of SQL pool dialog with the status that shows restoring.