Con Azure SQL Database puede establecer una directiva de retención de copias de seguridad a largo plazo (LTR) para conservar automáticamente las copias de seguridad en contenedores independientes de Azure Blob Storage hasta 10 años. A continuación, puede recuperar una base de datos mediante estas copias de seguridad con Azure Portal, la CLI de Azure o PowerShell.
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, pero todo el desarrollo futuro se realizará para 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-AzSqlDatabaseLongTermRetentionBackup y Restore-AzSqlDatabase, debe ser miembro de uno de los roles siguientes:
El rol de colaborador de SQL Server no tiene permiso para eliminar las copias de seguridad de LTR.
Se pueden conceder permisos de control de acceso basado en rol (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 un servidor descartado, se debe conceder este permiso en el ámbito de la suscripción de dicho servidor:
En Azure Portal, vaya al servidor y seleccione Copias de seguridad. Seleccione la pestaña Directivas de retención para modificar la configuración de retención de copias de seguridad.
En la pestaña Directivas de retención, seleccione las bases de datos cuyas directivas de retención de copias de seguridad a largo plazo quiere establecer o modificar. Las bases de datos no seleccionadas no se ven afectadas.
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.
Seleccione Aplicar para aplicar la configuración de retención elegida a todas las bases de datos seleccionadas.
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 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 db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--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 db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W" \
--yearly-retention "P5Y" \
--week-of-year 16
# get the SQL server
$subId = "<subscriptionId>"
$serverName = "<serverName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16
Visualización y restauración de copias de seguridad
Vea las copias de seguridad que se han conservado para una base de datos concreta con una directiva LTR y realice la restauración a partir de esas copias de seguridad.
En Azure Portal, vaya al servidor y seleccione Copias de seguridad. Para 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. Seleccione una copia de seguridad desde la que iniciar la restauración.
Para restaurar a partir de una copia de seguridad de LTR disponible, seleccione la copia de seguridad a partir de la que quiere realizar la restauración y luego Restaurar.
Seleccione un nombre para la nueva base de datos y luego Revisar y crear para revisar los detalles de la restauración. Seleccione Crear para restaurar la base de datos a partir de la copia de seguridad elegida.
En la barra de herramientas, seleccione el icono de notificación para ver el estado del trabajo de restauración.
Cuando se complete el trabajo de restauración, abra la página Bases de datos SQL para ver la base de datos recién restaurada.
Ejecute el comando az sql midb ltr-policy show para ver la directiva de LTR de una base de datos única en el servidor.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Visualización de copias de seguridad de LTR
Use el comando az sql midb ltr-backup list para mostrar las copias de seguridad de LTR de una base de datos. Puede usar este comando para buscar el parámetro name y utilizarlo en otros comandos.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
Restaure la base de datos a partir de la copia de seguridad de LTR.
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Importante
Para restaurar a partir de una copia de seguridad de LTR una vez eliminado el servidor o grupo de recursos, debe tener los permisos de la suscripción del servidor 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 el intercambio de la base de datos. 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 un servidor.
# get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName $resourceGroup -ServerName $serverName | `
Get-AzSqlDatabaseLongTermRetentionPolicy
# get the LTR policy of a specific database
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup
Borrado de una directiva LTR
En este ejemplo se muestra cómo borrar una directiva de LTR de una base de datos.
Este ejemplo muestra cómo enumerar las copias de seguridad de LTR de un servidor.
# 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
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location
# get the list of LTR backups from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName
# get the LTR backups for a specific database from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live
# only list the latest LTR backup for each database
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase
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 server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
Importante
Para restaurar a partir de una copia de seguridad de LTR una vez eliminado el servidor o grupo de recursos, debe tener los permisos de la suscripción del servidor y dicha suscripción debe estar activa. También debe omitir el parámetro -ResourceGroupName opcional.
Si usa copias de seguridad de LTR para cumplir con el cumplimiento u otros requisitos críticos, considere la posibilidad de realizar simulacros de recuperación periódicos para comprobar que se pueden restaurar las copias de seguridad de LTR y que la restauración da como resultado el estado esperado de la base de datos.
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 eliminado el servidor, 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 al servidor lógico de Azure SQL Database.
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.
Si usa copias de seguridad de LTR para cumplir los requisitos de cumplimiento u otros requisitos críticos:
Compruebe que las copias de seguridad de LTR se realizan según la directiva configurada siguiendo los pasos descritos en la sección Ver copias de seguridad mediante Portal, la CLI de Azure o PowerShell.
Considere la posibilidad de llevar a cabo simulacros de recuperación periódicos para comprobar que la restauración de copias de seguridad de LTR da como resultado el estado esperado de la base de datos.