집 >데이터 베이스 >MySQL 튜토리얼 >MySQL - 복제 용량, 문제 해결 및 멀티 스레드 바이너리 로그 전송에 대한 자세한 설명
일정 시간(M) 동안 복제를 일시 중지했다가 다시 시작하여 슬레이브가 마스터(N)와 동일한 수준에 도달하는 데 걸리는 시간을 관찰합니다.
복제 용량=N:M
용량은 3배 이상, 즉 1:3으로 유지하는 것이 좋습니다
1) 대부분의 복제 오류는 로그 오류로 인해 발생합니다.
2) 메인 로그와 릴레이 로그가 모두 잘못되었을 수 있습니다. 식별 방법:
#mysqlbinlog MASTER_BINLOG_FILE > /dev/null #mysqlbinlog SLAVE_BINLOG_FILE > /dev/null
1) 많은 문제로 인해 로그 오류가 발생할 수 있습니다. 때로는 로그 자체에는 오류가 없을 수도 있지만 SQL 구문 분석 중에 오류가 발생합니다(예: 마스터-슬레이브 데이터가 본질적으로 일관성이 없음). 로그 오류를 수동으로 건너뛸 수 있지만 그렇게 하면 마스터와 슬레이브 데이터 간에 불일치가 발생할 수 있습니다.
2) 메인 로그 오류인 경우 슬레이브에서 실행 가능합니다. (오류가 여러 개일 경우 여러 번 실행될 수 있습니다.)
mysql> stop slave; mysql> set global sql_slave_skip_counter=1; mysql> start slave;
3) 릴레이 로그에 오류가 있는 경우 슬레이브에서 showslave status G 명령어를 통해 복제 상태를 확인하고, 로그 정보를 기준으로 오류 로그를 건너뛸 수 있습니다.
mysql> stop slave; mysql> charge master to -> master_log_file='<Relay_Master_Log_file>', -> master_log_pos=<Exec_Master_Log_Pos>; mysql> start slave;
4 ) 복제가 GTID 모드에서 작동하는 경우
mysql> stop slave; mysql> set gtid_next='uuid:nexti_d'; mysql> begin; mysql> commit; mysql> set gtid_next='automatic'; mysql> start slave;
가 필요합니다. 참고: uuid:nextid(예: '0470a4fd-93d1-11e3-86bf-4ec905bea80f:17').
1. MySQL 5.6부터 멀티스레드 바이너리 로그 전송이 지원됩니다.
2. GTID 모드에서만 작동할 수 있습니다.
3. 서로 다른 라이브러리에서 수행되는 작업만 멀티스레드 전송을 사용할 수 있습니다. 동일한 라이브러리 아래의 다른 테이블에 대한 작업은 여전히 단일 스레드에서만 전송될 수 있습니다.
#vi /etc/my.cnf [mysqld] slave_parallel-workers=N (默认值为0,不开启)
기타 명령:
mysql> set sql_log_bin=OFF; (关闭二进制日志) mysql> set sql_log_bin=ON; (开启二进制日志)
위 내용은 MySQL - 복제 용량, 문제 해결 및 멀티 스레드 바이너리 로그 전송에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!