MySQL/MariaDB Replication 모니터링
· Version : MySQL 5.7, Docker
MySQL Replication은 기본적으로 비동기 방식의 복제 매커니즘이다. 그래서 Master DB의 Slave DB 간에 동기화 지연이 발생하면 데이터에 데한 차이가 발생하고 서비스에 영향이 있을 수도 있다.
· MySQL 복제 구축 : http://sqlmvp.kr/220383304252
· MySQL Replication Architecture : https://www.slideshare.net/SvenSandberg/oracle-openworld-2013-hol9737-mysqlreplicationbestpractices
슬레이브DB에 대한 복제 상태를 확인하는데 가장 많이 사용되는 명령은 show slave status 명령이다. 많은 정보가 나타나지만 기본적으로 복제 서비스 상태가 정상인지 확인하는 항목은 IO스레드 동작상태를 나타내는 Slave_IO_Running 와 SQL 스레드 동작 상태를 나타내는 Slave_SQL_Running 이다. Yes는 정상 상태이고 No이면 비정상 상태이다.
show slave status; |
출처 :https://www.techjini.com/wp-content/uploads/2009/11/screenshot.png
각 항목에 대해 자세하게 살펴보자.
Variable Name |
Comments |
Slave_IO_State |
IO 스레드의 동작 상태 |
Master_Host |
슬레이브 DB가 접속한 마스터 DB의 호스트 주소 |
Master_User |
슬레이브 DB가 마스터 DB로 접속한 계정명 |
Master_Port |
슬레이브DB가 마스터 DB로 접속한 포트번호 |
Connect_Retry |
접속이 끊어졌을때 재시도 하는 시간(초), 기본값 60초. CHANGE MASTER TO 구문으로 설정 가능. |
Master_Log_File |
IO 스레드가 현재 읽고 있는 마스터DB의 바이너리 로그 파일명 |
Read_Master_Log_Pos |
IO 스레드가 현재 읽고 있는 마스터DB바이너리 로그 파일의 로그 포지션 |
Relay_Log_File |
SQL 스레드가 최종적으로 읽고 실행한 슬레이브 DB의 릴레이 로그 파일명 |
Relay_Log_Pos |
SQL 스레드가 최종적으로 읽고 실행한 슬레이브 DB의 릴레이 로그 파일의 포지션 |
Relay_Master_Log_File |
Relay_Log_File 값으로 나타나는 릴레이 로그 파일과 연관된 마스터DB의 바이너리 로그 파일명 |
Salve_IO_Running |
IO 스레드가 실행되고 마스터 DB로 정상적으로 접속됬는지 나타냄. |
Slave_SQL_Running |
SQL 스레드가 작동하고 있는지 여부. Yes 또는 No 로 표시됨 |
Replicate_Do_DB |
옵션(replicate_do_db)로 명시된 MySQL의 데이터베이스 리스트 |
Replicate_Ignore_DB |
옵션(replicate_Ignore_db)로 명시된 MySQL의 데이터베이스 리스트 |
Replicate_Do_Table |
옵션(replicate_do_Table)로 명시된 MySQL의 테이블 리스트 |
Replicate_Ignore_Table |
옵션(replicate_Ignore_Table)로 명시된 MySQL의 테이블 리스트 |
Replicate_Wild_To_Table |
옵션(replicate_Wild_To_Table)로 명시된 MySQL의 테이블 리스트 |
Replicate_Wild_Ignore_Table |
옵션(replicate_Wild_Ignore_Table)로 명시된 MySQL의 테이블 리스트 |
Last_Errno |
Last_SQL_Errno 와 같은 값 |
Last_Error |
Last_SQL_Error와 같은 값. |
Skip_Counter |
시스템 변수인 sql_slave_skip_counter의 현재 값을 나타냄 |
Exec_Master_Log_Pos |
SQL 스레드가 읽고 처리한 현재 마스터DB의 바이너리 로그 파일의 포지션으로 다음 번에 수행될 트랜잭션이나 이벤트의 시작을 표시 |
Relay_Log_Space |
존재하는 모든 릴레이 로그 파일의 크기를 합한 값 |
Until_Condition |
마스터DB의 바이너리 로그 파일 또는 슬레이드 DB의 릴레이 로그 파일의 특정 부분까지만 실행하고자 할 때 사용하는 옵션 |
Until_Log_File |
SQL 스레드가 실행하다가 중단시킬 로그파일의 이름 |
Until_Log_Pos |
SQL 스레드가 실행하다가 중단시킬 로그파일의 포지션 |
Master_SSL * |
슬레이브DB가 마스터DB로 연결할 때 사용되는 SSL과 관련된 파라메터 |
Second_Behind_Master |
슬레이브DB의 Replicaton 속도가 느린지를 나타내는 값. 0이면 Replication이 완료된 것이며 0보다 클 경우 Replication 할 데이터가 남아있는것으로 느린것이다.(Lag 이 발생한것이다.) |
[참고자료]
https://dev.mysql.com/doc/refman/5.6/en/show-slave-status.html
2018-04-17 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com
MySQL,복제 모니터터링, Replication monitoring, show slave status, DB복제, MySQL 복제
'MySQL, MariaDB' 카테고리의 다른 글
MySQL/MariaDB Sort 모니터링 (0) | 2019.03.24 |
---|---|
MySQL/MariaDB Select 모니터링 (0) | 2019.03.24 |
Run the MySQL with Docker (0) | 2019.03.24 |
MySQL/MariaDB Handler 모니터링 (0) | 2019.03.24 |
MySQL/MariaDB Connection 모니터링 (0) | 2019.03.24 |