gpt4 book ai didi

powershell - 在 Powershell 中从保管库中删除 Azure 长期备份,现在无法重新设置

转载 作者:行者123 更新时间:2023-12-03 04:26:24 24 4
gpt4 key购买 nike

我的 Azure sql 服务器中有两个不同的数据库,并且在这两个数据库上都配置了长期备份。

我只想从恢复服务保管库中删除一个数据库的备份,但即使我编写代码来检查该名称(名称中带有“xxx”),它也删除了另一个数据库的备份(“yyy”)。

现在,在其他数据库(“yyy”)的门户中,当我转到数据库/恢复/长期/AzureVaultBackups 边栏选项卡时,它显示“TemplateBladeVirtualPart”“SQLAZUREEXTENTION”。

如果我尝试在 Sql Server/长期备份保留 Blade 中重新设置“yyy”的备份(在门户中),它永远不会分配策略(它也不会显示错误)。但是,我可以重新分配“xxx”的备份。这是删除备份的代码:

$vault = Get-AzureRmRecoveryServicesVault -ResourceGroupName $resourceGroupName -Name $recoveryServiceVaultName
Set-AzureRmRecoveryServicesVaultContext -Vault $vault

$containers = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureSQL -FriendlyName $vault.Name

ForEach ($container in $containers)
{
$items = Get-AzureRmRecoveryServicesBackupItem -container $container -WorkloadType AzureSQLDatabase

ForEach ($item in $items)
{
if ($item.name -like "*xxx*") {
write-host "Item is systemstore"
$item
# Remove the backups from the vault
###################################
Disable-AzureRmRecoveryServicesBackupProtection -item $item -ea SilentlyContinue
}
}

Unregister-AzureRmRecoveryServicesBackupContainer -Container $container
}

我还尝试通过代码将长期备份重新分配给“yyy”数据库,但在“set-AzureRMSqlDatabaseBackupLongTermRetentionPolicy”命令上失败,并出现错误“BadRequest:服务器”并且 recoveryServicesVault 应该位于相同的订阅和资源组下”(而且它们已经是)。我的问题是:

  1. 我的代码有什么问题,它也从 yyy 中删除了备份?和
  2. 如何修复 yyy 以便应用长期备份?
  3. 当我的服务器和保管库位于同一订阅和资源组中时,为什么我会在“set-AzureRMSqlDatabaseBackupLongTermRetentionPolicy”上收到 BadRequest 错误?

最佳答案

这是我用来删除长期备份的方法:

# We need to set recovery services context to work with recovery vault
$vault = Get-AzureRmRecoveryServicesVault -Name '{VaultName}'
Set-AzureRmRecoveryServicesVaultContext -Vault $vault
# Get protection containers to work with those
$containers = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureSQL -Status Registered
foreach ($container in $containers) {
$item = Get-AzureRmRecoveryServicesBackupItem -Container $container -WorkloadType AzureSQLDatabase
# possibly need another iterator here
Disable-AzureRmRecoveryServicesBackupProtection -Item $item -RemoveRecoveryPoints
Unregister-AzureRmRecoveryServicesBackupContainer -Container $container
}

关于powershell - 在 Powershell 中从保管库中删除 Azure 长期备份,现在无法重新设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com