MySQL 충돌을 복구하려고 합니다. 월요일 현재의 데이터와 그 이후의 binlog가 있으며, 조합이 완전한 데이터 세트가 되므로 binlog를 적용하고 싶습니다. 문제는 binlog가 단일 패킷으로 읽힌다는 것입니다. 내 일부는 최대 2.4G까지 너무 크지만 MySQL은 max_allowed_packet=1G
(1073741824)만 허용합니다. 덩어리로 만들거나 분할할 수 있는 방법이 있나요?
split
편집: 이제 각 분할 파일의 두 번째 및 후속 파일에 "잘못된 매직 넘버" 오류를 표시하는 Linux 명령을 시도했습니다 . 이것을 읽고 나면 이해가 됩니다. 이제 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의 마지막 위치를 감지할 수 있는 방법이 있습니까?