我正在尝试将数据库从生产环境复制到开发环境。两台服务器都在 Azure 中,我在两台服务器中设置了相同的凭据,但在 SSMS 中执行时出现以下情况。
消息 45134,第 16 级,状态 1,第 4 行 无法解析远程合作伙伴服务器名称“XXXXXXXXXX.database.windows.net.database.windows.net”。
我正在目标数据库中执行主数据库中的脚本。
使用以下过程将数据库复制到不同的订阅对我有用:
(1) 在不同的资源组上创建新的 Azure SQL Server。
New-AzureSqlDatabaseServer -Location "East US" -AdministratorLogin "AdminLogin" -AdministratorLoginPassword "AdminPassword"
(2) 将源数据库复制到新创建的Azure SQL Server。
Start-AzureSqlDatabaseCopy -ServerName "SourceServer" -DatabaseName "Orders" -PartnerServer "NewlyCreatedServer" -PartnerDatabase "OrdersCopy"
(3) 将新创建的 Azure SQL Server 的资源组移动到另一个订阅。
Move-AzureRmResource -DestinationResourceGroupName [-DestinationSubscriptionId ] -ResourceId [-Force] [-ApiVersion ] [-Pre] [-DefaultProfile ] [-InformationAction ] [-InformationVariable ] [-WhatIf] [-Confirm] []
可以使用 T-SQL 复制 Azure SQL 数据库,如文档中所述,但它要求您使用短服务器名称。例如:
CREATE DATABASE [Database1] AS COPY OF [server1].[Database1]
如果您使用完整的服务器名称,例如:
CREATE DATABASE [Database1] AS COPY OF [server1.database.windows.net].[Database1]
您将看到您遇到的错误。