Восстановление существующего выделенного пула SQL
Из этой статьи вы узнаете, как восстановить существующий выделенный пул SQL в Azure Synapse Analytics с помощью портала Azure, Synapse Studio, и PowerShell. Эта статья относится как к восстановлению, так и к геовосстановлению.
Примечание.
Это руководство предназначено только для выделенных пулов SQL в рабочих областях Azure Synapse. Сведения о автономных выделенных пулах SQL (ранее — хранилище данных SQL) см. в статье "Восстановление существующего выделенного пула SQL (ранее — хранилище данных SQL)".
Восстановление существующего выделенного пула SQL с помощью Synapse Studio
Войдите на портал Azure.
Перейдите к своей рабочей области Azure Synapse.
Выберите Приступая к работе ->Открыть Synapse Studio и щелкните Открыть.
В области навигации слева выберите Данные.
Выберите Управление пулами.
Нажмите кнопку + Создать, чтобы создать выделенный пул SQL в рабочей области Azure Synapse Analytics.
На вкладке Дополнительные параметры выберите точку восстановления, из которой нужно выполнить восстановление.
Если вы хотите выполнить геовосстановление, выберите рабочую область и выделенный пул SQL, который нужно восстановить.
Выберите Точки автоматического восстановления или Определенные пользователем точки восстановления.
Если у выделенного пула SQL нет автоматических точек восстановления, подождите несколько часов или создайте перед восстановлением определенную пользователем точку восстановления. Для определенных пользователем точек восстановления выберите существующую или создайте новую.
Если вы хотите восстановить выделенный пул SQL из другой рабочей области, выберите новый выделенный пул SQL из текущей рабочей области. На вкладке "Дополнительные параметры" найдите существующие данные и выберите параметр "Точка восстановления". Как показано на снимке экрана выше, можно выбрать имя сервера или рабочей области , из которого можно восстановить.
При восстановлении географической резервной копии выберите рабочую область, расположенную в исходном регионе, и выделенный пул SQL, который нужно восстановить.
Примечание.
Восстановление пула SQL с тем же именем, что и существующий пул, невозможно выполнить на месте. Независимо от пула SQL в одной рабочей области или другой рабочей области.
Выберите Review + Create (Просмотреть и создать).
Восстановление существующего выделенного пула SQL с помощью портала Azure
Войдите на портал Azure.
Перейдите в выделенный пул SQL, из которого требуется выполнить восстановление.
В верхней области страницы Обзор выберите Восстановить.
Выберите Точки автоматического восстановления или Определенные пользователем точки восстановления.
Если у выделенного пула SQL нет автоматических точек восстановления, подождите несколько часов или создайте перед восстановлением определенную пользователем точку восстановления.
Если вы хотите выполнить геовосстановление, выберите рабочую область и выделенный пул SQL, который нужно восстановить.
Выберите Review + Create (Просмотреть и создать).
Восстановление существующего выделенного пула SQL с помощью PowerShell
Откройте терминал Windows PowerShell.
Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.
Выберите подписку, содержащую пул SQL, который необходимо восстановить.
Перечислите точки восстановления для выделенного пула SQL.
Выберите нужные точки восстановления с помощью свойства RestorePointCreationDate.
Восстановите выделенный пул SQL в нужную точку восстановления с помощью командлета PowerShell Restore-AzSynapseSqlPool.
- Чтобы восстановить выделенный пул SQL на другую рабочую область, убедитесь, что указано имя другой рабочей области. Этот рабочая область также может находиться в другой группе ресурсов и регионе.
- Чтобы выполнить восстановление в другую подписку, перейдите к разделу Восстановление существующего выделенного пула SQL в другую подписку с помощью PowerShell далее в этой статье.
Убедитесь, что восстановленный выделенный пул SQL находится в сети.
$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
Восстановление существующего выделенного пула SQL в другую подписку с помощью PowerShell
При восстановлении в другую подписку выделенный пул SQL из рабочей области Azure Synapse можно восстановить только напрямую в отдельный выделенный пул SQL (ранее Хранилище данных SQL). Если нужно восстановить выделенный пул SQL из рабочей области Azure Synapse в рабочую область в целевой подписке, требуется дополнительный шаг восстановления.
Следующий пример PowerShell аналогичен предыдущему, однако существует три основных отличия:
- После получения объекта пула SQL, который необходимо восстановить, контекст подписки необходимо переключить на имя целевой подписки.
- При восстановлении используйте модули Az.Sql вместо модулей Az.Synapse.
- Приведенный ниже примере кода включает дополнительные действия для восстановления в рабочей области Azure Synapse в целевой подписке. Раскомментируйте нужные команды PowerShell, как описано в примере.
Пошаговые инструкции
Откройте терминал Windows PowerShell.
Обновите модуль Az.Sql до версии 3.8.0 (или больше), если используется
Update-Module
более ранняя версия. В противном случае это приведет к сбоям. Чтобы проверить версию с помощью PowerShell, выполните следующие действия.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} }
Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.
Выберите подписку, содержащую пул SQL, который необходимо восстановить.
Перечислите точки восстановления для выделенного пула SQL.
Выберите нужные точки восстановления с помощью свойства RestorePointCreationDate.
Выберите целевую подписку, в которой необходимо восстановить пул SQL.
Восстановите выделенный пул SQL в нужную точку восстановления с помощью командлета PowerShell Restore-AzSqlDatabase.
Убедитесь, что восстановленный выделенный пул SQL (прежнее название — Хранилище данных SQL) находится в сети.
Если нужное назначение является рабочей областью Synapse, раскомментируйте код для выполнения дополнительного шага восстановления.
Создайте точку восстановления для только что созданного хранилища данных.
Получите последнюю точку восстановления, созданную с помощью синтаксиса
Select -Last 1
.Выполните восстановление в нужную рабочую область 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
Устранение неполадок
Операция восстановления может привести к сбою развертывания и исключению RequestTimeout.
Этот таймаут можно проигнорировать. Просмотрите страницу выделенного пула SQL в портал Azure, и она может по-прежнему иметь состояние "Восстановление" и в конечном итоге перейдет в "Онлайн".