Share via


Meglévő dedikált SQL-készlet visszaállítása

Ebből a cikkből megtudhatja, hogyan állíthat vissza egy meglévő dedikált SQL-készletet az Azure Synapse Analyticsben az Azure Portal, a Synapse Studio és a PowerShell használatával. Ez a cikk a visszaállításokra és a georeduktúra-visszaállításokra egyaránt vonatkozik.

Feljegyzés

Ez az útmutató csak Azure Synapse munkaterületeken található dedikált SQL-készletekre vonatkozik. Az önálló dedikált SQL-készletek (korábbi nevén SQL DW) esetében lásd : Meglévő dedikált SQL-készlet visszaállítása (korábbi nevén SQL DW).

Meglévő dedikált SQL-készlet visszaállítása a Synapse Studióval

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen az Azure Synapse-munkaterületre.

  3. Az Első lépések –>A Synapse Studio megnyitása területen válassza a Megnyitás lehetőséget. Screenshot from Synapse Studio, showing the Open Synapse Studio box and Open link.

  4. A bal oldali navigációs panelen válassza az Adatok lehetőséget.

  5. Válassza a Készletek kezelése lehetőséget.

  6. Válassza az + Új lehetőséget egy új dedikált SQL-készlet létrehozásához az Azure Synapse Analytics-munkaterületen.

  7. A További Gépház lapon válassza ki a visszaállítási pontot.

    Ha georeduktúra-visszaállítást szeretne végezni, válassza ki a helyreállítani kívánt munkaterületet és dedikált SQL-készletet.

  8. Válassza ki az automatikus visszaállítási pontokat vagy a felhasználó által definiált visszaállítási pontokat.

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

    • Ha a dedikált SQL-készlet nem rendelkezik automatikus visszaállítási ponttal, várjon néhány órát, vagy hozzon létre egy felhasználó által megadott visszaállítási pontot a visszaállítás előtt. Felhasználó által definiált visszaállítási pontok esetén válasszon ki egy meglévőt, vagy hozzon létre egy újat.

    • Ha egy másik munkaterületről szeretne visszaállítani egy dedikált SQL-készletet, válassza az Új dedikált SQL-készlet lehetőséget az aktuális munkaterületről. A További beállítások lapon keresse meg a Meglévő adatok használata lehetőséget, és válassza a Visszaállítási pont lehetőséget. A fenti képernyőképen látható módon kiválaszthatja a kiszolgáló vagy munkaterület nevét, amelyből visszaállítható.

    • Ha georedundáns biztonsági másolatot készít, válassza ki a forrásrégióban található munkaterületet és a visszaállítani kívánt dedikált SQL-készletet.

    Feljegyzés

    A meglévő készlet nevével megegyező nevű SQL-készlet helyben történő visszaállítása nem végezhető el. Függetlenül attól, hogy az SQL-készlet ugyanazon a munkaterületen vagy egy másik munkaterületen található.

  9. Válassza a Felülvizsgálat és létrehozás lehetőséget.

Meglévő dedikált SQL-készlet visszaállítása az Azure Portalon

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen arra a dedikált SQL-készletre, amelyből vissza szeretne állítani.

  3. Az Áttekintés oldal felső részén válassza a Visszaállítás lehetőséget.

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

  4. Válassza ki az automatikus visszaállítási pontokat vagy a felhasználó által definiált visszaállítási pontokat.

    Ha a dedikált SQL-készlet nem rendelkezik automatikus visszaállítási ponttal, várjon néhány órát, vagy hozzon létre egy felhasználó által definiált visszaállítási pontot a visszaállítás előtt.

    Ha georeduktúra-visszaállítást szeretne végezni, válassza ki a helyreállítani kívánt munkaterületet és dedikált SQL-készletet.

  5. Válassza a Felülvizsgálat és létrehozás lehetőséget.

Meglévő dedikált SQL-készlet visszaállítása a PowerShell-lel

  1. Nyisson meg egy PowerShell-terminált.

  2. Csatlakozás az Azure-fiókjába, és listázhatja a fiókjához társított összes előfizetést.

  3. Válassza ki a visszaállítani kívánt SQL-készletet tartalmazó előfizetést.

  4. Listázhatja a dedikált SQL-készlet visszaállítási pontjait.

  5. Válassza ki a kívánt visszaállítási pontot a RestorePointCreationDate használatával.

  6. Állítsa vissza a dedikált SQL-készletet a kívánt visszaállítási pontra a Restore-AzSynapseSqlPool PowerShell-parancsmag használatával.

    • Ha egy másik munkaterületre szeretné visszaállítani a dedikált SQL-készletet, adja meg a másik munkaterület nevét. Ez a munkaterület egy másik erőforráscsoportban és régióban is lehet.
    • Ha másik előfizetésre szeretne visszaállítani, olvassa el a jelen cikk későbbi, PowerShellen keresztüli, egy másik előfizetésre történő meglévő dedikált SQL-készlet visszaállítása című témakört.
  7. Ellenőrizze, hogy a visszaállított dedikált SQL-készlet online állapotban van-e.

    
    $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
    

Meglévő dedikált SQL-készlet visszaállítása egy másik előfizetésre a PowerShell használatával

Előfizetések közötti visszaállításkor az Azure Synapse-munkaterület dedikált SQL-készletei csak közvetlenül egy különálló dedikált SQL-készletbe (korábbi nevén SQL DW) állíthatók vissza. Ha egy Azure Synapse-munkaterület dedikált SQL-készletének visszaállítására van szükség a cél-előfizetés egyik munkaterületére, további visszaállítási lépésre van szükség.

Az alábbi PowerShell-példa az előzőhöz hasonló, azonban három fő különbség van:

  • A visszaállítandó SQL Pool-objektum lekérése után az előfizetési környezetet át kell állítani a cél (vagy cél) előfizetés nevére.
  • A visszaállítás végrehajtásakor az Az.Synapse-modulok helyett az Az.Sql-modulokat használja.
  • Az alábbi mintakód további lépéseket tartalmaz az Azure Synapse-munkaterületre való visszaállításhoz a célelőfizetésben. A PowerShell-parancsok kibontása a mintában leírtak szerint.

Lépések:

  1. Nyisson meg egy PowerShell-terminált.

  2. Frissítse az Az.Sql-modult a 3.8.0-s (vagy újabb) verzióra, ha egy régebbi verziót használ Update-Module. Ellenkező esetben hiba lép fel. A verzió ellenőrzése a PowerShell-lel:

    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. Csatlakozás az Azure-fiókjába, és listázhatja a fiókjához társított összes előfizetést.

  4. Válassza ki a visszaállítani kívánt SQL-készletet tartalmazó előfizetést.

  5. Listázhatja a dedikált SQL-készlet visszaállítási pontjait.

  6. Válassza ki a kívánt visszaállítási pontot a RestorePointCreationDate használatával.

  7. Válassza ki azt a cél-előfizetést, amelyben az SQL-készletet vissza kell állítani.

  8. Állítsa vissza a dedikált SQL-készletet a kívánt visszaállítási pontra a Restore-AzSqlDatabase PowerShell-parancsmag használatával.

  9. Ellenőrizze, hogy a visszaállított dedikált SQL-készlet (korábban SQL DW) online állapotban van-e.

  10. Ha a kívánt cél egy Synapse-munkaterület, bontsa ki a kódot a további visszaállítási lépés végrehajtásához.

    1. Hozzon létre egy visszaállítási pontot az újonnan létrehozott adattárház számára.

    2. Kérje le a szintaxissal létrehozott utolsó visszaállítási Select -Last 1 pontot.

    3. Végezze el a visszaállítást a kívánt Azure Synapse-munkaterületre.

      $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
      
      

Hibaelhárítás

A visszaállítási művelet "RequestTimeout" kivételen alapuló üzembe helyezési hibát eredményezhet.

Screenshot from resource group deployments dialog of a timeout exception.

Ez az időtúllépés figyelmen kívül hagyható. Tekintse át a dedikált SQL-készlet lapját az Azure Portalon, és lehet, hogy még mindig "Visszaállítás" állapotú, és végül áttér az "Online" állapotra.

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