>  기사  >  데이터 베이스  >  MySQL - 복제 용량, 문제 해결 및 멀티 스레드 바이너리 로그 전송에 대한 자세한 설명

MySQL - 복제 용량, 문제 해결 및 멀티 스레드 바이너리 로그 전송에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-14 16:45:391143검색

1. 복제 용량

일정 시간(M) 동안 복제를 일시 중지했다가 다시 시작하여 슬레이브가 마스터(N)와 동일한 수준에 도달하는 데 걸리는 시간을 관찰합니다.
복제 용량=N:M
용량은 3배 이상, 즉 1:3으로 유지하는 것이 좋습니다

2. 복제 장애 문제 해결

1. 로그 오류

1) 대부분의 복제 오류는 로그 오류로 인해 발생합니다.
2) 메인 로그와 릴레이 로그가 모두 잘못되었을 수 있습니다. 식별 방법:

#mysqlbinlog MASTER_BINLOG_FILE > /dev/null
#mysqlbinlog SLAVE_BINLOG_FILE > /dev/null

2. 로그 오류 건너뛰기

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=&#39;<Relay_Master_Log_file>&#39;,
	-> master_log_pos=<Exec_Master_Log_Pos>;
mysql> start slave;

4 ) 복제가 GTID 모드에서 작동하는 경우

mysql> stop slave;
mysql> set gtid_next=&#39;uuid:nexti_d&#39;;
mysql> begin;
mysql> commit;
mysql> set gtid_next=&#39;automatic&#39;;
mysql> start slave;

가 필요합니다. 참고: uuid:nextid(예: '0470a4fd-93d1-11e3-86bf-4ec905bea80f:17').

3. 멀티스레드 바이너리 로그 전송

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.