Share via


Realización de una restauración a un momento dado

Use la restauración a un momento dado (PITR) para crear una base de datos como una copia de otra base de datos de algún momento del pasado que se encuentre dentro del período de retención. En este artículo se describe cómo realizar una restauración a un momento dado de una base de datos en SQL Managed Instance habilitada por Azure Arc.

La restauración a un momento dado puede restaurar una base de datos:

  • De una base de datos existente
  • Para una nueva base de datos en la misma instancia administrada de SQL habilitada por Azure Arc

Puede restaurar una base de datos a un momento dado en una configuración de retención configurada previamente. Puede comprobar la configuración de retención de una instancia administrada de SQL habilitada por Azure Arc de la siguiente manera:

Para el modo de conexión directa:

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

Para el modo de conexión indirecta:

az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s

En este momento, la restauración a un momento dado puede restaurar una base de datos:

  • Desde una base de datos existente en una instancia
  • A una nueva base de datos en la misma instancia

Copias de seguridad automáticas

SQL Managed Instance habilitada por Azure Arc tiene habilitada la característica de copias de seguridad automáticas integradas. Cada vez que cree o restaure una nueva base de datos, SQL Managed Instance habilitada por Azure Arc inicia una copia de seguridad completa inmediatamente y programa las copias de seguridad diferenciales y del registro de transacciones automáticamente. SQL Managed Instance almacena estas copias de seguridad en la clase de almacenamiento especificada durante la implementación.

La restauración a un momento dado permite restaurar una base de datos a un momento dado específico, dentro del período de retención. Para restaurar una base de datos a un momento específico, los servicios de datos habilitados para Azure Arc aplican los archivos de copia de seguridad en un orden específico. Por ejemplo:

  1. Copia de seguridad completa
  2. Copia de seguridad diferencial
  3. Una o varias copias de seguridad del registro de transacciones

Point-in-time restore

Actualmente, las copias de seguridad completas se realizan una vez a la semana; las copias de seguridad diferenciales se realizan cada 12 horas; y las copias de seguridad del registro de transacciones, cada 5 minutos.

Período de retención

El período de retención predeterminado para una nueva instancia administrada de SQL habilitada por Azure Arc es de siete días y se puede ajustar con valores de 0 o 1 a 35 días. El período de retención se puede establecer durante la implementación de SQL Managed Instance al especificar la propiedad --retention-days. Los archivos de copia de seguridad anteriores al período de retención configurado se eliminan automáticamente.

Creación de una base de datos desde un momento dado mediante la CLI de Azure

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s

También puede usar la opción --dry-run para validar la operación de restauración sin restaurar realmente la base de datos.

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run

Creación de una base de datos desde un momento dado mediante kubectl

  1. Para realizar una restauración a un momento dado con herramientas nativas de Kubernetes, puede usar kubectl. Cree un archivo yaml de especificación de tareas. Por ejemplo:

    apiVersion: tasks.sql.arcdata.microsoft.com/v1
    kind: SqlManagedInstanceRestoreTask                 
    metadata:                                       
      name: myrestoretask20220304
      namespace: test                              
    spec:                                           
      source:                                       
        name: miarc1                                
        database: testdb                            
      restorePoint: "2021-10-12T18:35:33Z"          
      destination:                                  
        name: miarc1                           
        database: testdb-pitr
      dryRun: false  
    
  2. Edite las propiedades de la manera siguiente:

    1. name: Cadena única para cada recurso personalizado (CR). Requerido por Kubernetes.
    2. namespace: Espacio de nombres de Kubernetes donde está la instancia.
    3. source: ... name: Nombre de la instancia de origen.
    4. source: ... database: Nombre de la base de datos de origen desde la que se aplicaría la restauración.
    5. restorePoint: Momento dado para la operación de restauración en la fecha y hora UTC.
    6. destination: ... name: Nombre de SQL Managed Instance habilitado para Arc de destino. Actualmente, la restauración a un momento dado solo se admite para SQL Managed Instance para Arc. Debe ser la misma que SQL Managed Instance de origen.
    7. destination: ... database: Nombre de la nueva base de datos a la que se aplicaría la restauración.
  3. Cree una tarea para iniciar la restauración a un momento dado. En el ejemplo siguiente se inicia la tarea definida en myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Compruebe el estado de la tarea de restauración de la siguiente manera:

    kubectl get sqlmirestoretask -n <namespace>
    

El estado de la tarea de restauración se actualizará aproximadamente cada 10 segundos en función del progreso de PITR. El estado progresa de Waiting a Restoring y, luego a Completed o Failed.

Creación de una base de datos desde un momento dado mediante Azure Data Studio

También puede restaurar una base de datos a un momento dado desde Azure Data Studio como se muestra a continuación:

  1. Inicie Azure Data Studio.
  2. Asegúrese de tener las extensiones de Arc necesarias, como se describe en Herramientas.
  3. Conexión al controlador de datos de Azure Arc
  4. Expanda el nodo controlador de datos, haga clic con el botón derecho en la instancia y seleccione Administrar. Azure Data Studio inicia el panel de SQL Managed Instance.
  5. Haga clic en la pestaña Copias de seguridad del panel.
  6. Debería ver una lista de bases de datos en la instancia de SQL Managed Instance y sus ventanas de tiempo de restauración Más antiguo y Más reciente, y un icono para comenzar a restaurar.
  7. Haga clic en el icono de la base de datos desde la que desea restaurar. Azure Data Studio abre una hoja hacia el lado derecho.
  8. Escriba la entrada necesaria en la hoja y haga clic en Restaurar.

Supervisión de progreso

Cuando se inicia una restauración, se crea una tarea en el clúster de Kubernetes que ejecuta las operaciones de restauración reales de copias de seguridad completas, diferenciales y de registro. El progreso de esta actividad se puede supervisar desde el clúster de Kubernetes como se muestra a continuación:

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

Para obtener más detalles de la tarea, ejecute kubectl describe en la tarea. Por ejemplo:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Configuración del período de retención

El período de retención de una SQL Managed Instance habilitada por Azure Arc se puede volver a configurar desde su configuración original de la siguiente manera:

Advertencia

Si reduce el período de retención actual, perderá la capacidad de restaurar a puntos en el tiempo más antiguos que el nuevo período de retención. Se eliminan las copias de seguridad que ya no son necesarias para proporcionar PITR dentro del nuevo período de retención. Si aumenta el período de retención actual, no obtendrá de forma inmediata la capacidad de restaurar a puntos en el tiempo más antiguos dentro del nuevo período de retención. Obtiene esa capacidad a lo largo del tiempo, ya que el sistema empieza a conservar las copias de seguridad durante más tiempo.

Se puede cambiar --retention-period para una instancia de SQL Managed Instance para Azure Arc como se indica a continuación. El comando siguiente se aplica a los modos conectados direct y indirect.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

Por ejemplo:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

Deshabilitación de copias de seguridad automáticas

Puede deshabilitar las copias de seguridad automatizadas integradas para una instancia específica de SQL Managed Instance habilitada por Azure Arc estableciendo la propiedad --retention-days en 0, como se indica a continuación. El comando siguiente se aplica a los modos direct y indirect.

Advertencia

Si deshabilita las copias de seguridad automáticas para una SQL Managed Instance habilitada por Azure Arc, se eliminarán las copias de seguridad automáticas configuradas y se perderá la capacidad de realizar una restauración a un momento dado. Si es necesario, puede cambiar la propiedad retention-days para volver a iniciar copias de seguridad automáticas.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

Por ejemplo:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

Supervisión de copias de seguridad

Las copias de seguridad se almacenan en la carpeta /var/opt/mssql/backups/archived/<dbname>/<datetime>, donde <dbname> es el nombre de la base de datos y <datetime> sería una marca de tiempo en formato UTC, para el principio de cada copia de seguridad completa. Cada vez que se inicia una copia de seguridad completa, se crea una nueva carpeta con la copia de seguridad completa y todas las copias de seguridad diferenciales y de registros de transacciones posteriores dentro de esa carpeta. La copia de seguridad completa más reciente y sus copias de seguridad diferenciales y de registros de transacciones posteriores se almacenan en la carpeta /var/opt/mssql/backups/current/<dbname><datetime>.

Limitaciones

La restauración a un momento dado en SQL Managed Instance habilitada por Azure Arc tiene las siguientes limitaciones:

  • La restauración a un momento dado es una característica de nivel de base de datos, no una característica de nivel de instancia. No se puede restaurar toda la instancia con la restauración a un momento dado.
  • Solo puede restaurar a la misma instancia administrada de SQL habilitada por Azure Arc desde donde se realizó la copia de seguridad.

Obtenga más información sobre las características y funcionalidades de SQL Managed Instance habilitadas por Azure Arc

Comienzo con la creación de un controlador de datos

Creación de una instancia de SQL Managed Instance habilitada por Azure Arc