Introducción a los grupos de conmutación por error automática y procedimientos recomendados (Azure SQL Database)

SE APLICA A: Azure SQL Database

La característica de los grupos de conmutación por error automática permite administrar la replicación y la conmutación por error en otra región de algunas bases de datos de un servidor lógico o de todas ellas. Este artículo se centra en el uso de la característica de grupo de conmutación por error automática con Azure SQL Database y algunos procedimientos recomendados.

Para empezar, consulte el artículo sobre la configuración de grupos de conmutación por error automática. Si desea una experiencia completa, consulte el tutorial sobre los grupos de conmutación por error automática.

Nota:

  • En este artículo se tratan los grupos de conmutación por error automática para Azure SQL Database. Para Azure SQL Managed Instance, consulte Grupos de conmutación por error automática en Azure SQL Managed Instance.
  • Los grupos de conmutación por error automática admiten la replicación geográfica de todas las bases de datos en el grupo solo a un servidor secundario en otra región. Si necesita crear varias réplicas geográficas secundarias de Azure SQL Database (en la misma o distintas regiones) para la misma réplica principal, use la replicación geográfica activa.

Información general

La característica de los grupos de conmutación por error automática permite administrar la replicación y la conmutación por error en otra región de Azure de un grupo de bases de datos en un servidor o de todas las bases de datos de usuario de una instancia administrada. Se trata de una abstracción declarativa sobre la característica de replicación geográfica activa, diseñada para simplificar la implementación y administración de bases de datos con replicación geográfica a gran escala.

Conmutación por error automática

Puede iniciar la conmutación por error geográfica manualmente o puede delegarla en el servicio de Azure según una directiva definida por el usuario. La última opción le permite recuperar automáticamente varias bases de datos relacionadas en una región secundaria después de errores catastróficos u otros eventos no planeados que generen una pérdida total o parcial de la disponibilidad de SQL Database o Instancia administrada de SQL en la región primaria. Normalmente, se trata de interrupciones que la infraestructura de alta disponibilidad integrada no puede mitigar automáticamente. Entre los ejemplos de desencadenadores de conmutación por error geográfica se incluyen los desastres naturales o los incidentes a causa de un inquilino o un anillo de control fuera de servicio debido a una fuga de memoria del kernel del SO en los nodos de ejecución. Para más información, consulte Alta disponibilidad de Azure SQL.

Descarga de cargas de trabajo de solo lectura

Para reducir el tráfico a sus bases de datos principales, también puede utilizar las bases de datos secundarias de un grupo de conmutación por error para descargar cargas de trabajo de solo lectura. Utilice el cliente de escucha de solo lectura para dirigir el tráfico de solo lectura a una base de datos secundaria legible.

Redireccionamiento de punto de conexión

Los grupos de conmutación por error automática proporcionan puntos de conexión de agentes de escucha de lectura-escritura y de solo lectura que no se modifican durante las conmutaciones por error con replicación geográfica. Esto significa que no es necesario cambiar la cadena de conexión de la aplicación después de una conmutación por error geográfica, porque las conexiones se enrutan automáticamente a la región primaria actual. Por lo tanto, ya sea que use la activación de conmutación por error automática o manual, la conmutación por error geográfica cambia todas las bases de datos secundarias del grupo al rol principal. Después de que la conmutación por error geográfica finaliza, el registro de DNS se actualiza automáticamente para redirigir los puntos de conexión a la nueva región. Para obtener información sobre RPO y RTO de la conmutación por error geográfica, consulte Introducción a la continuidad empresarial.

Recuperación de una aplicación

Para lograr una continuidad empresarial completa, agregar redundancia de base de datos regional es solo una parte de la solución. Para recuperar una aplicación (un servicio) de un extremo a otro tras un error catastrófico, es necesario recuperar todos los componentes que constituyen el servicio y cualquier servicio dependiente. Algunos ejemplos de estos componentes son el software cliente (por ejemplo, un explorador con JavaScript personalizado), los front-end web, el almacenamiento y DNS. Es fundamental que todos los componentes sean resistentes a los mismos errores y que estén disponibles en el plazo del objetivo de tiempo de recuperación (RTO) de la aplicación. Por lo tanto, debe identificar todos los servicios dependientes y comprender las garantías y capacidades que ofrecen. A continuación, debe seguir los pasos adecuados para asegurarse de que el servicio funcione durante la conmutación por error de los servicios de los que depende.

Terminología y funcionalidades

  • Grupo de conmutación por error (FOG)

    Un grupo de conmutación por error es un grupo con nombre de bases de datos administradas por un único servidor que puede conmutar por error como una unidad a otra región en caso de que algunas o todas las bases de datos principales estén deshabilitadas debido a una interrupción en la región primaria.

    Importante

    El nombre del grupo de conmutación por error debe ser único globalmente en el dominio .database.windows.net.

  • Servidores

    Algunas o todas las bases de datos de usuario de un servidor lógico pueden colocarse en un grupo de conmutación por error. Además, un servidor admite varios grupos de conmutación por error en un único servidor.

  • Principal

    El servidor que hospeda las bases de datos principales en el grupo de conmutación por error.

  • Secundario

    El servidor que hospeda las bases de datos secundarias en el grupo de conmutación por error. La base de datos secundaria no puede estar en la misma región de Azure que la principal.

  • Incorporación de bases de datos únicas a un grupo de conmutación por error

    Puede poner varias bases de datos únicas en el mismo servidor e incluirlas en el mismo grupo de conmutación por error. Si agrega una base de datos única al grupo de conmutación por error, automáticamente se creará una base de datos secundaria con la misma edición y el mismo tamaño de proceso del servidor secundario. Ese servidor es el que especificó cuando creó el grupo de conmutación por error. Si agrega una base de datos que ya tenga una base de datos secundaria en el servidor secundario, el grupo heredará el vínculo de replicación geográfica. Cuando se agrega una base de datos que ya tiene una base de datos secundaria en un servidor que no forma parte del grupo de conmutación por error, se crea otra base de datos secundaria en el servidor secundario.

    Importante

    Asegúrese de que el servidor secundario no tiene una base de datos con el mismo nombre, a menos que sea una base de datos secundaria existente.

  • Incorporación de bases de datos de un grupo elástico a un grupo de conmutación por error

    Puede poner varias bases de datos en el mismo grupo elástico e incluirlas en el mismo grupo de conmutación por error. Si la base de datos principal está en un grupo elástico, la base de datos secundaria se creará automáticamente en un grupo elástico con el mismo nombre (grupo secundario). Debe asegurarse de que el servidor secundario contiene un grupo elástico con el mismo nombre exacto y suficiente capacidad libre para hospedar las bases de datos secundarias que va a crear el grupo de conmutación por error. Si agrega una base de datos en un grupo que ya tiene una base de datos secundaria en el grupo secundario, el grupo heredará el vínculo de replicación geográfica. Cuando se agrega una base de datos que ya tiene una base de datos secundaria en un servidor que no forma parte del grupo de conmutación por error, se crea otra base de datos secundaria en el grupo secundario.

  • Agente de escucha de lectura-escritura de grupo de conmutación por error

    Un registro CNAME de DNS que apunta a la base de datos principal actual. Se crea automáticamente cuando se crea el grupo de conmutación por error y permite que la carga de trabajo de lectura y escritura se vuelva a conectar de forma transparente a la principal cuando esta cambia después de la conmutación por error. Cuando se crea el grupo de conmutación por error en un servidor, el registro CNAME de DNS para la dirección URL del cliente de escucha tiene el formato <fog-name>.database.windows.net.

  • Agente de escucha de solo lectura de grupo de conmutación por error

    Un registro CNAME de DNS que apunta a la base de datos secundaria actual. Se crea automáticamente cuando se crea el grupo de conmutación por error y permite que la carga de trabajo de SQL de solo lectura se vuelva a conectar de forma transparente a la secundaria cuando la secundaria cambia después de la conmutación por error. Cuando se crea el grupo de conmutación por error en un servidor, el registro CNAME de DNS para la dirección URL del cliente de escucha tiene el formato <fog-name>.secondary.database.windows.net.

  • Varios grupos de conmutación por error

    Puede configurar varios grupos de conmutación por error para el mismo par de servidores con el fin de controlar el ámbito de las conmutaciones por error geográficas. Cada grupo realiza la conmutación por error por separado. Si la aplicación de inquilino por base de datos se implementa en varias regiones y usa grupos elásticos, puede usar esta funcionalidad para combinar las bases de datos principales y secundarias en cada grupo. De este modo, puede reducir el impacto de una interrupción a solo algunas bases de datos de inquilino.

  • Directiva de conmutación por error automática

    De manera predeterminada, un grupo de conmutación por error se configura con una directiva de conmutación por error automática. El sistema desencadena una conmutación por error geográfica una vez detectado el error y si el período de gracia ha expirado. El sistema debe comprobar que la interrupción no se pueda mitigar mediante la infraestructura de alta disponibilidad integrada, por ejemplo, debido a la escala del impacto. Si desea controlar el flujo de trabajo de la conmutación por error geográfica desde la aplicación o manualmente, puede desactivar la directiva de conmutación automática por error.

    Nota:

    Dado que la comprobación de la escala de la interrupción y la rapidez con que se puede mitigar conllevan acciones humanas, el período de gracia no se puede establecer por debajo de una hora. Esta limitación se aplica a todas las bases de datos del grupo de conmutación por error, independientemente de su estado de sincronización de datos.

  • Directiva de conmutación por error de solo lectura

    De forma predeterminada, se deshabilita la conmutación por error del agente de escucha de solo lectura. Se asegura de que el rendimiento de la réplica principal no se ve afectado cuando la base de datos secundaria está sin conexión. En cambio, también significa que las sesiones de solo lectura no podrán conectarse hasta que se recupere la base de datos secundaria. Si no puede tolerar tiempo de inactividad en las sesiones de solo lectura pero sí, usar la base de datos principal para el tráfico de solo lectura y el de lectura y escritura a costa de la posible degradación del rendimiento de esta, puede habilitar la conmutación por error para el agente de escucha de solo lectura mediante la configuración de la propiedad AllowReadOnlyFailoverToPrimary. En ese caso, el tráfico de solo lectura se redirigirá automáticamente a la base de datos principal si la secundaria no está disponible.

    Nota:

    La propiedad AllowReadOnlyFailoverToPrimary solo surte efecto si la directiva de conmutación automática por error está habilitada y si se ha desencadenado una conmutación por error geográfica de manera automática. En ese caso, si la propiedad se establece en true, la nueva base de datos principal atenderá a las sesiones de lectura y escritura, y de solo lectura.

  • Conmutación por error planeada

    La conmutación por error planeada realiza una sincronización de datos completa entre las bases de datos principales y secundarias antes de que el rol principal pase a la secundaria. De esta manera se garantiza que no hay pérdida de datos. La conmutación por error planeada se usa en los siguientes escenarios:

    • Realizar simulacros de recuperación ante desastres (DR) en producción cuando no es aceptable la pérdida de datos
    • Reubicar las bases de datos a una región diferente
    • Devolver las bases de datos a la región primaria después de que se ha corregido la interrupción (conmutación por recuperación)
  • Conmutación por error no planeada

    La conmutación por error no planeada o forzada cambia inmediatamente el rol secundario al rol primario sin tener que esperar a que los cambios recientes se propaguen desde el rol primario. Esta operación puede ocasionar pérdida de datos. La conmutación por error no planeada se usa como método de recuperación durante las interrupciones cuando no es posible acceder a la base de datos principal. Cuando se mitiga la interrupción, la base de datos principal anterior se vuelve a conectar automáticamente y se convierte en una nueva base de datos secundaria. Asimismo, se puede ejecutar una conmutación por error planeada para realizar una conmutación por recuperación y devolver las réplicas a sus roles principal y secundario originales.

  • Conmutación por error manual

    Puede iniciar manualmente una conmutación por error geográfica en cualquier momento, independientemente de la configuración de la conmutación automática por error. Durante una interrupción que afecta a la principal, si la directiva de conmutación automática por error no está configurada, se requiere una conmutación por error manual para promover la base de datos secundaria al rol principal. Puede iniciar una conmutación por error forzada (no planeada) o que sea sencilla (planeada). Una conmutación por error sencilla solo es posible cuando la base de datos principal anterior es accesible y se puede usar para reubicar la región principal en la secundaria sin perder los datos. Cuando se completa una conmutación por error, los registros de DNS se actualizan automáticamente para garantizar la conectividad a la nueva base de datos principal.

  • Período de gracia con pérdida de datos

    Como los datos se replican en la base de datos secundaria mediante replicación asincrónica, una conmutación por error geográfica automática puede provocar una pérdida de datos. Puede personalizar la directiva de conmutación por error automática para que refleje la tolerancia de la aplicación a la pérdida de datos. Si configura GracePeriodWithDataLossHours, puede controlar durante cuánto tiempo espera el sistema antes de iniciar la conmutación por error forzada, aunque es probable que genere una pérdida de datos.

Arquitectura del grupo de conmutación por error

Un grupo de conmutación por error en Azure SQL Database puede incluir una o varias bases de datos, utilizadas normalmente por la misma aplicación. Cuando se usan grupos de conmutación por error automática con una directiva de conmutación automática por error, una interrupción que afecte a una o varias de las bases de datos del grupo tendrá como resultado una conmutación por error geográfica de manera automática.

El grupo de conmutación por error automática debe estar configurado en el servidor principal y se conectará al servidor secundario de una región de Azure diferente. Los grupos pueden incluir todas las bases de datos de estos servidores o algunas de ellas. En el siguiente diagrama se ilustra una configuración típica de una aplicación de nube con redundancia geográfica que usa varias bases de datos y un grupo de conmutación por error automática.

Diagram shows a typical configuration of a geo-redundant cloud application using multiple databases and auto-failover group.

Al diseñar un servicio con la continuidad empresarial en mente, siga las instrucciones generales y los procedimientos recomendados que se describen en este artículo. Al configurar un grupo de conmutación por error, asegúrese de que la autenticación y el acceso a la red de la base de datos secundaria estén configuradas para funcionar correctamente después de la conmutación por error geográfica, cuando la base de datos secundaria geográfica se convierte en la nueva principal. Para obtener más información, consulte Administración de la seguridad de Azure SQL Database después de la recuperación ante desastres. Para más información sobre el diseño de soluciones para la recuperación ante desastres, consulte Diseño de soluciones de nube para la continuidad empresarial mediante la replicación geográfica activa.

Para información sobre el uso de la restauración a un momento dado con grupos de conmutación por error, consulte Recuperación a un momento dado (PITR).

Propagación inicial

Al agregar bases de datos o grupos elásticos a un grupo de conmutación por error, hay una fase de propagación inicial antes de que se inicie la replicación de datos. Esta fase de propagación inicial es la operación más larga y costosa. Una vez completada, se sincronizan los datos y, luego, solo se replican los cambios de datos posteriores. El tiempo que tarda la propagación inicial en completarse depende del tamaño de sus datos, la cantidad de bases de datos replicadas, la carga en las bases de datos primarias y la velocidad del enlace entre la primaria y la secundaria. En circunstancias normales, la velocidad posible de propagación es de hasta 500 GB por hora para Azure SQL Database. La propagación se realiza en paralelo para todas las bases de datos.

Utilizar varios grupos de conmutación por error para conmutar por error varias bases de datos

Se pueden crear uno o más grupos de conmutación por error entre dos servidores en regiones distintas (servidor principal y servidor secundario). Cada grupo puede incluir una o varias bases de datos que se recuperan como unidad en caso de que una o todas las bases de datos principales dejen de estar disponibles debido a una interrupción en la región primaria. La creación de un grupo de conmutación por error crea bases de datos geográficas secundarias con el mismo objetivo de servicio que la principal. Si agrega una relación de replicación geográfica existente a un grupo de conmutación por error, asegúrese de que la base de datos geográfica secundaria esté configurada con el mismo nivel de servicio y tamaño de proceso que la principal.

Uso del cliente de escucha de lectura y escritura (principal)

Para cargas de trabajo de lectura y escritura, use <fog-name>.database.windows.net como nombre del servidor en la cadena de conexión. Las conexiones se dirigirán automáticamente a la principal. Este nombre no cambia después de la conmutación por error. Tenga en cuenta que la conmutación por error implica actualizar el registro DNS para que las conexiones de cliente se redirijan a la nueva base de datos principal cuando la caché DNS del cliente se haya actualizado. El período de vida (TTL) del registro DNS del agente de escucha principal y secundario es de 30 segundos.

Uso del cliente de escucha de solo lectura (secundaria)

Si tiene cargas de trabajo de solo lectura aisladas lógicamente que son tolerantes a la latencia de datos, puede ejecutarlas en la base de datos secundaria geográfica. Para sesiones de solo lectura, use <fog-name>.secondary.database.windows.net como nombre del servidor en la cadena de conexión. Las conexiones se dirigirán automáticamente a la secundaria geográfica. También se recomienda indicar la intención de lectura en la cadena de conexión mediante ApplicationIntent=ReadOnly.

En los niveles de servicio Prémium, Crítico para la empresa e Hiperescala, SQL Database admite el uso de réplicas de solo lectura para descargar las cargas de trabajo de consulta de solo lectura, mediante el parámetro de la cadena de conexión. Cuando se ha configurado una base de datos secundaria geográfica, puede usar esta funcionalidad para conectarse a una réplica de solo lectura de la ubicación principal o de la ubicación con replicación geográfica:

  • Para conectarse a una réplica de solo lectura en la ubicación secundaria, use ApplicationIntent=ReadOnlyy <fog-name>.secondary.database.windows.net.

Posible degradación del rendimiento después de la conmutación por error

Una aplicación de Azure típica usa varios servicios de Azure y consta de varios componentes. La conmutación por error geográfica de manera automática del grupo de conmutación por error se desencadena en función del estado de los componentes de Azure SQL. Es posible que otros servicios de Azure de la región primaria no se vean afectados por la interrupción y que sus componentes sigan estando disponibles en esa región. Una vez que las bases de datos principales cambien a la región secundaria de DR, la latencia entre los componentes dependientes puede aumentar. Para evitar el impacto de una mayor latencia en el rendimiento de la aplicación, asegúrese de la redundancia de todos los componentes de la aplicación en la región de DR, siga estas directrices de seguridad de red y organice la conmutación por error geográfica de los componentes de aplicación pertinentes junto con la base de datos.

Posible pérdida de datos después de la conmutación por error

Si se produce una interrupción en la región primaria, es posible que las transacciones recientes no se puedan replicar en la secundaria geográfica. Si se configura la directiva de conmutación automática por error, el sistema espera el período especificado por GracePeriodWithDataLossHours antes de iniciar una conmutación por error geográfica de manera automática. El valor predeterminado es 1 hora. Esto favorece la disponibilidad de la base de datos en lugar de la pérdida de datos. Establecer GracePeriodWithDataLossHours en un número mayor, como 24 horas, o deshabilitar la conmutación por error geográfica de manera automática le permite reducir la probabilidad de perder datos a costa de la disponibilidad de la base de datos.

Importante

Los grupos elásticos con 800 o menos DTU, 8 o menos núcleos virtuales y más de 250 bases de datos pueden encontrar problemas, como conmutaciones por error planeadas más prolongadas y un menor rendimiento. Es más probable que estos problemas sucedan con cargas de trabajo intensivas de escritura, cuando las replicas geográficas están muy separadas por región geográfica, o cuando se utilizan varias réplicas geográficas secundarias para cada base de datos. Un síntoma de estos problemas es un aumento del retraso de replicación geográfica a lo largo del tiempo, lo que puede provocar una pérdida de datos más amplia en una interrupción. Este retardo puede supervisarse con sys.dm_geo_replication_link_status. Si se producen estos problemas, la mitigación incluye escalar verticalmente el grupo para tener más DTU o núcleos virtuales, o bien reducir el número de bases de datos con replicación geográfica del grupo.

Grupos de conmutación por error y la seguridad de red

En el caso de algunas aplicaciones, las reglas de seguridad requieren que el acceso de red a la capa de datos esté restringido a un componente o componentes específicos, como una VM, un servicio web, etc. Este requisito presenta algunos desafíos para el diseño de la continuidad empresarial y el uso de los grupos de conmutación por error. Considere las siguientes opciones al implementar dicho acceso restringido.

Uso de los grupos de conmutación por error y los puntos de conexión de servicio de red virtual

Si usa reglas y puntos de conexión de servicio Virtual Network para restringir el acceso a la base de datos en SQL Database, tenga en cuenta que cada punto de conexión de servicio de red virtual solo se aplica a una región de Azure. El punto de conexión no permite que otras regiones acepten la comunicación de la subred. Por lo tanto, solo las aplicaciones de cliente implementadas en la misma región pueden conectarse a la base de datos principal. Puesto que una conmutación por error geográfica provoca que las sesiones de cliente de SQL Database se vuelvan a enrutar al servidor en una región diferente (secundaria), se producirá un error en las sesiones si se originaron desde un cliente de fuera de esa región. Por ese motivo, la directiva de conmutación por error automática no se puede habilitar si se incluyen los servidores o las instancias implicados en las reglas de Virtual Network. Para admitir la conmutación por error manual, siga estos pasos:

  1. Aprovisione las copias redundantes de los componentes front-end de la aplicación (servicio web, máquinas virtuales, etc.) en la región secundaria.
  2. Configure las reglas de red virtual individualmente para el servidor principal y secundario.
  3. Habilite la conmutación por error front-end con una configuración de Traffic Manager.
  4. Inicie la conmutación por error geográfica manualmente cuando se detecte la interrupción. Esta opción está optimizada para las aplicaciones que requieren una latencia coherente entre la capa de datos y de front-end, y admite la recuperación cuando se ven afectadas por la interrupción la capa de datos, la capa front-end o ambas.

Nota:

Si usa el agente de escucha de solo lectura para equilibrar una carga de trabajo de solo lectura, asegúrese de que esta carga de trabajo se ejecuta en una máquina virtual o en otro recurso en la región secundaria de modo que pueda conectarse a la base de datos secundaria.

Uso de grupos de conmutación por error y reglas de firewall

Si el plan de continuidad empresarial requiere un proceso de conmutación por error mediante el uso de grupos con conmutación automática por error, puede restringir el acceso a la base de datos de SQL Database con las reglas de firewall de IP públicas. Para admitir la conmutación por error automática, siga estos pasos:

  1. Cree una dirección IP pública.
  2. Cree un equilibrador de carga público y asígnele la dirección IP pública.
  3. Cree una red virtual y las máquinas virtuales para los componentes front-end.
  4. Cree un grupo de seguridad de red y configure las conexiones entrantes.
  5. Asegúrese de que las conexiones salientes estén abiertas para Azure SQL Database en una región mediante el uso de una Sql.<Region>Sql.<Region>.
  6. Cree una regla de firewall de SQL Database para permitir el tráfico entrante desde la dirección IP pública que creó en el paso 1.

Para más información acerca de cómo configurar el acceso de salida y qué dirección IP usar en las reglas de firewall, consulte Conexiones salientes del equilibrador de carga.

La configuración anterior garantizará que una conmutación automática por error geográfica no bloqueará las conexiones desde los componentes front-end y se da por supuesto que la aplicación puede tolerar la mayor latencia entre la capa de datos y el front-end.

Importante

Para garantizar la continuidad empresarial durante las interrupciones regionales, debe garantizar la redundancia geográfica tanto para los componentes front-end como para las bases de datos.

Modificación de la escala de una base de datos principal

Puede escalar verticalmente o reducir verticalmente la base de datos principal a un tamaño de proceso diferente (en el mismo nivel de servicio) sin desconectar las secundarias. Cuando se escala verticalmente, se recomienda escalar verticalmente primero la secundaria geográfica y, después, escalar verticalmente la principal. Al reducir verticalmente, invierta el orden: primero escale verticalmente la principal y, a continuación, escale verticalmente la secundaria. Cuando se escala la base de datos a un nivel de servicio diferente, se aplica esta recomendación.

Esta secuencia se recomienda específicamente para evitar que la base de datos secundaria geográfica de una SKU inferior se sobrecargue y deba reinicializarse durante un proceso de actualización o degradación. También puede evitar este problema si hace que la base de datos principal sea de solo lectura, a costa de afectar a todas las cargas de trabajo de lectura y escritura en la réplica principal.

Nota:

Si creó una base de datos secundaria geográfica como parte de la configuración del grupo de conmutación por error, no se recomienda reducir verticalmente la base de datos secundaria geográfica. De este modo, se garantiza que la capa de datos tiene la capacidad suficiente para procesar la carga de trabajo habitual después de una conmutación por error.

Evitación la pérdida de datos críticos

Debido a la elevada latencia de las redes de área extensa, la replicación geográfica usa un mecanismo de replicación asincrónica. La replicación asincrónica hace que la posibilidad de perder datos sea inevitable si se produce un error en la principal. Para proteger las transacciones críticas contra la pérdida de datos, un desarrollador de aplicaciones puede llamar al procedimiento almacenado sp_wait_for_database_copy_sync inmediatamente después de confirmar la transacción. La llamada a sp_wait_for_database_copy_sync bloquea el subproceso de llamada hasta que se transmite y protege la última transacción confirmada en el registro de transacciones de la base de datos secundaria. Sin embargo, no espera a que las transacciones transmitidas se reproduzcan (vuelvan a hacerse) en la base de datos secundaria. sp_wait_for_database_copy_sync está limitado a un vínculo de replicación geográfica específico. Cualquier usuario con derechos de conexión para la base de datos principal puede llamar a este procedimiento.

Nota:

sp_wait_for_database_copy_sync evita la pérdida de datos después de la conmutación por error geográfica para transacciones específicas, pero no garantiza la sincronización completa para el acceso de lectura. El retraso provocado por una llamada al procedimiento sp_wait_for_database_copy_sync puede ser considerable y depende del tamaño del registro de transacciones que todavía no se transmiten en la principal en el momento de la llamada.

Permisos

Los permisos para un grupo de conmutación por error se administran a través del control de acceso basado en rol de Azure (Azure RBAC).

El acceso de escritura de RBAC de Azure es necesario para crear y administrar grupos de conmutación por error. El rol Colaborador de SQL Server tiene todos los permisos necesarios para administrar grupos de conmutación por error.

Para ámbitos de permisos específicos, consulte cómo configurar grupos de conmutación por error automática en Azure SQL Database.

Limitaciones

Tenga en cuenta las siguientes limitaciones:

  • No se pueden crear grupos de conmutación por error entre dos servidores en la misma región de Azure.
  • No se puede cambiar el nombre de los grupos de conmutación por error. Tendrá que eliminar el grupo y volver a crearlo con un nombre diferente.
  • No se admiten los cambios de nombre de la base de datos para las bases de datos del grupo de conmutación por error. Tendrá que eliminar temporalmente el grupo de conmutación por error para poder cambiar el nombre de una base de datos o quitar la base de datos del grupo de conmutación por error.

Administración mediante programación de grupos de conmutación por error

Como se ha mencionado antes, los grupos de conmutación por error automática también pueden administrarse mediante programación con Azure PowerShell, Azure CLI y la API de REST. En las tablas siguientes se describe el conjunto de comandos disponibles. La replicación geográfica activa incluye un conjunto de API de Azure Resource Manager para la administración, en el que se incluyen la API REST de Azure SQL Database y los cmdlets de Azure PowerShell. Estas API requieren que se usen grupos de recursos y admiten el control de acceso basado en rol de Azure (Azure RBAC). Para más información sobre cómo implementar los roles de acceso, consulte Control de acceso basado en roles de Azure (Azure RBAC).

Cmdlet Descripción
New-AzSqlDatabaseFailoverGroup Este comando crea un grupo de conmutación por error y lo registra en el servidor principal y el servidor secundario
Remove-AzSqlDatabaseFailoverGroup Quita un grupo de conmutación por error del servidor.
Get-AzSqlDatabaseFailoverGroup Recupera la configuración de un grupo de conmutación por error.
Set-AzSqlDatabaseFailoverGroup Modifica la configuración de un grupo de conmutación por error.
Switch-AzSqlDatabaseFailoverGroup Desencadena la conmutación por error de un grupo de conmutación por error en el servidor secundario.
Add-AzSqlDatabaseToFailoverGroup Agrega una o varias bases de datos a un grupo de conmutación por error.

Pasos siguientes