Mysql에는 두 개의 마스터와 슬레이브가 있습니다. 이는 마스터 서버와 슬레이브 서버를 의미합니다. 마스터 하나와 슬레이브 하나가 있는 구조입니다. 하나의 마스터와 여러 개의 슬레이브: 하나의 마스터와 여러 개의 슬레이브.
추천 과정: MySQL Tutorial
Master never synced 솔루션
먼저 Master 라이브러리로 이동:
mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+-------------------------------+ | mysqld-bin.000001 | 3260 | | mysql,test,information_schema | +-------------------+----------+--------------+-------------------------------+ 1 row in set (0.00 sec)
그런 다음 Slave에서 확인하세요.
mysql> show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: No
Slave가 나온 것을 볼 수 있습니다. of sync
아래에 소개된 두 가지 솔루션:
방법 1: 오류를 무시하고 동기화를 계속합니다.
이 방법은 마스터-슬레이브 데이터베이스의 데이터가 크게 다르지 않거나 데이터가 완전히 통합할 필요가 없거나 데이터 요구 사항이 엄격하지 않습니다
해결 방법:
stop slave; #表示跳过一步错误,后面的数字可变 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave status\G 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes ok,现在主从同步状态正常了。。。
방법 2: 마스터-슬레이브를 다시 실행하고 전체 동기화
이 방법은 마스터-슬레이브의 데이터가 슬레이브 데이터베이스가 매우 다르거나 데이터를 완전히 통합해야 합니다
해결 단계는 다음과 같습니다.
1. 고급 기본 데이터베이스에 들어가서 데이터 쓰기를 방지하기 위해 테이블을 잠급니다.
다음 명령을 사용하세요:
mysql> flush tables with read lock;
참고: 이 장소는 읽기 전용 상태로 잠겨 있으며 명령문은 대소문자를 구분하지 않습니다.
2. 데이터를 백업하세요
#mysql.bak.sql 파일에 데이터를 백업하세요
[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
한 가지 주의할 점 여기: 데이터베이스 백업을 정기적으로 수행해야 합니다. 데이터가 완벽한지 확인하는 데 더 편리한 쉘 스크립트 또는 Python 스크립트를 사용할 수 있습니다.
3. 마스터 상태를 확인하세요.
mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+-------------------------------+ | mysqld-bin.000001 | 3260 | | mysql,test,information_schema | +-------------------+----------+--------------+-------------------------------+ 1 row in set (0.00 sec)
4. 데이터 복구를 위한 슬레이브 머신
#scp 명령 사용
[root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/
5. 슬레이브 상태 중지
mysql> stop slave;
6. 그런 다음 슬레이브에서 mysql 명령을 실행하고 데이터 백업 가져오기
mysql> source /tmp/mysql.bak.sql
7. , 두 항목인 동기화 지점에 주의하세요. |
위 내용은 두 개의 mysql 마스터와 슬레이브가 동기화되면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!