Pregunta

Intentando ejecutar PT-Table-Checksum para detectar la deriva de esclavos en la replicación de MySQL. Sin embargo, mis esclavos no están utilizando el puerto de escucha TCP estándar, por lo que cuando ejecuto la herramienta recibo un error:

Cannot connect to P=3306,h=,p=...

Todavía se refiere a las tablas del maestro, pero sin poder conectarse a los esclavos no es muy útil. No puedo entender cómo especificar puertos alternativos para los esclavos al ejecutar el comando. Mi comando actual se parece

pt-table-checksum -h  -P 3388 -p 
¿Fue útil?

Solución

El problema es que las réplicas no informan sus puertos al maestro. Por defecto, PT-Table-Checksum intenta conectarse llenando incógnitas con valores predeterminados; Si las incógnitas no usan los valores predeterminados, esto fallará. En este caso, hay dos opciones:

1) Use la opción--Método de recursos para cambiar de Inspecting Show ProcessList a Inspecting Show Slave Hosts y configure esclavos para informar su host. No recomiendo esto.

2) Recomiendo, en su lugar, que use--Recursion-Method = DSN y cree una tabla llena de instrucciones DSN (nombre de origen de datos) que le dicen a la herramienta cómo conectarse a cada réplica. Si esta tabla es foo.bar, usará--recursion-method = dsn = d = foo, t = bar.

Esto solo está disponible en la serie 2.0 del kit de herramientas, pero de todos modos debería usarlo, porque PT-Table-Checksum se mejora enormemente en 2.0.

Otros consejos

Las herramientas de Percona no toman los argumentos estándar del cliente MySQL. Debe especificar un DSN en su formato. Ver http://www.percona.com/doc/percona-toolkit/2.0/pt-table-checksum.html#dsn-options

Querrás algo como

pt-table-checksum h=myhost,u=user,p=pass,P=port

Personalmente, no me gusta poner credenciales en algo que aparecerá en la lista de procesos para que pueda hacer

pt-table-checksum --defaults-file=/path/to/my.cnf h=myhost,P=port

donde se ve el my.cnf

[client]
user=usernameXYZ
password=asdf234JKL

Si desea que esto replique a sus esclavos, necesita especificar un --reproducir exactamente Opción que le indica la tabla que coloque las sumas de verificación (y, en consecuencia, coloque los valores de los esclavos en cada esclavo respectivo). Si esta es la primera vez que desee que cree esa tabla para usted con -CREATE-REPLICATE TABLA.

No necesitará conectarse directamente a los esclavos a menos que desee que monitoree a los esclavos para quedarse atrás. Básicamente emite consultas como

Reemplace en CheckSumstables ... (Masterv1, Masterv2, (seleccione bla ...))

donde los valores maestros literal se escriben en el binlog a lo largo de la parte seleccionada del reemplazo. Cuando eso se ejecuta en los esclavos, la selección es pensar en obtener las suma de verificación de los esclavos.

Recientemente pasé mucho tiempo con esta herramienta, así que comience con eso y responda con problemas más específicos con los que necesita ayuda para no solo reescribir todo el manual y todo lo posible que pueda salir mal.

NOTA: Si se ejecuta

export PTDEBUG=1

Antes de cualquier script de Percona, le dará toneladas de información de depuración que puede ayudarlo a señalarlo en la dirección de lo que va mal. También recuerde que todos estos son script de Perl para que pueda inspeccionar la fuente usted mismo para (tal vez) ver qué pasa mal.

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