>데이터 베이스 >MySQL 튜토리얼 >두 개의 mysql 마스터와 슬레이브가 동기화되면 어떻게 해야 합니까?

두 개의 mysql 마스터와 슬레이브가 동기화되면 어떻게 해야 합니까?

(*-*)浩
(*-*)浩원래의
2019-05-10 11:10:563530검색

Mysql에는 두 개의 마스터와 슬레이브가 있습니다. 이는 마스터 서버와 슬레이브 서버를 의미합니다. 마스터 하나와 슬레이브 하나가 있는 구조입니다. 하나의 마스터와 여러 개의 슬레이브: 하나의 마스터와 여러 개의 슬레이브.

추천 과정: MySQL Tutorial

두 개의 mysql 마스터와 슬레이브가 동기화되면 어떻게 해야 합니까?

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

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