MariaDB 듀얼 마스터 복제 모델

하나, 이중 복사 마스터 모델 : 두 개의 노드 상호 마스터 - 슬레이브, 읽고 쓸 수 있습니다.


둘째, 이중 복사 마스터 모델 :

1, 프리젠 테이션 환경 :

IP

운영 체제

데이터베이스 버전

설치

역할

192.168.1.145

CentOS는 7.6 x86_64의

MariaDB - 10.3.15

MASTER1

192.168.1.146

CentOS는 7.6 x86_64의

MariaDB - 10.3.15

MASTER2

2, 두 개의 노드의 서버 시간 동기화

3, MASTER1는 수정 server.cnf 구성 파일을 : #의 정력 /etc/my.cnf.d/server.cnf을

[mysqld를]

= 3306 포트

소켓 =은 / var / lib 디렉토리 / mysql을 / mysql.sock

데이터 =은 / var / lib 디렉토리 / mysql을

LOG_ERROR =은 / var / 로그 / mariadb.log

lower_case_table_names = 1

character_set_server = utf8mb4

collation_server = utf8mb4_general_ci

innodb_file_per_table = 1

skip_name_resolve = 1

slow_query_log = 1

slow_query_log_file는 mariadb-slow.log를 =

log_bin = MASTER1 - 빈

log_bin_index = MASTER1-bin.index

binlog_format = 혼합

relay_log = 릴레이 1 로그

relay_ log_index = 릴레이 1-log.index

SERVER_ID = 1

sync_binlog을 = 1

= 1에서 innodb_flush_log_at_trx_commit

참고 : 기본 릴레이 로그가 존재하지 않는, 자동으로 생성됩니다 경우에만 복사 시작

4, MASTER1는 복제 권한을 가진 사용자를 만듭니다

MariaDB [(없음)]> 그랜트 복제 슬레이브에 * 복제 클라이언트 * '123456'식별 'repluser'@'192.168.1.146'에.;

MariaDB [(없음)]> 플러시 권한;

5, MASTER1의 보기는 바이너리 로그 파일 이름과 이벤트의 위치를 사용하고 있습니다 :

MariaDB [(없음)]> 마스터 상태를 보여준다;

의 image.png

6 MASTER2는 수정 server.cnf 구성 파일을 : #의 정력 /etc/my.cnf.d/server.cnf을

[mysqld를]

= 3306 포트

소켓 =은 / var / lib 디렉토리 / mysql을 / mysql.sock

데이터 =은 / var / lib 디렉토리 / mysql을

LOG_ERROR =은 / var / 로그 / mariadb.log

lower_case_table_names = 1

character_set_server = utf8mb4

collation_server = utf8mb4_general_ci

innodb_file_per_table = 1

skip_name_resolve = 1

slow_query_log = 1

slow_query_log_file는 mariadb-slow.log를 =

log_bin = MASTER2 - 빈

log_bin_index = MASTER2-bin.index

binlog_format = 혼합

relay_log = RELAY2 로그

relay_ log_index = RELAY2-log.index

SERVER_ID = 2

sync_binlog을 = 1

= 1에서 innodb_flush_log_at_trx_commit

. 7, MASTER2 사용자 권한은 복제에 연결 MASTER1 :

MariaDB는 [(없음)]> 변화 마스터 = '192.168.1.145'master_user = 'repluser'master_password = '123456'= 3306 master_port에는, MASTER_HOST 없습니다 MASTER_LOG_FILE = 'MASTER1-bin.000001 위'= 2,035 MASTER_LOG_POS 단계;

MariaDB [(없음)]> 쇼 슬레이브 상태 \ G

의 image.png

비고 :

(1) Slave_IO_Running Slave_SQL_Running의 값은 기본값은 없음

(2) 자동 데이터 디렉토리 는 / var / lib 디렉토리 / mysql을 작성 RELAY2 - log.000001 , RELAY2 - log.index relay-log.info 파일

(3) MASTER_LOG_FILE의 MASTER1 바이너리 로그 파일 이름

(4) Read_Master_Log_Pos의 MASTER1의 위치 바이너리 로그 이벤트

8, MASTER2는 복제 스레드를 시작합니다 :

MariaDB는 [(없음)]> 슬레이브 시작하지;

비고 :

. (1) 시작 슬레이브 각각의 실행에 상응하는 슬레이브 io_thread 시작 하고 슬레이브 SQL_THREAD 시작

(2) STOP 슬레이브는 마스터 - 슬레이브 복제 스레드를 중지하는 수단

(3) 다시 시작 MASTER2의 서버가있는, 복사 스레드가 자동으로 시작됩니다

MariaDB [(없음)]> 쇼 슬레이브 상태 \ G

의 image.png

의 image.png

비고 :

(1) 경우에만 Slave_IO_Running Slave_SQL_Running 값이된다 , 복사 스레드가 성공적으로 시작 간주됩니다

(2) Seconds_Behind_Master은 0 나타내는 MASTER2 뒤에 있지 MASTER1

(3) 복제하는 동안 상세히 기록 된 정보 MASTER2의 오류 로그 /var/log/mariadb.log

9 MASTER2는 복제 권한을 가진 사용자를 만듭니다

MariaDB [(없음)]> 그랜트 복제 슬레이브에 * 복제 클라이언트 * '123456'식별 'repluser'@'192.168.1.145'에.;

MariaDB [(없음)]> 플러시 권한;

10 MASTER2의 보기는 바이너리 로그 파일 이름과 이벤트의 위치를 사용하고 있습니다 :

MariaDB [(없음)]> 마스터 상태를 보여준다;

의 image.png

. 11 MASTER1 사용자 권한은 복제에 연결 MASTER2 :

MariaDB는 [(없음)]> 변화 마스터 = '192.168.1.146'master_user = 'repluser'master_password = '123456'= 3306 master_port에는, MASTER_HOST 없습니다 MASTER_LOG_FILE = 'MASTER2-bin.000001 위'= 2,035 MASTER_LOG_POS 단계;

MariaDB [(없음)]> 쇼 슬레이브 상태 \ G

의 image.png

비고 :

(1) Slave_IO_Running Slave_SQL_Running의 값은 기본값은 없음

(2) 자동 데이터 디렉토리 는 / var / lib 디렉토리 / mysql을 생성 릴레이 1-log.000001 , 릴레이 1-log.index relay-log.info 파일

(3) MASTER_LOG_FILE의 MASTER2 바이너리 로그 파일 이름

(4) Read_Master_Log_Pos의 MASTER2의 위치 바이너리 로그 이벤트

12 MASTER1는 복제 스레드를 시작합니다 :

MariaDB는 [(없음)]> 슬레이브 시작하지;

참고 : 다시 시작 MASTER1의 서버가있는, 복사 스레드가 자동으로 시작됩니다

MariaDB [(없음)]> 쇼 슬레이브 상태 \ G

의 image.png

의 image.png

비고 :

(1) 경우에만 Slave_IO_Running Slave_SQL_Running 값이된다 , 복사 스레드가 성공적으로 시작 간주됩니다

(2) Seconds_Behind_Master은 0 나타내는 MASTER1 뒤에 있지 MASTER2

(3) 복제하는 동안 상세히 기록 된 정보 MASTER1의 오류 로그 /var/log/mariadb.log

13 MASTER1는 MASTER2 정보 :

MariaDB [(없음)]> 쇼 슬레이브 호스트;

의 image.png

14 MASTER2는 MASTER1 정보를 :

MariaDB [(없음)]> 쇼 슬레이브 호스트;

의 image.png


셋째, 시험을 두 번 마스터 모델을 복사합니다 :

1 MASTER1는 테스트 데이터를 생성 :

MariaDB [(없음)]> DB1 데이터베이스를 작성;

MariaDB [(없음)]> 사용 DB1;

MariaDB [DB1]> 테이블 TB1 (NULL하지 식별 부호 INT AUTO_INCREMENT 기본 키 이름 char (20) 널이 아닌)을 생성;

MariaDB [DB1]> 내림차순 TB1;

MariaDB [DB1]> TB1 삽입 (이름) 값 ( '리시') ( 'zhangsan');

MariaDB [DB1]> TB1 SELECT *;

의 image.png

MariaDB [DB1]> 쇼 마스터 상태;

의 image.png

2 MASTER2는 테스트 데이터를 볼 :

MariaDB [(없음)]> 쇼 데이터베이스;

MariaDB [(없음)]> 사용 DB1;

MariaDB [DB1]> 쇼 테이블;

MariaDB [DB1]> 내림차순 TB1;

MariaDB [DB1]> TB1 SELECT *;

의 image.png

MariaDB [DB1]> 슬레이브 상태를 표시 \ G

3 MASTER2는 테스트 데이터를 생성 :

MariaDB [DB1]> TB1 삽입 (이름) 값 ( 'wangwu') ( 'zhaoliu');

MariaDB [DB1]> TB1 SELECT *;

의 image.png

MariaDB [DB1]> 쇼 마스터 상태;

의 image.png

4, MASTER1는 테스트 데이터를 볼 :

MariaDB [DB1]> TB1 SELECT *;

의 image.png

MariaDB [DB1]> 슬레이브 상태를 표시 \ G


추천

출처blog.51cto.com/qiuyue/2400325