2

我正在尝试将现有 AzureSQL(单例)数据库从 PRODUCTION 订阅复制到不同订阅中的 NON-PRODUCTION 数据库中。我需要每晚重复这个过程,以便我们的生产支持环境(非生产环境)拥有前一天晚上生产的最新副本。由于在 AzureSQL 中无法覆盖数据库,因此我想将 PROD 服务器中的“DBProd”作为“DBProd2”复制到我的非 Prod 服务器(在不同的订阅中),然后从目标服务器中删除现有的“DBProd”并将“DBProd2”重命名为“DBProd”。

我已经通过这个网站搜索找到答案,我找到的最接近的是下面的这个链接......

Windows Azure SQL 数据库上的数据库交叉订阅复制

在该链接中,用户@PaulH 提交了以下答案...

“这适用于我的订阅,无需匹配 SQL Server 帐户。我是源服务器和目标服务器上的服务器活动目录管理组的成员,并使用 AD 身份验证与 MFA 进行连接。– paulH 3 月 25 日 11:22”

但是,我无法弄清楚它是如何实现的细节。我的偏好是使用 power shell 脚本来完成这项工作。如果你们中的任何人以前这样做过,我将不胜感激一段示例代码,或任何实现这一点的指针。

我的另一个选择是走 BACPAC 路线(导出和导入),但我只想在无法跨订阅复制数据库的情况下诉诸于此。

提前感谢!

赫利俄斯

通过链接... Windows Azure SQL 数据库上数据库的交叉订阅复制

4

1 回答 1

0

Move-AzureRmResource cmdlet 可能就是您所需要的。下面是它的工作原理。

假设您在不同的资源组上创建了一个新的 Azure SQL Server。

New-AzureSqlDatabaseServer -Location "East US" -AdministratorLogin "AdminLogin" -AdministratorLoginPassword "AdminPassword"

将源数据库复制到新创建的 Azure SQL Server。

Start-AzureSqlDatabaseCopy -ServerName "SourceServer" -DatabaseName "Orders" -PartnerServer "NewlyCreatedServer" -PartnerDatabase "OrdersCopy"

将新创建的 Azure SQL Server 的资源组移动到另一个订阅。

Move-AzureRmResource -DestinationResourceGroupName [-DestinationSubscriptionId ] -ResourceId [-Force] [-ApiVersion ] [-Pre] [-DefaultProfile ] [-InformationAction ] [-InformationVariable ] [-WhatIf] [-Confirm] []

有关详细信息,请阅读DBAStackExchange 线程。

于 2019-07-25T20:23:10.793 回答