有没有一种方法可以使用Powershell从Azure的保管库中删除“备份项”?

时间:2019-03-15 17:17:08

标签: azure powershell backup

我目前在Azure方面遇到了一些问题。我的组织有几个Recovery Service Vault,其中一个包含6个备份项目,这些项目中有不同数量的备份。我需要删除的一个包含SQL数据库的备份(不是VM的备份,SQL DB备份)。通过GUI删除它们的唯一方法是一次删除它们,但是我们还有数百个需要删除。

我已经进行了一些研究,但找不到删除特定备份项目的方法,只需单击一次即可从“备份项目”中一次删除备份的方法。我已经找到了删除整个保管库的Powershell解决方案,但是由于要保留其中的备份项目,因此无法使用。

有人知道Powershell方法是删除整个备份项目还是至少从备份项目中删除所有备份,以便我可以手动删除备份项目,而不是通过数百个项目来进行点击一下?

2 个答案:

答案 0 :(得分:0)

这是我用来删除Azure SQL长期备份的摘录:

# 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
$item = Get-AzureRmRecoveryServicesBackupItem -Container $containers -WorkloadType AzureSQLDatabase
$availableBackups = Get-AzureRmRecoveryServicesBackupRecoveryPoint -Item $item
$availableBackups # check existing items
foreach ($container in $containers) {
    $items = Get-AzureRmRecoveryServicesBackupItem -container $container -WorkloadType AzureSQLDatabase
    ForEach ($item in $items) {
        Disable-AzureRmRecoveryServicesBackupProtection -item $item -RemoveRecoveryPoints -ea SilentlyContinue
    }
    Unregister-AzureRmRecoveryServicesBackupContainer -Container $container
}

不过,我不确定Azure备份的SQL备份的类型是什么。可能是AzureVm。

答案 1 :(得分:0)

对于 Azure VM 中的 SQL,您可以使用以下内容。

$vault = Get-AzureRmRecoveryServicesVault -ResourceGroupName "ressource group name" -Name "vault name"
Set-AzureRmRecoveryServicesVaultContext -Vault $vault
$containers = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureVMAppContainer -Status Registered

foreach ($container in $containers)
{
    $items = Get-AzureRmRecoveryServicesBackupItem -Container $container -WorkloadType MSSQL
    foreach ($item in $items)
    {
        Disable-AzureRmRecoveryServicesBackupProtection -item $item -RemoveRecoveryPoints -Force
    }
}