sync_binlog 매개 변수에 대한 설명서를 살펴본 결과 sync_binlog 매개 변수 설명서에 불일치가 있음을 발견했습니다.sync_binlog 매개 변수 mysql
는문서는 여기 http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_sync_binlog는 말한다 : 충돌의 경우에 당신은 바이너리 로그에서 그룹을 커밋 대부분 하나 잃어 버려
가1의 값이 가장 안전한 선택입니다.
이는 본질적으로 데이터가 업데이트되지만 binlogs에는 없을 수 있음을 의미합니다.
그러나, 여기 http://dev.mysql.com/doc/refman/5.6/en/binary-log.html 바이너리 로그 설명서에 말한다 :
예를 들어, 당신이 InnoDB 테이블을 사용하고 MySQL 서버가 COMMIT 문을 처리하는 경우, 그것은 순서로 바이너리 로그에 많은 준비가 트랜잭션을 기록, 바이너리 로그를 동기화 한 다음이 트랜잭션을 InnoDB에 커밋한다. 이 두 작업 사이에 서버가 충돌하면 트랜잭션은 다시 시작할 때 InnoDB에 의해 롤백되지만 여전히 바이너리 로그에 존재합니다.
기본적으로 트랜잭션이 처음에는 binlog에 기록 된 다음 InnoDB에 커밋됨을 의미하므로 크래시 발생시 행이 binlog에 있지만 데이터베이스에는 존재하지 않을 가능성이 있습니다.
나는 mysql 포럼에서이 질문을하고 응답을 기다리고 있지만,이 매개 변수를 사용하는 사람이 다음 두 가지 동작 중 어느 부분에 대한 세부 정보를 줄 수 있는지 정말 고맙겠습니다.
감사합니다.
세미 - 동기화 모드에서 mysql을 실행하면 커밋이 슬레이브 중 하나의 bin 로그에 기록된다는 것을 이해합니다. 그러나 여기에서는 mysql에서 _sync_binlog = 1_ 설정에 대해 더 우려하고 있습니다. 충돌의 경우에 제공 할 수있는 보증의 종류는 bin 로그에 쓰지만 master DB에는 커밋되지 않거나 masterDB에는 커밋되지만 bin 로그에는 쓰지 못할 수 있습니다. 그 자체로는 모순 된 문장이 있는데, 나는 이것에 대한 버그를 기록했다 : https://bugs.mysql.com/bug.php?id=82900. 정보 주셔서 감사합니다. – Ashu