Se aplica a:
Azure SQL Managed Instance
En Azure SQL Managed Instance, puede configurar una directiva de retención de copias de seguridad a largo plazo (LTR). Esto permite conservar automáticamente copias de seguridad de bases de datos en contenedores de Azure Blob Storage independientes durante un máximo de 10 años. Posteriormente, puede recuperar una base de datos mediante esas copias de seguridad con Azure Portal CLI de Azure y PowerShell.
En las secciones siguientes se explica cómo usar Azure Portal, PowerShell y la CLI de Azure para configurar la retención de copias de seguridad a largo plazo, ver las copias de seguridad en el almacenamiento de Azure SQL y realizar una restauración a partir de una copia de seguridad del almacenamiento de Azure SQL.
Prerrequisitos
Una suscripción de Azure activa.
Prepare el entorno para la CLI de Azure.
Prepare el entorno para PowerShell.
Importante
El módulo Az
reemplaza AzureRM
. Todo el desarrollo futuro es para el módulo Az.Sql
.
Para Get-AzSqlInstanceDatabaseLongTermRetentionBackup
y Restore-AzSqlInstanceDatabase
, debe ser miembro de uno 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 Remove-AzSqlInstanceDatabaseLongTermRetentionBackup
, 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
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 SQL Managed Instance no tiene permiso para eliminar las 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 y, después, seleccione Copias de seguridad. En la pestaña Directivas de retención, seleccione las bases de datos en las que quiere establecer o modificar directivas de retención de copias de seguridad a largo plazo. Los cambios no se aplicarán a las bases de datos que queden 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
Cuando se habilita una directiva de retención de copia de seguridad a largo plazo, la primera copia de seguridad puede tardar hasta 7 días en mostrarse y estar disponible para restaurar. Para más información sobre la cadencia de retención de copia de seguridad a largo plazo, vea Retención de copia 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 de 12 semanas para la copia de seguridad semanal, de 5 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 de 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 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 y, después, 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 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 que contiene la base de datos de origen. En la lista desplegable Base de datos administrada, elija la base de datos que quiera restaurar y, después, elija el momento dado desde el que quiera 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 o, 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 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 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. Observe que aunque esta interfaz no cambió, el parámetro de id. de recurso requiere ahora el id. de recurso de la copia de seguridad de 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 el permiso del ámbito de la 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 y cuándo realizó la solicitud. 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
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 o la directiva de actualización siempre actualizada. Las copias de seguridad de base de datos tomadas de instancias configuradas con la directiva de actualización siempre actualizada se pueden restaurar en instancias configuradas también con la directiva de actualización siempre actualizada.
Pasos siguientes