Se aplica a:
Azure SQL Managed Instance
En este artículo se muestra cómo configurar una directiva de retención de copia de seguridad a largo plazo (LTR) para Azure SQL Managed Instance mediante Azure Portal, PowerShell y la CLI de Azure, así como cómo ver y restaurar copias de seguridad desde Azure Storage. Una directiva LTR permite conservar automáticamente las copias de seguridad de bases de datos dentro de un contenedor de Azure Blob Storage independiente durante un máximo de 10 años. A continuación, puede recuperar una base de datos mediante estas copias de seguridad.
Prerrequisitos
Una suscripción de Azure activa.
Prepare el entorno para la CLI de Azure.
Prepare el entorno para PowerShell.
Importante
El módulo de Azure Resource Manager (AzureRM) de PowerShell ha quedado en desuso el 29 de febrero de 2024. Todo el desarrollo futuro debe usar el módulo Az.Sql. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones. El módulo AzureRM ya no cuenta con mantenimiento ni soporte. Los argumentos de los comandos del módulo Az PowerShell y en los módulos AzureRM son sustancialmente idénticos. Para obtener más información sobre su compatibilidad, consulte Introducción al nuevo módulo de Az PowerShell.
Permisos
Para ver y restaurar copias de seguridad de LTR, debe ser miembro de los roles siguientes:
- Rol de propietario de la suscripción o
- Rol de colaborador de SQL Managed Instance
- Rol personalizado con los permisos siguientes:
Microsoft.Sql/locations/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/read
Para eliminar copias de seguridad de LTR, debe ser miembro de uno de los roles siguientes:
- Rol de propietario de la suscripción o
- Rol personalizado con el siguiente permiso:
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Nota:
El rol de colaborador de instancias administradas de SQL no tiene permiso para eliminar copias de seguridad de LTR.
Se pueden conceder permisos de control de acceso basado en roles (RBAC) de Azure en el ámbito de la suscripción o del grupo de recursos. Sin embargo, para acceder a las copias de seguridad de LTR que pertenecen a una instancia descartada, se debe conceder el permiso en el ámbito de la suscripción de dicha instancia.
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Creación de directivas de retención a largo plazo
Puede configurar SQL Managed Instance para retener copias de seguridad automatizadas durante un período superior al período de retención del nivel de servicio.
En Azure Portal, seleccione la instancia administrada de SQL y, a continuación, seleccione Copias de seguridad. En la pestaña Directivas de retención , seleccione las bases de datos para las que desea establecer o modificar directivas de retención de copia de seguridad a largo plazo. Los cambios no se aplicarán a ninguna base de datos sin seleccionar.
En el panel Configurar directivas, especifique el período de retención que quiera para las copias de seguridad semanales, mensuales o anuales. Seleccione un período de retención de "0" para indicar que no se debe establecer una retención de copias de seguridad a largo plazo.
Cuando termine, seleccione Aplicar.
Importante
Al habilitar una directiva de retención de copia de seguridad a largo plazo, la primera copia de seguridad puede tardar hasta siete días en estar visible y disponible para la restauración. Para obtener más información sobre la cadencia de copia de seguridad de LTR, consulte Retención de copias de seguridad a largo plazo.
Ejecute el comando az sql midb show para obtener los detalles de la base de datos de SQL Managed Instance.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Ejecute el comando az sql midb ltr-policy set para crear una directiva de LTR. En el ejemplo siguiente se establece una directiva de retención a largo plazo durante 12 semanas para la copia de seguridad semanal.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W"
En este ejemplo se establece una directiva de retención durante 12 semanas para la copia de seguridad semanal, cinco años para la copia de seguridad anual y la semana del 15 de abril en la que se va a realizar la copia de seguridad LTR anual.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W" /
--yearly-retention "P5Y" /
--week-of-year 16
# get the SQL Managed Instance
$subId = "<subscriptionId>"
$instanceName = "<instanceName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
YearlyRetention = 'P5Y'
WeekOfYear = '16'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Visualización y restauración de copias de seguridad
Para ver las copias de seguridad a largo plazo disponibles desde Azure Portal, siga estos pasos:
En Azure Portal, seleccione la instancia administrada de SQL y, a continuación, seleccione Copias de seguridad. En la pestaña Copias de seguridad disponibles, seleccione la base de datos de la que desea ver las copias de seguridad disponibles. Seleccione Administrar.
En el panel Administrar copias de seguridad, revise las copias de seguridad disponibles.
Para restaurar desde esta página, elija la copia de seguridad y seleccione Restaurar.
Como alternativa, para restaurar una copia de seguridad a partir de la retención a largo plazo mediante Azure Portal, siga estos pasos:
Inicie sesión en Azure Portal.
Vaya a la instancia de SQL Managed Instance de destino en la que planea restaurar la base de datos.
En la página Información general, elija + Nueva base de datos para abrir la página Crear instancia administrada de Azure SQL Database.
En la pestaña Aspectos básicos de la página Crear instancia administrada de Azure SQL Database, proporcione los detalles de suscripción y grupo de recursos en Detalles del proyecto. A continuación, en Detalles de la base de datos, proporcione el nuevo nombre de la base de datos que planea restaurar. Confirme que la instancia administrada de SQL correcta aparece en la lista desplegable. A continuación, seleccione Siguiente: Origen de >datos .
En la pestaña Origen de datos, elija Restauración a un momento dado en Usar datos existentes. Proporcione la suscripción, el grupo de recursos y la instancia administrada de SQL que contiene la base de datos de origen. En la lista desplegable Base de datos administrada , elija la base de datos que desea restaurar. A continuación, elija el momento en el que desea restaurar la base de datos. La instancia de origen y de destino puede ser la misma o dos instancias diferentes. Seleccione Siguiente: Configuración >adicional.
En la pestaña Configuración adicional , puede activar la casilla para heredar la directiva de retención de la base de datos de origen. Como alternativa, puede seleccionar Configurar retención para abrir la página Configurar directivas y establecer las directivas de retención deseadas para la base de datos restaurada. Cuando termine, seleccione Revisar y crear.
En Revisar y crear, cuando la validación se realice correctamente, seleccione Crear para restaurar la base de datos.
Esta acción inicia el proceso de restauración, que crea una base de datos y la rellena con datos de la base de datos original en el momento especificado. Para más información sobre el tiempo de recuperación, consulte Tiempo de recuperación.
Visualización de directivas de LTR
Ejecute el comando az sql midb ltr-policy show para ver la directiva de LTR de una base de datos única dentro de una instancia.
az sql midb ltr-policy show \
--resource-group mygroup \
--managed-instance myinstance \
--name mymanageddb
Visualización de copias de seguridad de LTR
Use el comando az sql midb ltr-backup list para ver las copias de seguridad de LTR dentro de una instancia.
az sql midb ltr-backup list \
--resource-group mygroup \
--location eastus2 \
--managed-instance myinstance
Restauración desde copias de seguridad de LTR
Ejecute el comando az sql midb ltr-backup restore para restaurar la base de datos a partir de una copia de seguridad de LTR. Puede ejecutar az sql midb ltr-backup show para obtener backup-id.
Cree una variable para backup-id con el comando az sql db ltr-backup show para su uso futuro.
get_backup_id=$(az sql midb ltr-backup show
--location eastus2 \
--managed-instance myinstance \
--database mydb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000" \
--query 'id' \
--output tsv)
Restauración de la base de datos a partir de una copia de seguridad de LTR
az sql midb ltr-backup restore \
--dest-database targetmidb \
--dest-mi myinstance \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Importante
Para restaurar a partir de una copia de seguridad de LTR una vez eliminada la instancia, debe tener los permisos de la suscripción de la instancia de SQL Server y dicha suscripción debe estar activa.
Nota:
Desde aquí, puede conectarse a la base de datos restaurada mediante SQL Server Management Studio para realizar las tareas necesarias, como extraer un bit de datos de la base de datos restaurada para copiarlo en la base de datos existente o para eliminar la base de datos existente y cambiar el nombre de la base de datos restaurada por el nombre de la base de datos existente. Consulte la restauración a un momento dado.
Visualización de directivas de LTR
En este ejemplo se muestra cómo enumerar las directivas de LTR de una instancia para una base de datos única.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
En este ejemplo se muestra cómo enumerar las directivas de LTR para todas las bases de datos de una instancia.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
Borrado de una directiva LTR
En este ejemplo se muestra cómo borrar una directiva de LTR de una base de datos.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Visualización de copias de seguridad de LTR
Este ejemplo muestra cómo enumerar las copias de seguridad de LTR de una instancia.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
Restauración desde copias de seguridad de LTR
Este ejemplo muestra cómo restaurar desde una copia de seguridad de LTR. Tenga en cuenta que esta interfaz no cambió, pero el parámetro de identificador de recurso ahora requiere el identificador de recurso de copia de seguridad LTR.
# restore a specific LTR backup as an P1 database on the instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
Importante
Para restaurar a partir de una copia de seguridad de LTR una vez eliminada la instancia, debe tener los permisos de la suscripción de la instancia de SQL Server y dicha suscripción debe estar activa. También debe omitir el parámetro -ResourceGroupName opcional.
Nota:
Desde aquí, puede conectarse a la base de datos restaurada mediante SQL Server Management Studio para realizar las tareas necesarias, como extraer un bit de datos de la base de datos restaurada para copiarlo en la base de datos existente o para eliminar la base de datos existente y cambiar el nombre de la base de datos restaurada por el nombre de la base de datos existente. Consulte la restauración a un momento dado.
Eliminación de copias de seguridad de LTR
Elimine las copias de seguridad que se conservan para una base de datos específica con una directiva LTR.
Importante
La eliminación de la copia de seguridad de LTR no es reversible. Para eliminar una copia de seguridad de LTR una vez eliminada la instancia, debe tener permiso de ámbito de suscripción. Puede configurar notificaciones sobre cada eliminación en Azure Monitor filtrando por la operación "Elimina una copia de seguridad de retención a largo plazo". El registro de actividad contiene información sobre quién realizó la solicitud y cuándo. Consulte Creación de alertas del registro de actividad para obtener instrucciones detalladas.
- En Azure Portal, vaya a la instancia administrada de SQL.
- Seleccione Copias de seguridad. A fin de ver las copias de seguridad de LTR disponibles para una base de datos concreta, seleccione Administrar en la columna Copias de seguridad de LTR disponibles. Aparece un panel con una lista de las copias de seguridad de LTR disponibles para la base de datos seleccionada.
- En el panel Copias de seguridad de retención a largo plazo disponibles, revise las copias de seguridad disponibles. Seleccionar una copia de seguridad para eliminarla. Seleccione Eliminar.
Ejecute az sql midb ltr-backup list para obtener la copia de seguridad name.
Ejecute el comando az sql midb ltr-backup delete para quitar una copia de seguridad de LTR.
az sql midb ltr-backup delete \
--location eastus2 \
--managed-instance myinstance \
--database mymanageddb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000"
En este ejemplo se muestra cómo eliminar la copia de seguridad de LTR más antigua de la lista de copias de seguridad. En este ejemplo se obtiene la lista de copias de seguridad de LTR para una base de datos específica de la región de Azure en la instancia administrada de SQL indicada.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
Limitaciones
Tenga en cuenta las limitaciones siguientes:
- Las copias de seguridad de base de datos tomadas de instancias configuradas con la directiva de actualización de SQL Server 2022 se pueden restaurar en instancias configuradas con la directiva de actualización de SQL Server 2022, SQL Server 2025 o Always-up-to-date update policy.
- Las copias de seguridad de base de datos tomadas de instancias configuradas con la directiva de actualización de SQL Server 2025 se pueden restaurar en instancias configuradas con la directiva de actualización de SQL Server 2025 o Always-up-to-date , pero no en las instancias configuradas con la directiva de actualización de SQL Server 2022 .
- Las copias de seguridad de base de datos tomadas de instancias configuradas con la directiva de actualización always-up-to-date solo se pueden restaurar en instancias configuradas con la directiva de actualización Always-up-to-date .
Contenido relacionado