Azure SQL más accesible: Microsoft acelera la recuperación para ti

Las bases de datos son herramientas maravillosas, hasta que algo sale mal. En ese momento, te encuentras esperando una recuperación para deshacer transacciones largas y reproducir archivos de registro. Cuanto más complejas sean las transacciones, más tiempo llevará la recuperación, lo que te obligará a depender de soluciones alternativas para mantener tu negocio en funcionamiento. Una recuperación lenta es costosa, requiere tiempo y dinero.

Entonces, ¿cómo podemos recuperar nuestras bases de datos de manera rápida, con la menor interrupción posible en los procesos comerciales? A veces, esto requiere volver a investigaciones básicas, o en este caso a un artículo de investigación de Microsoft de 2019 titulado "Recuperación en Tiempo Constante en Azure SQL Database". El artículo es fascinante, prometiendo una forma de recuperar bases de datos en tiempo constante con archivos de registro más pequeños. Si bien está claramente dirigido a los servicios en la nube, donde mantener el almacenamiento de recuperación al mínimo tiene un valor económico distintivo, es una técnica que puede funcionar en cualquier lugar. Los beneficios ciertamente parecen claros, con la mayoría de las recuperaciones que tardan menos de tres minutos en lugar de horas.

Índice de Contenido
  1. La antigua forma: ARIES
  2. Y ahora lo nuevo: ADR
  3. Implementando la Recuperación en Tiempo Constante

La antigua forma: ARIES

La mayoría de las bases de datos, incluidas SQL Server y Azure SQL, dependen del protocolo ARIES. El Algoritmo para Recuperación y Aislamiento que Explota Semántica es una herramienta fundamental para las bases de datos modernas, utilizando el registro de escritura anticipada para proporcionar una forma de recuperar el estado de la base de datos. ARIES utiliza tres tipos de registros: solo deshacer, solo rehacer y deshacer-rehacer. Estos registran cada actualización, y el tipo de registro determina qué tipo de recuperación se puede intentar, con el objetivo de recuperarse a un estado antes o después de cada operación de actualización en la base de datos, manejando los cambios en tus registros y tablas.

Tanto SQL Server como Azure SQL utilizan el registro de transacciones para reproducir las operaciones desde el último estado conocido y analizar el registro para determinar el estado de todas las transacciones registradas, volviendo a hacer las transacciones confirmadas desde la más antigua hasta la más reciente, mientras deshacen las transacciones no confirmadas en orden inverso, desde la más reciente hasta la más antigua. Una vez que se completa este proceso, tu base de datos vuelve a estar en línea y lista para usar. Hay mucho que SQL Server debe manejar en una recuperación ARIES, ya que una recuperación completa puede requerir dos o tres pasadas por los registros, especialmente cuando se trata de transacciones largas que requieren múltiples actualizaciones.

Existen formas de mejorar el rendimiento aquí, por lo general aprovechando las técnicas de procesamiento paralelo, pero requieren inversiones significativas en hardware y servidores de alta potencia. Eso puede ser aceptable para bases de datos locales, donde estás preparado para tener el hardware necesario, pero no es realmente práctico en la nube, donde no solo se ejecutan bases de datos en hardware optimizado, sino que también pueden ser órdenes de magnitud más grandes que en tu propio hardware. Además, hay otros problemas relacionados con el uso de la multi-tenencia en las plataformas en la nube, donde los recursos informáticos se comparten en hardware que está funcionando a una carga más alta. Las restricciones resultantes en las operaciones en la nube significa que el failover y la recuperación son mucho más probables que en las instalaciones locales, por lo que contar con un proceso de recuperación más rápido es esencial.

Y ahora lo nuevo: ADR

La nueva técnica de recuperación de bases de datos de Microsoft tiene como objetivo evitar los problemas que surgen con la recuperación en la nube, manteniendo los tiempos de inactividad al mínimo sin necesidad de recursos adicionales, sin importar cuán grande sea la carga de trabajo.

Cómo funciona el protocolo FTP y cómo resolver problemas relacionados con él

El nuevo algoritmo de recuperación en tiempo constante combina ARIES con el Control de Concurrencia de Múltiples Versiones de SQL Server. Diseñado para gestionar transacciones concurrentes, MVCC utiliza una base de datos temporal para almacenar diferentes versiones de filas a medida que se actualizan los datos, organizando los cambios en función de los ID de transacción y los sellos de tiempo. Esta base de datos se elimina cada vez que se reinicia la base de datos, ya que solo se necesita para mantener el aislamiento entre las transacciones concurrentes. Las filas antiguas se eliminan de la base de datos, lo que mantiene bajos los requisitos de almacenamiento.

Esta base de datos es la base para la recuperación en tiempo constante, que tanto Azure SQL como SQL Server ahora llaman Recuperación de Base de Datos Acelerada (ADR). En lugar de esperar a que los registros de transacciones se deshagan, ahora obtienes una reversión casi instantánea de las transacciones, sin efectos de transacciones de larga duración. Y como el sistema subyacente se basa en la base de datos MVCC, se mantiene pequeño, o como Microsoft lo describe, "agresivamente truncado". Esta versión de MVCC es parte de la base de datos de usuario, y se conoce como Store de Versión Persistente (la MVCC original sigue siendo una tienda separada y continúa admitiendo las funciones de concurrencia de Azure SQL).

Implementando la Recuperación en Tiempo Constante

Si bien el proceso de recuperación es muy similar al utilizado por ARIES, es mucho más rápido, ya que no necesita procesar todo el registro de transacciones. En cambio, los datos en el nuevo Store de Versión Persistente se utilizan para proporcionar una reproducción instantánea de las transacciones entre el último punto de control y la transacción no confirmada más antigua. Esto deja solo un breve período de transacciones por rehacer. Al mismo tiempo, se utiliza un nuevo flujo de registros en memoria para reproducir operaciones que no están en versión, como la gestión de caché y los bloqueos, al tiempo que mantiene el registro de transacciones pequeño. Este flujo de registros secundario (el sLog) se copia en el registro de transacciones en los puntos de control, lo que lo mantiene pequeño pero asegura que sus datos estén disponibles si necesitas replicar una base de datos completa como parte de un proceso de recuperación comercial.

Si estás utilizando Azure SQL Database y Azure SQL Managed Instance, ya estás utilizando ADR. También está disponible para otras bases de datos basadas en SQL Server, incluyendo SQL Server 2019 y Azure Synapse SQL. Si estás utilizando SQL Server 2019, es posible que ADR no sea necesario para todas tus operaciones, pero definitivamente vale la pena considerarlo si tienes transacciones largas, registros de transacciones grandes o si la recuperación de la base de datos ha causado interrupciones significativas en el pasado. Hay casos, como cuando se utiliza el reflejo de bases de datos, en los que no es compatible.

Para activar ADR, utiliza la línea de comandos de SQL Server para activar o desactivar ADR, y para definir el grupo de archivos utilizado para alojar los datos del Store de Versión Persistente. El proceso puede llevar algo de tiempo y afectar las operaciones normales, ya que bloquea tu base de datos mientras se ejecuta, impidiendo que se inicien nuevas sesiones hasta que la configuración esté completa. Una vez que se libera el bloqueo, tu base de datos estará protegida por ADR.

Es un cambio simple que tiene un gran efecto, evitando tiempos de inactividad significativos en aplicaciones de datos complejas. Pero, como todos los cambios simples, esa única línea de código depende de mucho trabajo por parte del equipo de SQL Server de Microsoft y sus contrapartes de investigación de Microsoft. Esta es una ocasión en la que podemos ver fácilmente cómo la investigación se convierte en un producto y cómo puede tener un gran impacto no solo en Azure, sino también en nuestros propios centros de datos.

Microsoft lanza servicio gratuito de almacenamiento en la nube para usuarios de Windows

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Nube, allí encontraras muchos artículos similares a Azure SQL más accesible: Microsoft acelera la recuperación para ti , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.