Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Puede suspender una base de datos de disponibilidad en grupos de disponibilidad AlwaysOn mediante SQL Server Management Studio, Transact-SQL o PowerShell en SQL Server. Observe que un comando de suspender tiene que emitirse en la instancia de servidor que hospeda la base de datos que se va a suspender o a reanudar.
El efecto de un comando de suspensión depende de si suspende una base de datos secundaria o una base de datos principal, según se indica a continuación:
| Base de datos suspendida | Efecto del comando de suspensión |
|---|---|
| Base de datos secundaria | Solo se suspende la base de datos secundaria local y su estado de sincronización pasa a ser NOT SYNCHRONIZING. Otras bases de datos secundarias no se ven afectadas. La base de datos suspendida deja de recibir y aplicar datos (registros) y comienza a quedar rezagada respecto de la principal base de datos principal. Las conexiones existentes en la secundaria legible siguen estando utilizables. No se permiten nuevas conexiones a la base de datos suspendida en la secundaria legible hasta que se reanude el movimiento de datos. Este comportamiento solo se aplica cuando las conexiones se abren mediante el proceso de escucha y el enrutamiento de solo lectura. La base de datos principal sigue estando disponible. Si suspende cada una de las bases de datos secundarias correspondientes, la base de datos principal se queda expuesta. ** Importante ** Mientras se suspende una base de datos secundaria, la cola de envío de la base de datos principal correspondiente acumulará registros de transacciones sin enviar. Las conexiones a la réplica secundaria devuelven los datos que estaban disponibles en el momento en que se suspendió el movimiento de datos. |
| Base de datos principal | La base de datos principal detiene el movimiento de datos a cada base de datos secundaria conectada. La base de datos principal continúa ejecutándose en un modo expuesto. La base de datos principal sigue disponible para los clientes y las conexiones existentes en una base de datos secundaria legible permanecen utilizables y se pueden establecer nuevas conexiones. |
Nota
Suspender una base de datos secundaria de AlwaysOn no afecta directamente a la disponibilidad de la base de datos principal. Sin embargo, suspender una base de datos secundaria puede afectar a la redundancia y a la capacidad de conmutación por error de la base de datos principal. Esto se diferencia del reflejo de base de datos, en el que el estado de reflejo se suspende tanto en la base de datos reflejada como en la base de datos principal. Al suspender una base de datos principal AlwaysOn, se suspende el movimiento de datos en todas las bases de datos secundarias y las capacidades de conmutación por error y redundancia cesan para esa base de datos hasta que la base de datos principal se reanuda.
Antes de empezar:
Para suspender una base de datos con:
Seguimiento:Evitar que el registro de transacciones se llene
Antes de empezar
Limitaciones y restricciones
Un comando SUSPEND realiza la devolución en cuanto haya sido aceptado por la réplica que hospeda la base de datos de destino, pero la suspensión real de la base de datos se produce de forma asincrónica.
Requisitos previos
Debe estar conectado a la instancia de servidor que hospeda la base de datos que desea suspender. Para suspender una base de datos principal y las bases de datos secundarias correspondientes, conéctese a la instancia del servidor que hospeda la réplica principal. Para suspender una base de datos secundaria dejando disponible la base de datos principal, conéctese a la réplica secundaria.
Recomendaciones
En situaciones de cuello de botella, suspender brevemente una o varias bases de datos secundarias puede ser útil para mejorar temporalmente el rendimiento de la réplica principal. Mientras una base de datos secundaria permanece suspendida, el registro de transacciones de la base de datos principal correspondiente no puede truncarse. Esto hace que las entradas de registro se acumulen en la base de datos principal. Por tanto, se recomienda reanudar o quitar rápidamente una base de datos secundaria suspendida. Para más información, vea Seguimiento: Evitar un registro de transacciones lleno más adelante en este tema.
Seguridad
Permisos
Requiere el permiso ALTER en la base de datos.
Requiere ALTER AVAILABILITY GROUP permiso sobre el grupo de disponibilidad, el permiso CONTROL AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.
Uso de SQL Server Management Studio
Para suspender una base de datos
En el Explorador de objetos, conéctese a la instancia de servidor que hospeda la réplica de disponibilidad en la que desea suspender una base de datos y expanda el árbol. Para obtener más información, vea Requisitos previos, anteriormente en este tema.
Expanda los nodos Alta disponibilidad de AlwaysOn y Grupos de disponibilidad .
Amplíe el grupo de disponibilidad.
Expanda el nodo Bases de datos de disponibilidad , haga clic con el botón derecho en la base de datos y haga clic en Suspender movimiento de datos.
En el cuadro de diálogo Suspender movimiento de datos , haga clic en Aceptar.
El Explorador de objetos indica que la base de datos está suspendida mediante el cambio del icono de la base de datos para mostrar un indicador de pausa.
Nota
Para suspender bases de datos adicionales en esta ubicación de réplica, repita los pasos 4 y 5 con cada base de datos.
Uso de Transact-SQL
Para suspender una base de datos
Conéctese a la instancia del servidor que hospeda la réplica cuya base de datos desea suspender. Para obtener más información, vea Requisitos previos, anteriormente en este tema.
Suspenda la base de datos mediante la instrucción siguiente ALTER DATABASE :
ALTER DATABASE database_nameSET HADR SUSPEND;
Uso de PowerShell
Para suspender una base de datos
Cambie el directorio (cd) a la instancia del servidor que hospeda la réplica cuya base de datos quiere suspender. Para obtener más información, vea Requisitos previos, anteriormente en este tema.
Use el cmdlet Suspend-SqlAvailabilityDatabase para suspender el grupo de disponibilidad.
Por ejemplo, el siguiente comando suspende la sincronización de datos para la base de datos de disponibilidad
MyDb3en el grupo de disponibilidadMyAgen la instancia del servidor denominadaComputer\Instance.Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3Nota
Para ver la sintaxis de un cmdlet, use el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para más información, consulte Get Help SQL Server PowerShell.
Para configurar y usar el proveedor de SQL Server PowerShell
Seguimiento: cómo evitar que el registro de transacciones se llene
Normalmente, cuando se lleva a cabo un punto de comprobación automático en una base de datos, su registro de transacciones se trunca en dicho punto de comprobación después de la siguiente copia de seguridad del registro. Sin embargo, mientras una base de datos secundaria está suspendida, todas las entradas de registro actuales permanecen activas en la base de datos principal. Si el registro de transacciones se llena (bien porque alcanza su tamaño máximo o porque la instancia del servidor se queda sin espacio), la base de datos no puede realizar más actualizaciones.
Para evitar este problema, debe realizar una de las siguientes acciones:
Agregue más espacio para el registro de transacciones de la base de datos principal.
Reanudar la base de datos secundaria antes de que el registro se llene. Para más información, consulte Reanudar una base de datos de disponibilidad (SQL Server).
Quitar la base de datos secundaria. Para más información, consulte Quitar una base de datos secundaria de un grupo de disponibilidad (SQL Server).
Para solucionar problemas en un registro de transacciones lleno
Tareas relacionadas
Consulte también
Información general de los grupos de disponibilidad AlwaysOn (SQL Server)
Reanudar una base de datos de disponibilidad (SQL Server)