Uso de eventos extendidos con Amazon RDS for Microsoft SQL Server - Amazon Relational Database Service

Uso de eventos extendidos con Amazon RDS for Microsoft SQL Server

Puede utilizar eventos extendidos en Microsoft SQL Server para capturar información de depuración y solución de problemas para Amazon RDS for SQL Server. Los eventos extendidos reemplazan SQL Trace y Server Profiler, los cuales Microsoft ha dado de baja. Los eventos extendidos son similares a los trazados del generador de perfiles, pero con un control más granular sobre los eventos que se rastrean. Los eventos extendidos son compatibles con las versiones de SQL Server 2016 y posteriores en Amazon RDS. Para obtener más información, consulte Información general de eventos extendidos en la documentación de Microsoft.

Los eventos extendidos se activan automáticamente para los usuarios con privilegios de usuario maestro en Amazon RDS for SQL Server.

Limitaciones y recomendaciones

Al utilizar eventos extendidos en RDS for SQL Server, se aplican las siguientes limitaciones:

  • Los eventos extendidos solo se admiten para las ediciones Enterprise y Standard.

  • No puede modificar las sesiones de eventos extendidos predeterminadas.

  • Asegúrese de establecer el modo de partición de memoria de sesión en NONE.

  • El modo de retención de eventos de sesión puede ser ALLOW_SINGLE_EVENT_LOSS o ALLOW_MULTIPLE_EVENT_LOSS.

  • No se admiten los destinos de seguimiento de eventos para Windows (ETW).

  • Asegúrese de que los destinos de los archivos estén en el directorio D:\rdsdbdata\log.

  • Para destinos coincidentes de pares, establezca la propiedad respond_to_memory_pressure en 1.

  • La memoria de destino del búfer de anillo no puede ser superior a 4 MB.

  • No se admiten las siguientes acciones:

    • debug_break

    • create_dump_all_threads

    • create_dump_single_threads

  • El evento rpc_completed se admite en las siguientes versiones y versiones posteriores: 15.0.4083.2, 14.0.3370.1, 13.0.5865.1, 12.0.6433.1, 11.0.7507.2.

Configuración de eventos extendidos en RDS for SQL Server

En RDS for SQL Server, puede configurar los valores de ciertos parámetros de sesiones de eventos extendidos. En la siguiente tabla, se describen los parámetros configurables.

Nombre del parámetro Descripción Valor predeterminado de RDS Valor mínimo Valor máximo
xe_session_max_memory Especifica la cantidad máxima de memoria que se asignará a la sesión para el almacenamiento en búfer de eventos. Este valor corresponde a la configuración max_memory de la sesión de evento. 4 MB 4 MB 8 MB
xe_session_max_event_size Especifica el tamaño máximo de memoria permitido para eventos grandes. Este valor corresponde a la configuración max_event_size de la sesión de evento. 4 MB 4 MB 8 MB
xe_session_max_dispatch_latency Especifica la cantidad de tiempo que los eventos se almacenan en búfer en la memoria antes de que se distribuyan a destinos de sesión de eventos extendidos. Este valor corresponde a la configuración max_dispatch_latency de la sesión de evento. 30 segundos 1 segundo 30 segundos
xe_file_target_size Especifica el tamaño máximo del destino del archivo. Este valor corresponde a la configuración max_file_size del destino del archivo. 100 MB 10 MB 1 GB
xe_file_retention Especifica el tiempo de retención en días para los archivos generados por los destinos de archivo de las sesiones de eventos. 7 días 0 días 7 días
nota

Si xe_file_retention se establece en cero, los archivos.xel se quitarán automáticamente después de que SQL Server libere el bloqueo de estos archivos. El bloqueo se libera cada vez que un archivo.xel alcanza el límite de tamaño establecido en xe_file_target_size.

Puede utilizar el procedimiento rdsadmin.dbo.rds_show_configuration almacenado para mostrar los valores actuales de estos parámetros. Por ejemplo, utilice la siguiente instrucción SQL para ver la configuración actual de xe_session_max_memory.

exec rdsadmin.dbo.rds_show_configuration 'xe_session_max_memory'

Puede utilizar el procedimiento rdsadmin.dbo.rds_set_configuration almacenado para modificarlos. Por ejemplo, utilice la siguiente instrucción SQL para establecer xe_session_max_memory en 4 MB.

exec rdsadmin.dbo.rds_set_configuration 'xe_session_max_memory', 4

Consideraciones para implementaciones Multi-AZ

Cuando crea una sesión de evento extendida en una instancia de base de datos principal, no se propaga a la réplica en espera. Puede conmutar por error y crear la sesión de evento extendida en la nueva instancia de base de datos principal. También puede quitar y volver a agregar la configuración Multi-AZ para propagar la sesión de eventos extendida a la réplica en espera. RDS detiene todas las sesiones de eventos extendidos no predeterminadas en la réplica en espera, de modo que estas sesiones no consumen recursos en el modo de espera. Debido a esto, después de que una réplica en espera se convierta en la instancia de base de datos principal, asegúrese de iniciar manualmente las sesiones de evento extendidas en la nueva instancia primaria.

nota

Este enfoque se aplica tanto a los grupos de disponibilidad siempre activa como a la creación de reflejo de bases de datos.

También puede utilizar un trabajo de SQL Server Agent para realizar un seguimiento de la réplica en espera e iniciar las sesiones si el modo en espera se convierte en el principal. Por ejemplo, utilice la siguiente consulta en el paso de trabajo del Agente SQL Server para reiniciar sesiones de eventos en una instancia de base de datos principal.

BEGIN IF (DATABASEPROPERTYEX('rdsadmin','Updateability')='READ_WRITE' AND DATABASEPROPERTYEX('rdsadmin','status')='ONLINE' AND (DATABASEPROPERTYEX('rdsadmin','Collation') IS NOT NULL OR DATABASEPROPERTYEX('rdsadmin','IsAutoClose')=1) ) BEGIN IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe1') ALTER EVENT SESSION xe1 ON SERVER STATE=START IF NOT EXISTS (SELECT 1 FROM sys.dm_xe_sessions WHERE name='xe2') ALTER EVENT SESSION xe2 ON SERVER STATE=START END END

Esta consulta reinicia las sesiones de eventos xe1 y xe2 en una instancia de base de datos principal si estas sesiones están en un estado detenido. También puede agregar una programación con un intervalo conveniente a esta consulta.

Consultar archivos de eventos extendidos

Puede utilizar SQL Server Management Studio o la función sys.fn_xe_file_target_read_file para ver datos de eventos extendidos que utilizan destinos de archivo. Para obtener más información sobre esta función, consulte sys.fn_xe_file_target_read_file (Transact-SQL) en la documentación de Microsoft.

Los destinos de archivos de eventos extendidos solo pueden escribir archivos en el directorio D:\rdsdbdata\log en RDS for SQL Server.

Como ejemplo, utilice la siguiente consulta SQL para enumerar el contenido de todos los archivos de sesiones de eventos extendidos cuyos nombres comiencen por xe.

SELECT * FROM sys.fn_xe_file_target_read_file('d:\rdsdbdata\log\xe*', null,null,null);