Suspender una base de datos de disponibilidad (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 2012. 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 la base de datos secundaria local se suspende y su estado de sincronización se pasa a NOT SYNCHRONIZED. 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. Las nuevas conexiones a la base de datos suspendida en la secundaria legible no se permiten hasta que se reanude el movimiento de datos. 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.
|
||
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 las capacidades de la redundancia y de conmutación por error para 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:
Limitaciones y restricciones
Requisitos previos
Recomendaciones
Seguridad
Para suspender una base de datos con:
SQL Server Management Studio
Transact-SQL
PowerShell
Seguimiento: Evitar un registro de transacciones lleno
Tareas relacionadas
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
Durante los cuellos de botella, la suspensión breve de 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 obtener 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.
Se requiere el permiso ALTER AVAILABILITY GROUP en el grupo de disponibilidad, el permiso CONTROL AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.
[Arriba]
Usar 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.
Expanda el grupo de disponibilidad.
Expanda el nodo Bases de datos de disponibilidad, haga clic con el botón secundario 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 detención.
[!NOTA]
Para suspender bases de datos adicionales en esta ubicación de réplica, repita los pasos 4 y 5 para cada base de datos.
[Arriba]
Usar 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 siguiente instrucción ALTER DATABASE:
ALTER DATABASE database_name SET HADR SUSPEND
[Arriba]
Usar PowerShell
Para suspender una base de datos
Cambie el directorio (cd) a la instancia de 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.
Utilice 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 MyDb3 en el grupo de disponibilidad MyAg en la instancia de servidor denominada Computer\Instance.
Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3
[!NOTA]
Para ver la sintaxis de un cmdlet, use el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para obtener más información, vea Obtener ayuda de SQL Server PowerShell.
Para configurar y usar el proveedor de SQL Server PowerShell
[Arriba]
Seguimiento: evitar un registro de transacciones lleno
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:
Agregar más espacio del registro para la base de datos principal.
Reanudar la base de datos secundaria antes de que el registro se llene. Para obtener más información, vea Reanudar una base de datos de disponibilidad (SQL Server).
Quitar la base de datos secundaria. Para obtener más información, vea Quitar una base de datos secundaria de un grupo de disponibilidad (SQL Server).
Para solucionar problemas en un registro de transacciones lleno
[Arriba]
Tareas relacionadas
Vea también
Conceptos
Información general de los grupos de disponibilidad AlwaysOn (SQL Server)