Estou tentando recuperar uma falha do MySQL. Tenho dados de segunda-feira e logs binários desde então e quero aplicar os logs binários, pois a combinação seria um conjunto completo de dados. O problema é que os binlogs são lidos como um único pacote. Alguns dos meus são muito grandes, até 2,4G, enquanto o MySQL só permite max_allowed_packet=1G
(1073741824). Existe alguma maneira de dividi-los ou dividi-los?
Editar: agora tentei o split
comando do Linux, que fornece um erro de "número mágico incorreto" no segundo arquivo e nos arquivos subsequentes de cada arquivo dividido. Depois de ler isso, faz sentido. Agora tentei usar mysqlbinlog --start-position 4 --stop-position 200000003 $1 > $1.binout
um loop com incremento, mas ele não termina em um limite:
WARNING: The range of printed events ends with a row event or a table map event that does not have the STMT_END_F flag set. This might be because the last statement was not fully written to the log, or because you are using a --stop-position or --stop-datetime that refers to an event in the middle of a statement. The event(s) from the partial statement have not been written to output.
Quando incremento o próximo loop, existe uma maneira de determinar qual é a posição inicial real? O exemplo terminou em 199994536. Existe uma maneira de detectar a última posição do binlog resultante?