Я пытаюсь восстановить сбой MySQL. У меня есть данные по состоянию на понедельник и бинлоги с тех пор, и я хочу применить бинлоги, так как их комбинация будет полным набором данных. Проблема в том, что бинлоги считываются как один пакет. Некоторые из моих слишком большие, до 2,4 ГБ, в то время как MySQL позволяет только max_allowed_packet=1G
(1073741824). Есть ли способ разбить их на части или иным образом разделить?
Редактировать: Я сейчас попробовал split
команду Linux, которая выдает ошибку "bad magic number" на втором и последующих файлах каждого разделенного файла. После прочтения этого все стало понятно. Я сейчас попробовал использовать, mysqlbinlog --start-position 4 --stop-position 200000003 $1 > $1.binout
чтобы я мог использовать цикл с приращением, но он не заканчивается на границе:
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.
Когда я увеличиваю следующий цикл, есть ли способ определить, какова реальная начальная позиция? Пример закончился на 199994536. Есть ли способ определить последнюю позицию полученного binlog?