mysql에서 사용되는 성능관련 파라미터 요약 정리를 해보았습니다. ## System variables 동적으로 Set문을 사용하여 설정할 수 있는 파라미터 sort_buffer_size 파일 정렬 버퍼의 크기 제어함. 변수를 높게 설정하고 행 정렬이 필요한 여러 연결이 있는 경우 메모리가 많이 사용됨. 이 값을 너무 낮게 설정해도 디스크 다이브를 수행하여 데이터가 무작위로 검색되기 때문에 더 느릴 수 있음. 쿼리 수정하는 것이 가장 좋으며, Redis와 같은 쿼리 캐싱을 처리하는 도구를 사용하는 것이 효율적. mysql> show variables like 'sort_buffer_size'; +------------------+--------+ | Variable_name | Value | +-----..
안녕하세요 이번글에서는 mariadb에서 spider엔진을 이용하여 데이터노드에 데이터를 분산하여 입력하는 테스트를 해보겠습니다. 기존의 MySQL의 샤딩은 DB단에서 구현하지 않고, DB 앞단에서 구현을 합니다. Spider 엔진이란 Spider 스토리지 엔진은 샤딩 기능이 내장 된 스토리지 엔진입니다. 파티셔닝 및 xa 트랜잭션을 지원하며 다른 MariaDB 인스턴스의 테이블을 마치 동일한 인스턴스에있는 것처럼 처리 할 수 있습니다. Remote 테이블은 스파이더 엔진이 아닌 MariaDB가 지원하는 모든 스토리지 엔진을 사용할 수 있습니다. 스파이더 엔진을 통한 마스터 노드와 스파이더 노드들의 연결은 Local MariaDB 노드에서 Remote MariaDB노드로 연결설정을 통하여 완성됩니다 Ma..
현재 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..
안녕하세요 고객사에서 mariabackup을 받는데 아래와 같은 error가 떠서 찾아보게 되었습니다. 에러 화면 해당 에러는 작업의 마지막 부분에서 필요한 log file size보다 현재 설정된 size가 더 작으면 mariabackup에 fail가 발생합니다. redo_log_file_size확인 방법 Redo log (from LSN 3183381317949 to 3183385508864 ) was copied 부분을 확인. 3183385508864 - 3183381317949 /1024/1024 => redo_log_file_size를 얼마나 썼는지 확인 할 수있습니다. 해결 방법 ■ 현재 innodb_log_file_size 확인 ## my.cnf innodb_log_file_size=5033..
안녕하세요 이번 글에선 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) 를 통해 각 노드와 데이터를 동기화합니다. 장점 모든 노드의 데이터가 일관..
1편 MHA 구성에 이어 스크립트 생성 및 failover테스트를 진행하도록 하겠습니다. 사전 구성 1편 URL : https://jhdatabase.tistory.com/19 [Mysql - MHA 구성 + VIP생성] part 1 MHA란 Master DB가 장애로 서비스가 불가능한 상태가 되면, 자동으로 failover를 수행하여 slave DB를 master DB로 승격시켜 서비스 다운타임을 최소화 auto failover 솔루션입니다. Master와 Sla.. jhdatabase.tistory.com 테스트 시작 ■ Master ip_online_chanage 설정 [root@jh-mha-manager bin]# cp /root/mha4mysql-manager-0.57/samples/script..