하나, 이중 복사 마스터 모델 : 두 개의 노드 상호 마스터 - 슬레이브, 읽고 쓸 수 있습니다.
둘째, 이중 복사 마스터 모델 :
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 [(없음)]> 마스터 상태를 보여준다;
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
비고 :
(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
비고 :
(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 [(없음)]> 마스터 상태를 보여준다;
. 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
비고 :
(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
비고 :
(1) 경우에만 Slave_IO_Running 및 Slave_SQL_Running 값이된다 예 , 복사 스레드가 성공적으로 시작 간주됩니다
(2) Seconds_Behind_Master은 값 0 나타내는 MASTER1 뒤에 있지 MASTER2
(3) 복제하는 동안 상세히 기록 된 정보 MASTER1의 오류 로그 /var/log/mariadb.log 에
13 MASTER1는 볼 MASTER2 정보 :
MariaDB [(없음)]> 쇼 슬레이브 호스트;
14 MASTER2는 볼 MASTER1 정보를 :
MariaDB [(없음)]> 쇼 슬레이브 호스트;
셋째, 시험을 두 번 마스터 모델을 복사합니다 :
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 *;
MariaDB [DB1]> 쇼 마스터 상태;
2 MASTER2는 테스트 데이터를 볼 :
MariaDB [(없음)]> 쇼 데이터베이스;
MariaDB [(없음)]> 사용 DB1;
MariaDB [DB1]> 쇼 테이블;
MariaDB [DB1]> 내림차순 TB1;
MariaDB [DB1]> TB1 SELECT *;
MariaDB [DB1]> 슬레이브 상태를 표시 \ G
3 MASTER2는 테스트 데이터를 생성 :
MariaDB [DB1]> TB1 삽입 (이름) 값 ( 'wangwu') ( 'zhaoliu');
MariaDB [DB1]> TB1 SELECT *;
MariaDB [DB1]> 쇼 마스터 상태;
4, MASTER1는 테스트 데이터를 볼 :
MariaDB [DB1]> TB1 SELECT *;
MariaDB [DB1]> 슬레이브 상태를 표시 \ G