En esta página, encontrarás prácticas recomendadas para usar Datastream. Estas incluyen prácticas recomendadas generales para usar Datastream.
Cómo cambiar la base de datos de origen de un flujo
En algunos casos, es posible que debas cambiar la base de datos de origen de una transmisión. Por ejemplo, es posible que debas modificar la transmisión para replicar desde una réplica en lugar de desde la instancia de la base de datos principal.
- Crea un perfil de conexión para la instancia de réplica.
- Crea una transmisión con el perfil de conexión de la réplica que creaste y el perfil de conexión existente para el destino.
- Inicia la transmisión con el reabastecimiento histórico inhabilitado. Cuando se inicie la transmisión, solo se extraerán los datos de los registros binarios.
- Opcional. Después de que se ejecute la transmisión, modifícala para habilitar el reabastecimiento automático.
- Pausa la transmisión que lee desde la instancia principal.
- Opcional. Borra el flujo que transmitía datos desde la instancia principal.
- Opcional. Borra el perfil de conexión de la instancia principal.
Alertas y supervisión en Datastream
El panel de Datastream contiene mucha información. Esta información puede ser útil para la depuración. Puedes encontrar información adicional en los registros, que están disponibles en Cloud Logging.
Alertas de Datastream
No hay ninguna alerta predeterminada configurada para Datastream. Por ejemplo, puedes crear una política de alertas para la métrica Actualización de datos haciendo clic en el vínculo Crear política de alertas en la pestaña Descripción general. Para las métricas restantes, sigue estos pasos:
En la consola de Google Cloud , ve a la página notifications Alertas:
Haz clic en Crear política.
Haz clic en el menú desplegable Seleccionar una métrica.
En el campo de filtro, ingresa
Datastream.Opcional: Es posible que debas inhabilitar el filtro Activo para ver todas las métricas disponibles.
Busca la métrica que deseas supervisar en Flujo de Datastream.
Haz clic en Aplicar.
Opcional: Ingresa los detalles obligatorios en las secciones Agregar filtros y Transformar datos. Haz clic en Siguiente.
Ingresa la información requerida en la sección Configurar activador de alerta. Haz clic en Siguiente.
Configura tus notificaciones en la sección Configurar notificaciones y finalizar la alerta.
Revisa la alerta y haz clic en Crear política cuando esté lista.
Para obtener información detallada sobre cómo completar cada uno de estos pasos, consulta Crea una política de alertas.
Te recomendamos que crees alertas para las siguientes métricas de Datastream:
- Actualidad de los datos
- Recuento de eventos no admitidos de la transmisión
- Latencias totales de la transmisión
Una alerta sobre cualquiera de estas métricas puede indicar un problema con la transmisión o la base de datos de origen.
Información sobre la latencia
Datastream proporciona las siguientes métricas para ayudarte a comprender la latencia de replicación:
- Actualidad de los datos: Es la diferencia entre el momento en que se confirmaron los datos en la fuente y el momento en que Datastream los leyó. Si esta métrica es alta, indica que Datastream está leyendo los datos más lento de lo que se generan en la fuente. Esto indica que podría haber un problema con la fuente o con la conexión de red a la fuente.
- Latencia del sistema: Es el tiempo que tarda Datastream en procesar un evento, desde el momento en que se lee de la fuente hasta que se escribe en el destino.
- Latencia total: Es el retraso de replicación de extremo a extremo, que representa el tiempo total desde que se confirman los datos en la fuente hasta que se escriben en el destino.
Si la actualización de los datos es alta, las causas comunes incluyen las siguientes:
- Sobrecarga de la fuente: La base de datos de origen genera registros (archivos binlog, archivos de registro de rehacer, archivos WAL) más rápido de lo que Datastream puede leerlos.
- Acción para MySQL/Oracle:
Aumenta el parámetro
maxConcurrentCdcTaskspara leer más registros en paralelo. - Acción para PostgreSQL: Aísla las tablas con alta rotación en sus propios flujos dedicados.
- Acción para SQL Server: Aumenta el parámetro
maxConcurrentCdcTaskspara leer más tablas de cambios en paralelo.
- Acción para MySQL/Oracle:
Aumenta el parámetro
- Falta de recursos de origen: El servidor de la base de datos de origen experimenta problemas como un uso elevado de la CPU, poca memoria o cuellos de botella de E/S del disco.
- Acción: Asegúrate de que la instancia de origen esté en buen estado. Verifica el uso de CPU y RAM. En el caso de PostgreSQL, considera aumentar el valor del parámetro
logical_decoding_work_mem. En el caso de Oracle, asegúrate de que se asigne suficiente área global del sistema (SGA).
- Acción: Asegúrate de que la instancia de origen esté en buen estado. Verifica el uso de CPU y RAM. En el caso de PostgreSQL, considera aumentar el valor del parámetro
- Problemas de capacidad de red: Tiempo de ping alto o ancho de banda saturado entre tu fuente y Google Cloud.
- Acción: Supervisa el ancho de banda y la latencia de tu VPN o Cloud Interconnect.
- Transacción única grande: Un trabajo por lotes grande, como un
UPDATEen millones de filas, puede provocar un aumento temporal en la latencia.- Acción: Esto es lo que se espera. Espera a que DataStream procese el evento grande. En el futuro, considera dividir los trabajos por lotes grandes en partes más pequeñas.
Si la latencia del sistema es alta, esto puede indicar un problema en Datastream o en el destino.
- Acción: Verifica Cloud Logging en busca de errores persistentes a nivel de la fila (por ejemplo,
invalid input for type json). Si la transmisión está en un bucle de reintentos debido a errores de tipo de datos o de restricción, es posible que se requiera una corrección manual de los datos en la fuente. Si no hay errores evidentes, comunícate con el equipo de asistencia de Google para obtener ayuda.
¿Cuántas tablas puede controlar una sola transmisión?
Recomendamos que una sola transmisión incluya hasta 10,000 tablas. No hay límite para el tamaño de las tablas. Si necesitas crear una transmisión con más tablas, es posible que la transmisión entre en un estado de error. Para evitarlo, considera dividir la fuente en varias transmisiones.