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:Azure SQL Database
Este artículo explica el comportamiento de pausa automática y reanudación automática para la capa de computación serverless en Azure SQL Database, y cómo interactúa con diversas funciones de Azure SQL Database.
Actualmente, el nivel de servicio de Propósito General es el único que soporta pausas y reanudaciones automáticas sin servidor.
Para monitorizar el estado de una base de datos sin servidor, consulte Monitorear pausa y reanudar estado.
Pausa automática
La pausa automática comienza si se cumplen todas las siguientes condiciones durante el retardo de pausa automática:
- Número de sesiones = 0
- CPU = 0 para la carga de trabajo del usuario que se ejecuta en el grupo de recursos del usuario
Por defecto, hay un retraso de pausa automática de una hora.
Funciones que previenen la pausa automática
Si usas alguna de las siguientes funciones, desactiva la pausa automática. La base de datos permanece en línea independientemente de cuánto tiempo esté inactiva. Las siguientes características impiden la pausa automática, pero sí soportan el escalado automático:
- Geo-replicación (geo-replicación activa y grupos de conmutación por error)
- Retención de respaldo a largo plazo (LTR)
- Un alias de DNS creado para el servidor lógico que contiene una base de datos sin servidor
Los siguientes escenarios de características también impiden la pausa automática:
- Base de datos de sincronización utilizada en SQL Data Sync. A diferencia de la base de datos de sincronización, las bases de datos centrales y de miembros admiten pausas automáticas.
- En trabajos elásticos, no se admite una base de datos sin servidor con pausa automática habilitada como base de datos de trabajos. Las bases de datos serverless a las que se dirigen los trabajos elásticos sí admiten la pausa automática. Las conexiones de trabajo reanudan una base de datos.
- Se impide temporalmente la pausa automática durante la implementación de algunas actualizaciones de servicio, que requiere que la base de datos esté en línea. En tales casos, se vuelve a permitir la pausa automática una vez finalizada la actualización del servicio.
Reanudación automática
La reanudación automática comienza si alguna de las siguientes condiciones es cierta en cualquier momento:
| Feature | Desencadenador de reanudación automática |
|---|---|
| Autenticación y autorización | Intento de inicio de sesión |
| Detección de amenazas | Activar o desactivar la configuración de detección de amenazas a nivel de base de datos o servidor. Modificación de la configuración de detección de amenazas en el nivel de base de datos o servidor. |
| Detección y clasificación de datos | Adición, modificación, eliminación o visualización de las etiquetas de confidencialidad |
| Auditoría | Visualización de registros de auditoría Actualización o visualización de la directiva de auditoría. |
| Enmascaramiento de datos | Adición, modificación, eliminación o visualización de reglas de enmascaramiento de datos |
| Cifrado de datos transparente | Visualización del estado del cifrado de datos transparente |
| Evaluación de vulnerabilidades | Exámenes iniciados manualmente y exámenes periódicos si está habilitado |
| Almacén de datos de consulta (rendimiento) | Modificación o visualización de la configuración de Almacén de consultas |
| Recomendaciones de rendimiento | Visualización o aplicación de recomendaciones de rendimiento |
| Ajuste automático | Aplicación y verificación de recomendaciones de ajuste automático, como la indexación automática |
| Copia de base de datos | Creación de base de datos como copia. Exportación a un archivo BACPAC. |
| Sincronización de datos SQL | Sincronización entre la base de datos central y las bases de datos miembro que se ejecutan según una programación configurable o bien de forma manual |
| Modificación de algunos metadatos de base de datos | Añadir o modificar etiquetas de Azure en la base de datos. Cambio de núcleos virtuales máximos, núcleos virtuales mínimos o retraso de la pausa automática. |
| SQL Server Management Studio (SSMS) | En versiones de SSMS anteriores a la 18.1 y al abrir una nueva ventana de consulta para cualquier base de datos en el servidor, se reanuda cualquier base de datos en pausa automática en el mismo servidor. Este comportamiento no ocurre si usas SSMS versión 18.1 o posterior. |
La monitorización, gestión u otras soluciones que realicen cualquiera de estas operaciones activan la reanudación automática. La reanudación automática también se inicia durante el despliegue de algunas actualizaciones de servicio que requieren que la base de datos esté en línea.
Identificación del activador de reanudación automática
El registro de actividad de Azure Monitor muestra los desencadenadores de reanudación automática para las operaciones de reanudar bases de datos en la propiedad Caller del JSON de los eventos Iniciado y Correcto. Para más información, consulte Monitorizar la capa de computación sin servidor.
Latencia
La latencia suele ser del orden de un minuto para reanudar automáticamente y de 1 a 10 minutos para pausar. La latencia de cualquiera de las operaciones puede ser tan baja como el orden de un segundo.
Cifrado transparente de datos gestionado por el cliente
Eliminación o revocación de claves
Si usas cifrado transparente de datos gestionado por el cliente (lleva tu propia clave o BYOK) y la base de datos sin servidor se pausa automáticamente cuando ocurre la eliminación o revocación de la clave, la base de datos permanece en estado de pausa automática. En este caso, después de que la base de datos se reanude la próxima vez, esta dejará de estar accesible en aproximadamente 10 minutos. Si la base de datos pasa a ser inaccesible, el proceso de recuperación es el mismo que para las bases de datos de proceso aprovisionadas. Si la base de datos sin servidor está en línea cuando ocurre la eliminación o revocación de claves, la base de datos también se vuelve inaccesible en aproximadamente 10 minutos, de la misma manera que ocurre con las bases de datos de cómputo provisionadas.
Rotación de claves
Si usas cifrado transparente de datos gestionado por el cliente (BYOK) y activas la pausa automática sin servidor, la base de datos se reanuda automáticamente cada vez que se rotan claves. La base de datos se pausa automáticamente cuando se cumplen las condiciones de pausa automática.
Solución de problemas de la pausa automática
Resolución de problemas de conectividad por reanudación automática
Si una base de datos sin servidor está en pausa, el primer intento de conexión reanuda la base de datos y devuelve un error con el código 40613 que indica que la base de datos no está disponible. Una vez que la base de datos se reanude, intenta de nuevo la conexión. Las bases de datos generalmente se reanudan en menos de un minuto.
Todas las aplicaciones conectadas a la nube deben usar recomendaciones de lógica de reintentos de conexión. Las aplicaciones requieren lógica de reintentos para tener éxito tras errores de conectividad transitoria. La lógica de reintento es especialmente importante para bases de datos serverless, donde los errores temporales de conectividad debidos a la reanudación automática son predecibles.
Para ver las opciones y recomendaciones de lógica de reintento de conexión, consulte:
- Lógica de reintento de conexión en SqlClient
- Lógica de reintento de conexión en la base de datos SQL utilizando Entity Framework Core
- Lógica de reintento de conexión en Base de Datos SQL mediante Entity Framework 6
- Lógica de reintento de conexión en SQL Database mediante ADO.NET
- Resiliencia de la conexión en JDBC
- Resiliencia de la conexión en PHP
- Resiliencia de la conexión en ODBC
Pausa automática de resolución de problemas
Si activas la pausa automática y no usas funciones que bloquean la pausa automática, pero la base de datos no se pausa automáticamente tras el periodo de retraso, las sesiones de la aplicación o del usuario podrían estar impidiendo la pausa automática.
Para comprobar si alguna aplicación o sesión de usuario está actualmente conectada a la base de datos, ejecute la siguiente consulta:
SELECT session_id,
host_name,
program_name,
client_interface_name,
login_name,
status,
login_time,
last_request_start_time,
last_request_end_time
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
WHERE s.session_id <> @@SPID
AND
(
(
wg.name like 'UserPrimaryGroup.DB%'
AND
TRY_CAST(RIGHT(wg.name, LEN(wg.name) - LEN('UserPrimaryGroup.DB') - 2) AS int) = DB_ID()
)
OR
wg.name = 'DACGroup'
);
Sugerencia
Después de ejecutar la consulta, asegúrese de desconectarse de la base de datos. De lo contrario, la sesión abierta usada por la consulta impide la pausa automática.
- Si el conjunto de resultados no está vacío, indica que las sesiones actualmente impiden la pausa automática.
- Si el conjunto de resultados está vacío, todavía es posible que las sesiones hayan estado abiertas, aunque solo fuera brevemente, en algún momento anterior durante el periodo de espera antes de la pausa automática. Para comprobar la actividad durante el periodo de retraso, utilice Auditing for Azure SQL Database y Azure Synapse Analytics y examine los datos de auditoría correspondientes al periodo relevante.
Importante
La presencia de sesiones abiertas, con o sin uso simultáneo de CPU en el grupo de recursos de usuario, es la razón más común de que una base de datos sin servidor no se pause automáticamente según lo previsto.