Restauración de un solo inquilino con una aplicación SaaS de base de datos por inquilino

Se aplica a:Azure SQL Database

El modelo de base de datos por inquilino facilita la restauración de un inquilino único a un momento dado anterior sin afectar a otros inquilinos.

En este tutorial, conocerá dos patrones de recuperación de datos:

  • Restauración de una base de datos en una base de datos en paralelo (lado a lado).
  • Restauración de una base de datos en contexto, reemplazando la base de datos existente.
Modelo Descripción
Restauración en una base de datos en paralelo Este patrón se puede usar para tareas como la revisión, la auditoría, el cumplimiento, etc. para permitir que un inquilino inspeccione los datos desde un punto anterior. La base de datos actual del inquilino sigue en línea y sin modificaciones.
Restauración en contexto Este patrón se usa habitualmente para recuperar un inquilino a un punto anterior, después de que un inquilino elimina o daña datos de manera accidental. La base de datos original se deja sin conexión y se reemplaza por la base de datos restaurada.

Para completar este tutorial, asegúrese de cumplir estos requisitos previos:

Introducción a los patrones de restauración de inquilino de SaaS

Hay dos patrones simples para restaurar los datos de un inquilino individual. Debido a que las bases de datos de inquilino están aisladas entre sí, restaurar un inquilino no afecta los datos de los demás inquilinos. La característica de restauración a un momento dado (PITR) de Azure SQL Database se usa en ambos patrones. Esta característica siempre crea una base de datos nueva.

  • Restauración en paralelo: en el primer patrón, se crea una base de datos en paralelo junto con la base de datos actual del inquilino. A continuación, el inquilino recibe acceso de solo lectura a la base de datos restaurada. Los datos restaurados se pueden revisar y potencialmente usar para sobrescribir los valores de datos actuales. Del diseñador de la aplicación depende determinar cómo el inquilino accede a la base de datos restaurada y las opciones de recuperación que se proporcionan. En algunos escenarios, es posible que todo lo que se necesite sea simplemente permitir que el inquilino revise los datos en un punto anterior.

  • Restauración en contexto: el segundo patrón resulta útil si se perdieron o dañaron datos y el inquilino quiere revertir a un punto anterior. El inquilino queda sin conexión mientras se restaura la base de datos. La base de datos original se elimina y se cambia el nombre de la base de datos restaurada. La cadena de copia de seguridad de la base de datos original sigue siendo accesible después de la eliminación, para que pueda restaurar la base de datos a un momento dado anterior si es necesario.

Si la base de datos usa la replicación geográfica activa y la restauración en paralelo, se recomienda copiar los datos requeridos desde la copia restaurada a la base de datos original. Si reemplaza la base de datos original por la restaurada, debe volver a configurar y sincronizar la replicación geográfica.

Obtención de los scripts de la aplicación Wingtip Tickets SaaS Database Per Tenant

Los scripts y el código fuente de la aplicación SaaS de base de datos multiinquilino Wingtip Tickets están disponibles en el repositorio de GitHub WingtipTicketsSaaS-DbPerTenant. Si desea conocer los pasos para descargar y desbloquear los scripts SaaS de Wingtip Tickets, consulte las instrucciones generales.

Antes de comenzar

Cuando se crea una base de datos, puede tardar entre 10 y 15 minutos hasta que la primera copia de seguridad completa esté disponible para restaurar desde ahí. Si acaba de instalar la aplicación, es posible que deba esperar unos minutos antes de probar este escenario.

Simulación de la eliminación accidental de los datos de un inquilino

Para mostrar estos escenarios de recuperación, primero elimine de manera "accidental" un evento en una de las bases de datos de inquilino.

Apertura de la aplicación Eventos para revisar los eventos actuales

  1. Abra Events Hub (http://events.wtp.<user>.trafficmanager.net) y seleccione Contoso Concert Hall.

    A screenshot of the events hub page of the sample application. The entry for Contoso Concert Hall is boxed in red.

  2. Desplace la lista de eventos y anote el último evento de la lista.

    A screenshot from the sample application. The last event appears.

Eliminación "accidental" del último evento

  1. En PowerShell ISE, abra ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1 y establezca este valor:

    • $DemoScenario = 1, eliminación del último evento (sin venta de entradas).
  2. Presione F5 para ejecutar el script y eliminar el último evento. Aparece el mensaje de confirmación siguiente:

    Deleting last unsold event from Contoso Concert Hall ...
    Deleted event 'Seriously Strauss' from Contoso Concert Hall venue.
    
  3. Se abre la página de eventos de Contoso. Desplácese hacia abajo y compruebe que el evento desapareció. Si todavía está en la lista, seleccione Actualizar y compruebe que ya no aparece. A screenshot from the sample application. The last event is removed.

Restauración de una base de datos de inquilino en paralelo con la base de datos de producción

En este ejercicio se restaura la base de datos de Contoso Concert Hall a un momento específico antes de que se eliminara el evento. Este escenario supone que desea revisar los datos eliminados en una base de datos en paralelo.

El script Restore-TenantInParallel.ps1 crea una base de datos de inquilino en paralelo denominada ContosoConcertHall_old, con una entrada de catálogo en paralelo. Este patrón de restauración es más adecuado para recuperarse de una pérdida de datos sin importancia. También puede usar este patrón si necesita revisar los datos con fines de cumplimiento y auditoría. Es el enfoque que se recomienda cuando se usa la replicación geográfica activa.

  1. Complete la sección en que se simula que un usuario elimina datos de manera accidental.
  2. En PowerShell ISE, abra ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1.
  3. Establezca $DemoScenario = 2, Restore tenant in parallel (Restaurar el inquilino en paralelo).
  4. Presione F5 para ejecutar el script.

El script restaura la base de datos de inquilino a un momento dado antes de que eliminara el evento. La base de datos se restaura a una base de datos nueva denominada ContosoConcertHall_old. Los metadatos de catálogo que existen en esta base de datos restaurada se eliminar y, luego, la base de datos se agrega al catálogo mediante una clave construida a partir del nombre ContosoConcertHall_old.

El script de demostración abre la página de eventos de esta base de datos de inquilino en el explorador. En la dirección URL http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall_old, tenga en cuenta que esta página muestra los datos de la base de datos restaurada, donde se agrega _old al nombre.

Desplace los eventos que aparecen en el explorador y confirmar que se restauró el evento que se eliminó en la sección anterior.

Exponer al inquilino restaurado como un inquilino adicional, con su propia aplicación de eventos, puede que no sea la forma en que proporciona acceso de inquilino a los datos restaurados. Sí sirve para ilustrar el patrón de restauración. Habitualmente, proporciona acceso de solo lectura a los datos antiguos y retiene la base de datos restaurada durante un período definido. En el ejemplo, puede eliminar la entrada de inquilino restaurado una vez que finalice mediante la ejecución del escenario Remove restored tenant (Quitar el inquilino restaurado).

  1. Establezca $DemoScenario = 4, Remove restored tenant (Quitar el inquilino restaurado).
  2. Presione F5 para ejecutar el script.
  3. La entrada ContosoConcertHall_old se eliminó del catálogo. Cierre la página de eventos de este inquilino en el explorador.

Restauración de un inquilino en contexto, reemplazando la base de datos de inquilino existente

En este ejercicio se restaura el inquilino de Contoso Concert Hall a un momento antes de que se eliminara el evento. El script Restore-TenantInPlace restaura una base de datos de inquilino a una base de datos nueva y elimina la original. Este patrón de restauración es más adecuado para la recuperación después de daños graves en los datos y el inquilino podría tener que adecuarse a la pérdida de datos importantes.

  1. En PowerShell ISE, abra el archivo Demo-RestoreTenant.ps1.
  2. Establezca $DemoScenario = 5, Restauración de cuenta empresarial en contexto.
  3. Presione F5 para ejecutar el script.

El script restaura la base de datos de inquilino a un punto antes de que se eliminara el evento. En primer lugar, deja sin conexión al inquilino de Contoso Concert Hall para evitar futuras actualizaciones. Luego, se crea una base de datos en paralelo mediante la restauración a partir del punto de restauración. Luego, la base de datos restaurada recibe una marca de tiempo como nombre para garantizar que el nombre de la base de datos no entre en conflicto con el nombre de la base de datos de inquilino existente. A continuación, se elimina la base de datos de inquilino anterior y el nombre de la base de datos restaurada se cambia al nombre de la base de datos original. Por último, Contoso Concert Hall se vuelve a conectar para permitir que la aplicación tenga acceso a la base de datos restaurada.

La base de datos se restauró correctamente a un momento dado antes de que se eliminara el evento. Cuando se abra la página de eventos, confirme que se restauró el último evento.

Después de que restaure la base de datos, tardará otros 10 a 15 minutos antes de que la primera copia de seguridad completa esté disponible para volver a realizar la restauración.

Nota

No es posible restaurar desde bases de datos multicuenta empresarial a una sola cuenta empresarial.

Pasos siguientes

En este tutorial ha aprendido a:

  • Restauración de una base de datos en una base de datos en paralelo (lado a lado).
  • Restauración de una base de datos en contexto.

Recursos adicionales