Jon*_*ite 5 migration restore azure-sql-managed-instance
精简版:
我正在尝试将备份从一个 SQL 托管实例恢复到另一个 SQL 托管实例。这些在不同的订阅中。使用此处的示例 3,我至少可以看到恢复从 sys.dm_operation_status 开始,但错误消息是“订阅 [目标] 不包含 [源 SQL MI]”。
问题: 如何将数据库从一个 SQL 托管实例迁移到另一个(在不同订阅中)?我目前的解决方法是对 blob 存储执行 copy_only 并以这种方式恢复。
一旦我们启用 TDE(进行中),我们将无法对 blob 执行 copy_only 备份。然后怎样呢?
长版:
最近,我们公司开始在 SQL 托管实例(和其他 PaaS/IaaS)上运行 Azure 中的生产工作负载,并且进展顺利。尽管我确实熟悉数据库迁移服务 (DMS),但我们有一个足够大的窗口,表明我们能够使用完整备份执行初始加载。
但是现在我们正在扩展我们的 dev/test/qa 环境,当然我们现在希望从生产环境恢复到这些环境。出于隔离目的,每个人都获得了自己的订阅。
这些命令有效,因为我至少可以在 sys.dm_operation_status 中看到恢复操作开始,但它失败并出现错误。错误是“订阅 [目标] 不包含 [源 SQL MI]”并让我相信交叉订阅还原对我们不起作用(尽管跨区域可以)。
DMS 似乎不支持使用数据库迁移服务作为源的方案。
Select-AzSubscription -Subscription $SourceSubscriptionID
$GeoBackup = Get-AzSqlInstanceDatabaseGeoBackup -ResourceGroupName $SourceResourceGroupName `
-InstanceName $SourceSQLMI `
-Name $SourceDatabaseName
Select-AzSubscription -Subscription $TargetSubscriptionID
Restore-AzSqlInstanceDatabase -FromGeoBackup `
-GeoBackupObject $GeoBackup `
-TargetInstanceDatabaseName $TargetDatabaseName `
-TargetInstanceName $TargetSQLMI `
-TargetResourceGroupName $TargetResourceGroupName
Run Code Online (Sandbox Code Playgroud)
任何建议,想法?如有必要,我愿意使用各种 Azure PowerShell 的预览版本,尽管我没有发现任何表明它有所不同的地方。
可能的解决方法
我确实从我们的一位 Microsoft 联系人那里获得了一个链接,该链接似乎表明您可以在同一订阅中建立托管实例,还原到该实例,然后将托管实例移动到另一个订阅。我没有尝试过,所以我不知道。他们提供的链接在这里,尽管我怀疑它的有效性。
小智 5
要添加到Jovanpop 的答案中,如果您使用 AKV 集成(即 BYOK TDE),只要其他订阅中的目标实例有权访问源实例上使用的相同加密密钥,您仍然应该能够在打开 TDE 的情况下进行 copy_only 备份。
目前(2020 年 4 月),同一地区和同一租户 ID(例如仅同一客户/公司)的交叉订阅 PITR 还原仅作为 EA、CSP 或 PayGo 订阅的有限预览提供。您需要登录到打算使用它的 Azure 门户(通过 EA/CSP/PayGo 订阅)并创建支持票,选择支持选项“自动备份或时间点还原”。几天后,您就可以获得有限预览版的批准。此解决方案还支持 Azure 托管密钥的 TDE 加密备份。对于 BYOK 密钥,这仅在客户在源和目标 MI 上具有相同密钥时才有效。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |