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.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Prepare el entorno para PowerShell.
Nota:
En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Importante
El módulo de Azure Resource Manager para PowerShell todavía es compatible con Azure SQL Database; sin embargo, todo el desarrollo futuro se realizará en el módulo Az.Sql. Para estos cmdlets, consulte AzureRM.Sql. Los argumentos para los comandos del módulo Az y los módulos AzureRm son esencialmente idénticos.
Para Get-AzSqlInstanceDatabaseLongTermRetentionBackup y Restore-AzSqlInstanceDatabase, debe ser miembro de uno de los roles siguientes:
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.
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.
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:
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.
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.
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
Para aprender sobre las copias de seguridad automáticas generadas por el servicio, consulte copias de seguridad automáticas.