使用与数据库名称相同的数据库复制或恢复Azure SQL数据库未正确恢复

vqlkdk9b  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(103)

我在一个弹性池中有两个Azure SQL数据库。它们分别名为Web和Web2。它们被附加到部署插槽并随交换移动,以便Web或Web2将成为服务公共流量的数据库(主插槽)。
一旦它们被交换,我想更新非公共Web数据库(可以是Web或Web2)的数据,以便它们同步。
为了实现这一点,我有一个PowerShell脚本,可以找到哪个数据库在主插槽中。然后我尝试使用数据库的地理还原来创建一个名为RestoredDB的新数据库,然后将其重命名为Web或Web2,以便保持我的connectionString不变.或者我尝试复制Azure SQL数据库命令。
地理还原示例

$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
Restore-AzSqlDatabase -FromGeoBackup -ResourceGroupName "TargetResourceGroup" -ServerName "TargetServer" -TargetDatabaseName "RestoredDatabase" -ResourceId $GeoBackup.ResourceID -ElasticPoolName "MyWebPool"

字符串
复制Azure SQL DB示例:

New-AzSqlDatabaseCopy -CopyDatabaseName <String> -CopyResourceGroupName <String> -CopyServerName <String> -DatabaseName db1 -ResourceGroupName MyResourceGroup -ServerName s1 -ElasticPoolName "MyWebPool"


在这两种情况下,它都将创建大小正确(以GB为单位)的RestoredDB作为我想要恢复或复制的源.但在删除非活动Web(Web或Web2)并将RestoredDB重命名为Web或Web2时.它会恢复回原始Web或Web2,而不是具有正确数据的RestoredDB,只是重命名为所需数据库以防止更新connectionStrings。
这是因为地理冗余备份(7天保留),我需要创建一个唯一的数据库名称,而不是删除原始数据库和重命名我的新创建或恢复到数据库?

k75qkfdt

k75qkfdt1#

在重新运行相同的脚本时,它正在工作。也许我以前的具有恢复操作的脚本被缓存在Azure DevOps中。我使用的步骤如下:
1.从Azure应用服务ConnectionStrings获取实时数据库名称
1.创建实时数据库的副本(Web或Web2,取决于当前换入的数据库)
1.删除非活动数据库(Web或Web2,取决于当前换入的数据库)
1.将复制的数据库重新命名为非活动插槽中的名称

相关问题