"No hay una base de datos seleccionada" o "Tabla" DB.Table "no existe" fallas en la ejecución de actualización de PT donde se recogieron consultas de múltiples DBS con TCPDUMP

dba.stackexchange https://dba.stackexchange.com/questions/103198

  •  26-09-2020
  •  | 
  •  

Pregunta

Recopilé consultas en nuestro maestro usando el siguiente comando tcpdump:

tcpdump -i any -s 65535 -x -n -nn -q -tttt 'port 3306' > tcpdump.tcp

Las consultas se ejecutan entre varias bases de datos.

Luego ejecuté este archivo a través de PT-QUERY-DIGEST utilizando el siguiente comando:

pt-query-digest --output=slowlog --no-report --sample 100 --type tcpdump tcpdump.tcp > slow.log

Luego corrí a la actualización PT contra dos esclavos como este:

pt-upgrade --user user --ask-pass --run-time=1h --upgrade-table percona.pt_upgrade h=10.1.1.1 h=10.1.1.2 slow.log

Pero obtuve un montón de fracasos, ya que no parece especificar qué base de datos debe ejecutarse la consulta contra.

¿Cómo se supone que se debe usar la actualización PT cuando se recopilan las consultas entre múltiples DBS? AFAICT Esto no se especifica en la documentación en ninguna parte.

¿Se supone que debes usarlos con las consultas de salida de PT-QUERY-DIGEST a Simplemente de salida para una base de datos en particular y luego especificar --database con PT-Upgrade? Enjuague y repita por base de datos.

Tarda varias horas para analizar mi gigantesca captura TCPDUMP para que se aprecie ninguna guía aquí.

¡Gracias!

p.s.

Utilicé este > Artículo como punto de partida, pero está desactualizado. p.ej. PT-QUERY-DIGEST NO TIENE UNA OPCIÓN DE -PRINT.

¿Fue útil?

Solución

  • ¿Todavía no está funcionando si omite, muestra?

  • (desde manual)

También tenga en cuenta que PT-QUERY-DIGEST puede no reportar la base de datos para Consultas al analizar la salida TCPDUMP.La base de datos se descubre solamente. En los eventos de conexión inicial para un nuevo cliente o cuándo es ejecutado.Si la salida TCPDUMP no contiene ninguno de estos, entonces PT-QUERY-DIGEST no puede descubrir la base de datos.

  • Considere usar el registro general en lugar de tcpdump?

Otros consejos

Tengo un problema similar. He faltante mesas y también me faltan las fallas de uso. A veces, la declaración de uso está presente, pero con la base de datos incorrecta. Uso una solución bastante simple.

(Preludio) Mi primer número: mi lento.log es 60GO LOGEN SO

  1. Lo dividí con Split con opción -l establecido en 20 millones (que me da aproximadamente 1go por archivo) Asegúrese de que no tiene declaraciones que se encuentran entre los archivos. Editarlos con

    cabeza -numeroflines ab >> aa, por ejemplo,

  2. Encuentre la declaración de que es la raíz de su problema (abierta con menos que no quiere tener 1Go en RAM con VI)

  3. sedlo con

    sed -e '/nameofscriptyourfilewhichisinthefilewhichisinthefirstline.php/ ,+nd'

  4. con n el número de líneas que necesita para editar. (Desde mi punto de vista, el desarrollador necesita establecer tesis informaciones con fines de depuración y es parte de nuestro marco histórico de todos modos).

    1. Comunicar el problema al desarrollador y ejecutar su lenta editada de nuevo.

    2. Repita los pasos 2 a 4 hasta que no encuentre más de estos errores. Puede ejecutar su lista de SED a través de este tipo de comando

      sed -e '...' | sed -e '...' | sed - '...'> correct_aa

    3. PROBUO DE FIANL: Descubrí que las consultas con como "%" también son un dolor porque el analizador no puede entenderlas. (Todavía buscando una solución).

      Si esto puede ayudar, me alegro. No está limpio, es largo, pero me permite encontrar todas las consultas que no encajen en nuestro marco, aunque lo hicieron a la proda de alguna manera. Y como somos muy tarde en nuestras versiones de MySQL, es un placer hacer que trabajemos para mí, eventualmente. ;)

      P.s. : Esta es mi primera publicación.

Lo que terminamos haciendo es las consultas de Greping Out desde el nombre de la tabla Slow.log en función del nombre de la tabla en los archivos de registro específicos de la base de datos (RAW).Luego especificamos --type remawn y --database con PT-Upgrade.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top