En esta página, se describe cómo usar eventos extendidos (XEvents) en tus instancias.
Cloud SQL para SQL Server admite el uso de XEvents para supervisar, identificar y solucionar problemas de rendimiento de tu base de datos. Para ello, debes crear sesiones de XEvent y leer los archivos de salida de XEvent. Puedes leer los archivos de salida de XEvent en la instancia o descargarlos desde un bucket de Cloud Storage.
Antes de comenzar
Si quieres subir tus archivos de XEvent a un bucket de Cloud Storage, crea un bucket en tu cuenta de Google Cloud .
Prácticas recomendadas
- Para evitar transferir archivos grandes entre regiones, te recomendamos que realices una de las siguientes acciones:
- Crea buckets multirregionales de Cloud Storage
- Configura el bucket de destino de Cloud Storage en la misma región que la instancia
- Antes de usar XEvents, habilita los aumentos automáticos de almacenamiento. Según su tamaño total y los intervalos de retención, los archivos de salida de XEvent pueden necesitar un espacio significativo en el disco.
- Para evitar retener demasiados archivos de XEvent durante mucho tiempo, configura una política de retención de datos para tu bucket de Cloud Storage.
- Si creas una sesión de XEvent con la IU de SSMS, pero no aparecen algunas casillas para los valores de entrada, cambia el tamaño de la ventana Crear sesión de XEvent.
Cómo crear sesiones de XEvent
XEvents se habilita en tus instancias de forma automática.
Usa el comando CREATE EVENT SESSION
para definir sesiones de XEvent nuevas. También puedes usar la interfaz de usuario de
SQL Server Management Studio (SSMS) para crear sesiones de XEvent.
Cloud SQL aplica los siguientes parámetros para todas las sesiones de XEvent:
| Parámetro | Descripción | Valores permitidos |
FILENAME
|
Especifica el nombre de archivo y la ruta de acceso para almacenar los datos de la sesión de XEvents. | Cualquier ruta de acceso que comience con /var/opt/mssql/xevents/
|
MAX_FILE_SIZE
|
Especifica el tamaño máximo de cada archivo de salida antes de que se cree un archivo nuevo. | Un mínimo de 10 MB
Un máximo de 1 GB |
MAX_MEMORY
|
Especifica la cantidad máxima de memoria que se asignará a la sesión para el almacenamiento en búfer de eventos. | Un mínimo de 4 MB
Un máximo de 8 MB |
MAX_DISPATCH_LATENCY
|
Especifica el tiempo máximo (en segundos) que los eventos pueden permanecer en la cola de envío de eventos antes de enviarse al destino. | Mínimo de 1 s
Máximo de 30 s |
MAX_EVENT_SIZE
|
Establece el tamaño máximo de cada evento, en bytes. | Un mínimo de 4 MB
Un máximo de 8 MB |
Parámetros de configuración de la sesión de XEvent
Puedes configurar sesiones de XEvent con los siguientes parámetros como marcas personalizadas:
| Parámetro | Descripción |
cloud sql xe bucket name
|
Especifica el bucket de Cloud Storage al que quieres subir el resultado de la sesión de XEvent. Si no se especifica, Cloud SQL no sube los datos de salida de la sesión de XEvent a Cloud Storage. |
cloud sql xe output total disk size (mb)
|
Especifica la cantidad de espacio en el disco que se reservará para el resultado de todas las sesiones de XEvent. Si no se especifica, Cloud SQL usa un espacio en el disco predeterminado de 512 MB. Si los archivos de salida de XEvent usan más espacio en el disco que el valor de
cloud sql xe output total disk size (mb), Cloud SQL quita estos archivos del disco.
|
cloud sql xe file retention (mins)
|
Especifica el tiempo de retención en la instancia en minutos para los archivos generados por los destinos de archivos de las sesiones de XEvent. Si no se especifica, Cloud SQL usa un valor predeterminado de 7 días. |
cloud sql xe upload interval (mins)
|
Especifica el intervalo de carga de los archivos XEvent que se suben a Cloud Storage. Si no se especifica, Cloud SQL usa un valor predeterminado de 10 minutos. |
Para obtener más información sobre configurar estas marcas, consulta Configura marcas de base de datos.
Cómo leer los archivos de salida de la sesión de XEvent
Puedes leer los archivos de salida de la sesión de XEvent desde una instancia de Cloud SQL o un bucket de Cloud Storage.
Lee los archivos de salida de XEvent de una instancia
Para recuperar los datos de un archivo de XEvent que crea una sesión de XEvent, usa la función sys.fn_xe_file_target_read_file.
A continuación, se presenta un ejemplo:
SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);
Lee archivos de salida de XEvent desde un bucket
Para leer los archivos de salida de XEvent de un bucket de Cloud Storage, descarga los archivos del bucket a una instancia de SQL Server. Puedes descargar desde una de las siguientes instancias:
- Una instancia de Windows de Compute Engine
- Una instancia de Linux de Compute Engine
- Otro tipo de instancia que ejecuta SQL Server
Luego, transfiere los archivos de salida de XEvent del bucket a una ubicación accesible para
esa instancia, como su disco local. Luego, para mostrar información del archivo de salida de XEvent, ejecuta la función sys.fn_xe_file_target_read_file con una cuenta que tenga el permiso VIEW SERVER STATE en el servidor. Para obtener más información sobre los permisos, consulta
Permisos.
Otorga permisos para subir archivos a un bucket de Cloud Storage
Para otorgar permisos que permitan subir archivos XEvent a un bucket de Cloud Storage, completa los siguientes pasos:
Console
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket al que deseas subir los archivos de XEvent.
En la página Detalles del depósito, haz clic en la pestaña Permisos.
En la pestaña Ver por principales, haz clic en Otorgar acceso.
En la sección Agregar principales, en el campo Principal nueva, ingresa la cuenta de servicio de la instancia de Cloud SQL que deseas usar.
En la sección Asignar roles, en el campo Selecciona un rol, ingresa el rol de Usuario de objetos de almacenamiento (
roles/storage.objectUser). Para obtener más información sobre el rol, consulta Roles de Cloud Storage requeridos.
Métricas de supervisión
Puedes supervisar las siguientes operaciones relacionadas con xevent como parte de las métricas de Cloud SQL, disponibles a través del Explorador de métricas:
- database/sqlserver/xevents_upload_count: Indica la cantidad total de intentos de carga de archivos de xevent exitosos y fallidos. Revisa esta métrica para supervisar si las cargas se realizaron correctamente.
- database/sqlserver/xevents_size.: Indica cuánto espacio en el disco usan los archivos de xevent almacenados en la instancia, en bytes.
Supervisa las sesiones de XEvent
Puedes supervisar las actividades relacionadas con la sesión de XEvent a través del archivo xevents.log para las siguientes operaciones:
- Son los archivos de salida de XEvent que se quitaron del disco, que no se subieron a Cloud Storage y que ocupaban un espacio en el disco superior al valor asociado con
cloud sql xe output total disk size (mb). - Los archivos de salida de XEvent que se quitaron del disco, que no se subieron a Cloud Storage y que son más antiguos que el valor asociado con
cloud sql xe file retention.
Consideraciones para las réplicas de lectura y los grupos de lectura
En esta sección, se incluye información sobre las sesiones de XEvent para las réplicas de lectura y los grupos de lectura.
Para réplicas de lectura y grupos de lectura nuevos
- Todos los parámetros de configuración de la sesión de XEvent que se pasan a través de las marcas de base de datos en la instancia original están disponibles en la réplica de lectura recién creada.
- Todas las sesiones de XEvent presentes en la instancia original cuando se crean las réplicas de lectura están disponibles en la réplica de lectura. Ten en cuenta que las sesiones de XEvent en la réplica de lectura deben iniciarse de forma manual, a menos que estén configuradas para iniciarse automáticamente. Para obtener más información, consulta Cómo crear sesiones de XEvent.
- Si clonas una instancia principal, las marcas de base de datos que aparecen en la instancia principal se propagan a la instancia clonada. Además, debes otorgar permisos a la cuenta de servicio de la instancia clonada para que acceda al bucket de Cloud Storage de nuevo.
- La réplica de lectura o el grupo de lectura sube un archivo de salida a Cloud Storage.
- En el caso de las réplicas de lectura, el nombre del archivo hace referencia a la réplica de lectura.
- En el caso de los grupos de lectura, el nombre del archivo hace referencia al nodo específico del grupo de lectura.
Para réplicas de lectura y grupos de lectura existentes
- Los parámetros de configuración de la sesión de XEvent que se pasan a través de las marcas de base de datos a la instancia original no se propagan a las réplicas de lectura.
- Las sesiones de XEvent creadas en la instancia original no se propagan a las réplicas de lectura.