mysql에서 사용되는 성능관련 파라미터 요약 정리를 해보았습니다. ## System variables 동적으로 Set문을 사용하여 설정할 수 있는 파라미터 sort_buffer_size 파일 정렬 버퍼의 크기 제어함. 변수를 높게 설정하고 행 정렬이 필요한 여러 연결이 있는 경우 메모리가 많이 사용됨. 이 값을 너무 낮게 설정해도 디스크 다이브를 수행하여 데이터가 무작위로 검색되기 때문에 더 느릴 수 있음. 쿼리 수정하는 것이 가장 좋으며, Redis와 같은 쿼리 캐싱을 처리하는 도구를 사용하는 것이 효율적. mysql> show variables like 'sort_buffer_size'; +------------------+--------+ | Variable_name | Value | +-----..
안녕하세요 이번글에서는 Mysql or Mariadb에서 쿼리 실행 시간이 설정된 시간 이상으로 걸릴 시 slow query log가 남게됩니다. 하지만 가시성 가독성이 떨어지기 때문에 Percona에서 만든 툴을 이용하여 분석하기 편하게 변환하도록 하겠습니다. PT 쿼리 다이제스트는 MySQL 느린 쿼리를 분석하는 데 사용되는 도구입니다. show processlist 또는 tcpdump에서 캡처한 binlog, 일반 로그, slowlog 및 MySQL 프로토콜 데이터를 분석할 수 있습니다. 분석 결과를 파일로 출력할 수 있습니다. 분석 과정은 먼저 쿼리문의 조건을 매개변수화 한 다음 통계를 위해 매개변수화된 쿼리를 그룹화하는 것입니다. 각 쿼리 의 실행 시간 , 횟수, 비율을 계산할 수 있습니다. 분..
현재 MHA구성으로 manager서버 / master(node1) / slave(node2) 구조입니다. 다운타임을 최소화하여 새로운 노드로 이관을 하며 기존 노드를 뺄 예정이기 때문에 new-node를 node2에 slave로 붙여 chain 구성 후 이관해볼 생각입니다. 전체 순서 new-node를 node2의 slave로 replication 구성 master 노드 제거 -> failover되며 node2가 master로 승격 mha manager에 new-node정보 추가 및 failover 스크립트 수정 mha 재시작 node2 제거 -> failover되며 new-node가 master로 승격 결과 확인 (new-node에 vip가 붙으며 role이 master이면 성공) 테스트 환경 host..
안녕하세요 이번글에서는 MSR(Multi Source Replication)을 구성해보았습니다. 보통 log성으로 많이 사용한답니다. 여러 db의 log를 분석하기 힘드니 한 slave에 모아 한번에 분석하는 느낌(?)이랍니다. MSR 이란 기본 Replication구조에서 확장된 개념으로 Binary Log를 기본으로 하여 각각의 마스터를 CHANNEL로 연결하여 Replicate 하는 구조입니다. 각각의 CHANNEL을 통해 Master / Slave 간 연결을 하고, 이 CHANNEL은 Replication 연결에 사용되는 Thread(IO, SQL, Worker 및 Coordinator 등)들을 관리합니다. 전체적인 틀로 여러개의 Master DB를 1개의 Slave 인스턴스에 연결하여 복제하는 ..
안녕하세요 이번글에선 개발사나 고객사측에서 실수하는일이 없도록 방지차원해서 db앞단에 haproxy 서버를 구성하였습니다. Haproxy 서버를 생성하여 Haproxy의 public IP와 해당 지정 port로 접속하면 MHA구조의 vip로 붙도록 설정할 수 있습니다. VIP로 DB에 접속하게 하여 MasterDB가 down되더라도 Slave로 자동 접속이 가능하도록 할 수 있습니다. DB 앞단에 haproxy서버를 두어 vip를 통해 접속 시 master가 죽었는데 slave를 master로 착각하고 data를 넣는 일을 방지하기 위해 사용하였습니다. Haproxy -Load Balancer로 사용 할 수 있는 오픈소스 -Active Health Check이 가능해 안정적인 운영가능 테스트 환경 Hos..
안녕하세요 이번 글에선 도커를 이용하여 기본 PMM percona 모니터링 서버 구축해보도록 하겠습니다. PMM 이란 PMM은 서버 클라이언트 형태로 MySQL(MariaDB), MongoDB를 모니터할수 있는 플랫폼입니다. PMM Server는 Docker 이미지로 배포됩니다. 따라서 docker 설치 후 컨테이너 생성 • PMM Client : 모니터링하고자 하는 DB서버에 직접 설치한다. 서버정보, DB정보, 쿼리정보등을 수집해 PMM Server로 보내준다. • PMM Server : PMM Client에서 수집된 데이터를 저장하고 이를 이용해 웹기반의 대시보드와 그래프를 보여준다. 공식 문서 https://www.percona.com/doc/percona-monitoring-and-managem..
안녕하세요 이번 글에선 galera cluster의 sysbench 이용하여 대량의 데이터를 insert 시켜 동기화 성능 테스트를 진행해 보겠습니다. 사전 구성 part 1 URL : https://jhdatabase.tistory.com/34 [MariaDB - Galera Cluster 구성] part 1 안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터 jhdatabase.tistory.com part 2 URL : https://jhdatabase.tistory.com/35 [MariaDB - Galera Cluste..
[MariaDB - Galera Cluster 구성] part 1 편에 이어 maxscale 구성을 진행하도록 하겠습니다! 사전 구성 Galera Cluster 설치 Part 1 URL : https://jhdatabase.tistory.com/34 [MariaDB - Galera Cluster 구성] part 1 안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터 jhdatabase.tistory.com Maxscale 갈레라에서 MaxScale은 다수의 MariaDB간에 Read / Write 분산과 모니터링, change ..
안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터입니다. 현재 Galera cluster는 MySQL, MariaDB 그리고 Percona XtraDB 까지도 클러스터를 구성할 수 있습니다. Master Slave 구성의 Replication 과는 다르게 모든 노드에서 Write가 가능합니다. Galera Cluster는 Write-Set Replication API (이하 wsrep api) 를 통해 각 노드와 데이터를 동기화합니다. 장점 모든 노드의 데이터가 일관..
안녕하세요 에러 발생시 카카오톡을 통한 얼롯팅 설정 5-1편에 이어 마지막 설정까지 진행 해보도록 하겠습니다. 사전 구성 카카오톡 Developer 설정 : https://jhdatabase.tistory.com/30 [ Zabbix - 카카오톡 알림 설정 ] part 5-1 안녕하세요 이번 글에선 카카오톡 알림 설정을 진행해보겠습니다. 에러 발생시 카카오에서 제공하는 rest api를 이용하여 zabbix에 등록한 파이썬 스크립트를 돌려 자신의 카카오톡으로 알람이 오 jhdatabase.tistory.com Kakao talk 설정 ■ 토큰 불러오기 토큰 유효기간 확인 ※ access token은 6시간에 한번씩 새롭게 토큰을 발급해줘야하니, refresh token으로 진행 ■ Access token..