не может клонировать базу данных на другой сервер SQL - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь клонировать существующую базу данных SQL Azure на сервер SQL в другом регионе. Я использую сценарий powershell

Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime (Get-Date) -ResourceGroupName $TargetRGName -ServerName $TargetServerName -TargetDatabaseName $TargetDBName -ResourceId $Database.ResourceID 

Но я получаю сообщение об ошибке: Длительная операция завершилась неудачно со статусом «Сбой».

Ответы [ 2 ]

2 голосов
/ 13 ноября 2019

Согласно вашему сценарию, вы используете восстановление на определенный момент времени для клонирования вашей базы данных на разных серверах. Это невозможно. Потому что мы просто можем использовать восстановление на определенный момент времени для восстановления базы данных на том же сервере SQL. Для получения дополнительной информации см. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-recovery-using-backups#point-in-time-restore. enter image description here

Так что, если вы хотите клонировать базу данных на разных серверах, вы можете использовать функцию Azure SQL databse copy. ,Для получения более подробной информации, пожалуйста, обратитесь к документу .

New-AzSqlDatabaseCopy -ResourceGroupName "<source server group name>" `
    -ServerName "<source server name>" `
    -DatabaseName "<source DB name>" `
    -CopyResourceGroupName "<target server group name>" `
    -CopyServerName "<target server name>" `
    -CopyDatabaseName "<target DB name>"

Кроме того, вы также можете использовать гео-магазин для реализации ваших потребностей. Для получения дополнительной информации, вы читаете официальный документ . Относительно того, как реализовать это с помощью powershell, обратитесь к следующему сценарию

Connect-AzAccount
# get geo backup
$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
#restore database
Restore-AzSqlDatabase -FromGeoBackup -ResourceGroupName "TargetResourceGroup" -ServerName "TargetServer" -TargetDatabaseName "RestoredDatabase" -ResourceId $GeoBackup.ResourceID -Edition "Standard" -RequestedServiceObjectiveName "S2"
1 голос
/ 08 ноября 2019

Восстановление может быть выполнено только для экземпляра SQL Server в том же регионе Azure без использования флага -FromGeoBackup. -FromGeoBackup Указывает, что этот командлет восстанавливает базу данных SQL из резервной копии с географической избыточностью. Вы можете использовать командлет Get-AzSqlDatabaseGeoBackup для получения резервной копии с географической избыточностью. Целевая область ДОЛЖНА быть парной областью для источника. Вы можете найти парные регионы здесь .

Если вы хотите переместить базу данных в другой регион, который не является парой, вы можете создать отказоустойчивую группу для репликации цели в другой регион. После полной репликации вы можете разбить отказоустойчивую группу и удалить исходную БД.

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-move-resources-across-regions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...