SQL Azure数据库支持使用单个命令异步复制整个数据库,如下所示:
我一直在使用
在同一服务器中复制数据库CREATE DATABASE [targetdb] AS COPY OF [sourcedb]
但是当我尝试将数据库复制到其他SQL Azure服务器时:
CREATE DATABASE [targetdb] AS COPY OF [source_sql_azure_server].[sourcedb]
但我得到以下错误:
无法打开服务器" source_sql_azure_server"登录请求。登录失败。
如何复制?
答案 0 :(得分:10)
虽然这个问题已经很久了,但是在我试图找出是否可以轻松地将Azure SQL数据库从一台服务器复制到另一台服务器时,我遇到了这个问题。
事实证明,它现在就像从http://portal.azure.com导航到源数据库然后单击复制并选择新的目标服务器一样简单。
本文将详细介绍整个过程: https://azure.microsoft.com/en-us/documentation/articles/sql-database-copy/
答案 1 :(得分:4)
要在2个不同的服务器之间执行数据库复制,您必须连接到目标SQL Azure服务器的主数据库并具有正确的权限。
源服务器和目标服务器上必须存在完全相同的登录名/密码,并且登录名必须具有源服务器上的db_owner
权限和目标服务器上的dbmanager
。
在此处详细了解:http://msdn.microsoft.com/en-us/library/ff951624.aspx
答案 2 :(得分:0)
我想还有另一种方法可以在不同的区域实现另一个副本。您只需对其他服务器和区域执行异步复制,并将其作为主服务器。
答案 3 :(得分:0)
这应该可以解决您5岁的问题! :)
$dblist = @("db1","db2","db3")
$sourceserver = "azureDBserversource"
$targetserver = "azureDBserverTarget"
$sourceRG = "mySourceRG"
$targetRG = "myTargetRG"
foreach ($db in $dblist) {
New-AzSqlDatabaseCopy -ResourceGroupName $sourceRG `
-ServerName $sourceserver `
-DatabaseName $db `
-CopyResourceGroupName $targetRG `
-CopyServerName $targetserver `
-CopyDatabaseName $db
}