본문 바로가기

쓰기

mysql

mysql replication 설정

by 이곤아이 posted Sep 27, 2021
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

5.5부터는 innodb를 기본엔진으로 사용하기 때문에, Myisam을 사용할 경우, 테이블 구성시 엔진타입을 따로 기재해 주어야 함.

Master1 : 192.168.20.11

Master2 : 192.168.20.12

  1. Mysql replication 구성하기(Dual Master)
  2. Master1 my.cnf파일 수정
    1. /etc/my.cnf파일에 해당 내용 추가하기
    2. binlog-do-db=wordpress (리플리케이션 사용할 DB명, 여러개의 DB일 경우, 한칸씩 띄우면 됨. wordpress mysql, 전체 DB를 복제할경우엔는 따로 설정하지않아도 됨)
  3. Master2 /etc/my.cnf파일에 내용 변경
    1. server-id       = 2
    2. binlog-do-db=wordpress
  4. Master1에 master 플러그인 설치 및 활성화
    	mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
    	
    	Query OK, 0 rows affected (0.00 sec)
    	
    	
    	
    	mysql> set global rpl_semi_sync_master_enabled=1;
    	
    	Query OK, 0 rows affected (0.00 sec)
    	
    	
    	
    	mysql> set global rpl_semi_sync_master_timeout =1000;
    	
    	Query OK, 0 rows affected (0.00 sec)
    	
    	
    	
    	mysql> show variables like 'rpl_semi_sync%';
    	
    	+------------------------------------+-------+
    	
    	| Variable_name                      | Value |
    	
    	+------------------------------------+-------+
    	
    	| rpl_semi_sync_master_enabled       | ON    |
    	
    	| rpl_semi_sync_master_timeout       | 1000  |
    	
    	| rpl_semi_sync_master_trace_level   | 32    |
    	
    	| rpl_semi_sync_master_wait_no_slave | ON    |
    	
    	+------------------------------------+-------+
    	 
  5. Master2서버에서 쿼리 적용할 수 있게 권한 부여
    	mysql> grant replication slave on *.* to 'repl_test'@'192.168.20.12' identified by 'repltest';
    	
    	Query OK, 0 rows affected (0.00 sec)
  6.  Master2서버에 슬레이브 플러그인 설치 및 활성화
    	mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
    	
    	
    	
    	mysql> set global rpl_semi_sync_slave_enabled=1;
    	
    	
    	
    	mysql> show variables like 'rpl_semi_sync%';
    	
    	+---------------------------------+-------+
    	
    	| Variable_name                   | Value |
    	
    	+---------------------------------+-------+
    	
    	| rpl_semi_sync_slave_enabled     | ON    |
    	
    	| rpl_semi_sync_slave_trace_level | 32    |
    	
    	+---------------------------------+-------+
    	
    	2 rows in set (0.01 sec)
    	 
  7. Master1서버에서 접속할 수 있게 권한 설정
    	mysql> grant replication slave on *.* to 'repl_test'@'192.168.20.11' identified by 'repltest';
  8. 양쪽 Master서버의 bin log, postion 초기화
    	mysql> reset master;

     
  9. 각 서버 Master상태 확인
    	# Master1에서 확인
    	
    	mysql> show master status;
    	
    	+------------------+----------+--------------+------------------+
    	
    	| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    	
    	+------------------+----------+--------------+------------------+
    	
    	| mysql-bin.000001 |      100 | wordpress    |                  |
    	
    	+------------------+----------+--------------+------------------+
    	
    	1 row in set (0.00 sec)
    	
    	
    	
    	# Master2에서 확인
    	mysql> show master status;
    	
    	+------------------+----------+--------------+------------------+
    	
    	| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    	
    	+------------------+----------+--------------+------------------+
    	
    	| mysql-bin.000001 |      100 | wordpress    |                  |
    	
    	+------------------+----------+--------------+------------------+
    	
    	1 row in set (0.00 sec)
    	 
  10. 양쪽 서버 Master연결 (File과 Position을 맞추면 됨)
    	# Master1에서 수행
    	mysql> change master to  master_host='192.168.20.12', master_user='repl_test', master_password='repltest', master_log_file='mysql-master-bin.000001', master_log_pos=100;
    	
    	# Master2에서 수행
    	mysql> change master to  master_host='192.168.20.11', master_user='repl_test', master_password='repltest', master_log_file='mysql-master-bin.000001', master_log_pos=100;
    	 
  11. 각서버 연결상태확인
    Master1) 
    	
    	mysql> show slave status \G;
    	
    	*************************** 1. row ***************************
    	
    	               Slave_IO_State:
    	
    	                  Master_Host: 192.168.20.12
    	
    	                  Master_User: repl_test
    	
    	                  Master_Port: 3306
    	
    	                Connect_Retry: 60
    	
    	              Master_Log_File: mysql-bin.000001
    	
    	          Read_Master_Log_Pos: 107
    	
    	               Relay_Log_File: ha1-relay-bin.000001
    	
    	                Relay_Log_Pos: 4
    	
    	        Relay_Master_Log_File: mysql-bin.000001
    	
    	             Slave_IO_Running: Yes
    	
    	            Slave_SQL_Running: Yes
    	
    	              Replicate_Do_DB:
    	
    	          Replicate_Ignore_DB:
    	
    	           Replicate_Do_Table:
    	
    	       Replicate_Ignore_Table:
    	
    	      Replicate_Wild_Do_Table:
    	
    	  Replicate_Wild_Ignore_Table:
    	
    	                   Last_Errno: 0
    	
    	                   Last_Error:
    	
    	                 Skip_Counter: 0
    	
    	          Exec_Master_Log_Pos: 107
    	
    	              Relay_Log_Space: 107
    	
    	              Until_Condition: None
    	
    	               Until_Log_File:
    	
    	                Until_Log_Pos: 0
    	
    	           Master_SSL_Allowed: No
    	
    	           Master_SSL_CA_File:
    	
    	           Master_SSL_CA_Path:
    	
    	              Master_SSL_Cert:
    	
    	            Master_SSL_Cipher:
    	
    	               Master_SSL_Key:
    	
    	        Seconds_Behind_Master: 0
    	
    	Master_SSL_Verify_Server_Cert: No
    	
    	                Last_IO_Errno: 0
    	
    	                Last_IO_Error:
    	
    	               Last_SQL_Errno: 0
    	
    	               Last_SQL_Error:
    	
    	  Replicate_Ignore_Server_Ids:
    	
    	             Master_Server_Id: 0
    	
    	1 row in set (0.00 sec)
    	
    	
    	
    	ERROR:
    	
    	No query specified
    	
    	
    	
    	
    	
    	
    	
    	Master2)
    	
    	mysql> show slave status \G;
    	
    	*************************** 1. row ***************************
    	
    	               Slave_IO_State:
    	
    	                  Master_Host: 192.168.20.11
    	
    	                  Master_User: repl_test
    	
    	                  Master_Port: 3306
    	
    	                Connect_Retry: 60
    	
    	              Master_Log_File: mysql-bin.000001
    	
    	          Read_Master_Log_Pos: 107
    	
    	               Relay_Log_File: ha2-relay-bin.000001
    	
    	                Relay_Log_Pos: 4
    	
    	        Relay_Master_Log_File: mysql-bin.000001
    	
    	             Slave_IO_Running: Yes
    	
    	            Slave_SQL_Running: Yes
    	
    	              Replicate_Do_DB:
    	
    	          Replicate_Ignore_DB:
    	
    	           Replicate_Do_Table:
    	
    	       Replicate_Ignore_Table:
    	
    	      Replicate_Wild_Do_Table:
    	
    	  Replicate_Wild_Ignore_Table:
    	
    	                   Last_Errno: 0
    	
    	                   Last_Error:
    	
    	                 Skip_Counter: 0
    	
    	          Exec_Master_Log_Pos: 107
    	
    	              Relay_Log_Space: 107
    	
    	              Until_Condition: None
    	
    	               Until_Log_File:
    	
    	                Until_Log_Pos: 0
    	
    	           Master_SSL_Allowed: No
    	
    	           Master_SSL_CA_File:
    	
    	           Master_SSL_CA_Path:
    	
    	              Master_SSL_Cert:
    	
    	            Master_SSL_Cipher:
    	
    	               Master_SSL_Key:
    	
    	        Seconds_Behind_Master: 0
    	
    	Master_SSL_Verify_Server_Cert: No
    	
    	                Last_IO_Errno: 0
    	
    	                Last_IO_Error:
    	
    	               Last_SQL_Errno: 0
    	
    	               Last_SQL_Error:
    	
    	  Replicate_Ignore_Server_Ids:
    	
    	             Master_Server_Id: 0
    	
    	1 row in set (0.00 sec)
    	
    	
    	
    	ERROR:
    	
    	No query specified

     
TAG •
?

List of Articles
번호 분류 제목 글쓴이 조회 수 날짜
58 linux RHEL환경에서 ssh 접속시 locale warning 메시지 출력시 조치사항 이곤아이 59 2021.09.28
57 oracle Oracle 몇가지 사용쿼리들 이곤아이 28 2021.09.27
56 oracle Oracle에서 사용자Lock풀기 이곤아이 23 2021.09.27
55 oracle Centos에서 oracle 12c 설치하기 이곤아이 23 2021.09.27
» mysql mysql replication 설정 이곤아이 22 2021.09.27
53 oracle Centos에서 oracle 11g 설치 이곤아이 23 2021.09.27
52 oracle Centos에서 Oracle 10G 설치 이곤아이 24 2021.09.27
51 mysql mysql패스워드 설정 이곤아이 32 2021.09.24
50 mysql mysqlcheck 유틸리티 사용법 이곤아이 88 2021.09.24
49 kubernetes Harbor 설치가이드 이곤아이 34 2021.09.24
48 mysql extrabackup을 이용한 mysql 백업 수행 이곤아이 5 2021.09.24
47 mysql maxscale 설치 이곤아이 30 2021.09.24
46 WEB/WAS Apache Benchmark 테스트 이곤아이 1417 2021.09.22
45 oracle Oracle 실행절차 이곤아이 4 2021.09.22
44 ansible Ansible 이해하기 이곤아이 4 2021.09.22
43 git git 기본정보 이곤아이 1 2021.09.22
42 storage Glusterfs rpm 설치 이곤아이 1 2021.09.22
41 OSS php 경로별 모듈 인식 오류 이곤아이 1 2021.09.22
40 oracle Oracle10g업데이트 후 에러 이곤아이 1 2021.09.22
39 oracle oracle 10g dbstart에러 조치방법 이곤아이 2 2021.09.22
목록
Board Pagination Prev 1 2 3 Next
/ 3