El binlog del entorno de producción se coloca en el entorno de prueba local y se analiza con binlog2sql


Si coloca el binlog del entorno de producción en el entorno de prueba local y lo analiza con binlog2sql, se producirá el siguiente error si lo lee directamente:

[root @ testdb1 mysql] # python /root/binlog2sql-master/binlog2sql/binlog2sql.py -h 192.168.119.130 -uroot -pchengce243 --start-file mysql-bin.000144> /tmp/binlog2sql-000144.log
Traceback ( última llamada más reciente):
Archivo "/root/binlog2sql-master/binlog2sql/binlog2sql.py", línea 149, en <module>
back_interval = args.back_interval, only_dml = args.only_dml, sql_type = args.sql_type)
Archivo "/ root / binlog2sql-master / binlog2sql / binlog2sql.py ", línea 53, en __init__
raise ValueError ('error de parámetro: start_file% s no en mysql server'% self.start_file)
ValueError: error de parámetro: start_file mysql-bin.000144 not en el servidor mysql

La solución es reemplazar el mysql-bin.000144 del entorno de producción con el testdb1-bin.000001 del entorno de prueba local
, pero solo cambió el nombre, pero de hecho es el mysql-bin.000144 del entorno de producción.

Si binlog está en modo GTID, pero el entorno de prueba local no está en modo GTID, se informará el siguiente error:

[root @ testdb1 mysql] # python /root/binlog2sql-master/binlog2sql/binlog2sql.py -h 192.168.119.130 -uroot -pchengce243 --start-file testdb1-bin.000001> /tmp/binlog2sql-000144.log
Traceback ( última llamada más reciente):
Archivo "/root/binlog2sql-master/binlog2sql/binlog2sql.py", línea 150, en <module>
binlog2sql.process_binlog ()
Archivo "/root/binlog2sql-master/binlog2sql/binlog2sql.py", línea 74, en process_binlog
para binlog_event en secuencia:
Archivo "build / bdist.linux-x86_64 / egg / pymysqlreplication / binlogstream.py", línea 430, en fetchone
Archivo "build / bdist.linux-x86_64 / egg / pymysql / connections. py ", línea 684, en _read_packet
File" build / bdist.linux-x86_64 / egg / pymysql / protocol.py ", línea 220, en check_error
Archivo "build / bdist.linux-x86_64 / egg / pymysql / err.py", línea 109, en raise_mysql_exception
pymysql.err.InternalError: (1236, u "No se puede replicar la transacción GTID cuando @@ GLOBAL.GTID_MODE = OFF, en archivo ./testdb1-bin.000001, posición 234 .; el primer evento 'testdb1-bin.000001' a las 4, el último evento leído desde './testdb1-bin.000001' a las 299, el último byte leído desde '. /testdb1-bin.000001 'en 299. ")
[root @ testdb1 mysql] # python /root/binlog2sql-master/binlog2sql/binlog2sql.py -h 192.168.119.130 -uroot -pchengce243 --start-file testdb1-bin. 000001> /tmp/binlog2sql-000144.log


Solución:
establezca @@ GLOBAL.GTID_MODE = OFF_PERMISSIVE;


Después de analizar, recuerde desactivar GTID_MOD
set @@ GLOBAL.GTID_MODE = OFF;

 

Supongo que te gusta

Origin www.cnblogs.com/liang545621/p/12672682.html
Recomendado
Clasificación