MySQL & Maria
-
MariaDB / MySQL은 현재 Version에서 Online DDL을 지원한다. Replication 상태에서 Master DB에 사이즈가 큰 테이블에 DDL이 발생하였을 때 Slave의 상태는 괜찮을까라는 의문이 들었다. TEST를 해본 결과 Online DDL시 Slave의 Seconds_Behind_Master 값( Slave가 Master에 비해 얼만큼 늦는가 ) 이 높아지는 것을 확인할 수 있었다. percona에서 만든 pt-online-schema-change를 사용하게 되면 Seconds_Behind_Master를 조절하면서 Online DDL을 수행할 수 있다. ■ 1. 일반 Online DDL - 일반적인 DDL로 ALGORITHM=INPLACE / LOCK=NONE 사용 - Ma..
[ Maria ] DDL시 Replication Delay 발생MariaDB / MySQL은 현재 Version에서 Online DDL을 지원한다. Replication 상태에서 Master DB에 사이즈가 큰 테이블에 DDL이 발생하였을 때 Slave의 상태는 괜찮을까라는 의문이 들었다. TEST를 해본 결과 Online DDL시 Slave의 Seconds_Behind_Master 값( Slave가 Master에 비해 얼만큼 늦는가 ) 이 높아지는 것을 확인할 수 있었다. percona에서 만든 pt-online-schema-change를 사용하게 되면 Seconds_Behind_Master를 조절하면서 Online DDL을 수행할 수 있다. ■ 1. 일반 Online DDL - 일반적인 DDL로 ALGORITHM=INPLACE / LOCK=NONE 사용 - Ma..
2022.04.26 -
MySQL 5.6부터 Online DDL을 사용할 수 있게 되었고 인덱스 칼럼 추가/삭제 등 이렇게 Online DDL이 지원하게 되면서 pt-online-schema-change tool을 사용하지 않고도 서비스 중단 없이 DDL을 수행할 수 있게 되었다. 이번에는 Online DDl에서 VARCHAR Column을 변경할때 발생할 수 있는 문제 상황을 테스트해보았다. ■ VARCAHR Size Extension - https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html The number of length bytes required by a VARCHAR column must remain the same. For VARCHA..
[ MySQL ] Online DDL - VarcharMySQL 5.6부터 Online DDL을 사용할 수 있게 되었고 인덱스 칼럼 추가/삭제 등 이렇게 Online DDL이 지원하게 되면서 pt-online-schema-change tool을 사용하지 않고도 서비스 중단 없이 DDL을 수행할 수 있게 되었다. 이번에는 Online DDl에서 VARCHAR Column을 변경할때 발생할 수 있는 문제 상황을 테스트해보았다. ■ VARCAHR Size Extension - https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html The number of length bytes required by a VARCHAR column must remain the same. For VARCHA..
2022.04.12 -
MariaDB MaxScale은 MariaDB 서버의 고가용성, 확장성 및 보안을 확장하는 동시에 기본 데이터베이스 인프라에서 분리하여 애플리케이션 개발을 단순화하는 데이터베이스 프록시입니다. read / write 분산이 필요한 아키텍처에서 MaxScale을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다. ■ 서버 hostname IP Version master 192.168.100.23 10.2 slave 192.168.100.20 10.2 maxsclae 192.168.100.21 2.5 ■ Maxsclae 설치 - Maxscale 2.5 Version 설치 [root@maxscale ~]# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_re..
[Maria] Maxscale GUI 설치MariaDB MaxScale은 MariaDB 서버의 고가용성, 확장성 및 보안을 확장하는 동시에 기본 데이터베이스 인프라에서 분리하여 애플리케이션 개발을 단순화하는 데이터베이스 프록시입니다. read / write 분산이 필요한 아키텍처에서 MaxScale을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다. ■ 서버 hostname IP Version master 192.168.100.23 10.2 slave 192.168.100.20 10.2 maxsclae 192.168.100.21 2.5 ■ Maxsclae 설치 - Maxscale 2.5 Version 설치 [root@maxscale ~]# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_re..
2022.03.22 -
MySQL & Maria DB Innodb_buffer_pool 사용량은 성능에 중요한 Point가 된다. 사용량이 높게되면 Disk I/O가 발생하게 되고 성능이 떨어지게된다. Innodb_buffer_pool_size는 DOCS에서는 physical memory의 80%로 하는것을 말하고있지만 Real MySQL에서는 50%로 한후 모니터링하며 바꿔나가는 것이 좋다고 한다. https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables de..
[ MySQL & Maria ] Innodb_buffer_pool 사용량 조회MySQL & Maria DB Innodb_buffer_pool 사용량은 성능에 중요한 Point가 된다. 사용량이 높게되면 Disk I/O가 발생하게 되고 성능이 떨어지게된다. Innodb_buffer_pool_size는 DOCS에서는 physical memory의 80%로 하는것을 말하고있지만 Real MySQL에서는 50%로 한후 모니터링하며 바꿔나가는 것이 좋다고 한다. https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables de..
2022.03.21 -
MRTE2 ( MySQL Real Traffic Emulator )는 카카오에서 효율적인 MySQL 운영을 위해 개발한 opensource tool입니다. MRTE는 실서비스용 MySQL 서버의 트래픽을 수집하는 MRTE-Collector와, 수집한 데이터를 테스트용 MySQL 서버에서 재현하는 MRTE-Player 두 개의 툴로 구성되어 있습니다. 특히 MRTE-Collector는 Go로 작성되어 Go로 네트웍 프로그래밍을 하려는 개발자들에게 유용할 것입니다. ■ MRTE 실행 순서 MongoDB 시작 MRTECollector 시작 MRTEPlayer 시작 각 컴포넌트 재시작 시 MRTEPlayer만 재시작하는 경우, MRTEPlayer가 재시작되는 경우 마지막 실행했던 Event를 기억하지 못한다. ..
MRTE ( MySQL Real Traffic Emulator )MRTE2 ( MySQL Real Traffic Emulator )는 카카오에서 효율적인 MySQL 운영을 위해 개발한 opensource tool입니다. MRTE는 실서비스용 MySQL 서버의 트래픽을 수집하는 MRTE-Collector와, 수집한 데이터를 테스트용 MySQL 서버에서 재현하는 MRTE-Player 두 개의 툴로 구성되어 있습니다. 특히 MRTE-Collector는 Go로 작성되어 Go로 네트웍 프로그래밍을 하려는 개발자들에게 유용할 것입니다. ■ MRTE 실행 순서 MongoDB 시작 MRTECollector 시작 MRTEPlayer 시작 각 컴포넌트 재시작 시 MRTEPlayer만 재시작하는 경우, MRTEPlayer가 재시작되는 경우 마지막 실행했던 Event를 기억하지 못한다. ..
2022.01.21 -
MySQL은 5.7과 8.0 간에 바뀐 기능들이 많이 있다 그중에 Auto_Increment도 포함되어있다. ■ MySQL 5 Auto_Increment 동작 방식 - InnoDB Table에 Auto_Increment 속성을 추가하게 되면, 해당 Count 값들은 메모리 기반으로 관리되게 된다. - 따라서 DB가 재기동되면 Insert 구문을 실행하는 시점에 InnoDB는 해당 Table의 Auto_increment Column의 MAX 값을 조회하게 되고 해당 값에 +1을 하여 Insert를 하게 된다. - 때문에 Auto_increment의 값이 유니크하게 증가되지 않고 삭제 후 DB 재기 동시 삭제된 값이 재사용되는 문제가 발생한다. ■ MySQL 8 Auto_Increment 동작 방식 - My..
[MySQL] MySQL 5 vs 8 ( Auto_increment )MySQL은 5.7과 8.0 간에 바뀐 기능들이 많이 있다 그중에 Auto_Increment도 포함되어있다. ■ MySQL 5 Auto_Increment 동작 방식 - InnoDB Table에 Auto_Increment 속성을 추가하게 되면, 해당 Count 값들은 메모리 기반으로 관리되게 된다. - 따라서 DB가 재기동되면 Insert 구문을 실행하는 시점에 InnoDB는 해당 Table의 Auto_increment Column의 MAX 값을 조회하게 되고 해당 값에 +1을 하여 Insert를 하게 된다. - 때문에 Auto_increment의 값이 유니크하게 증가되지 않고 삭제 후 DB 재기 동시 삭제된 값이 재사용되는 문제가 발생한다. ■ MySQL 8 Auto_Increment 동작 방식 - My..
2021.12.23 -
해당 글의 튜닝은 최소 하루 이상 운영해 본 뒤에 하는것을 추천한다. ■ 병렬 슬레이브 스레드 - 병렬 슬레이브 스레드로 더 성능을 향상할 수 있다. ( 보장을 할 수는 없지만, 나빠지지는 않는다.) - 계산방법은 물리적인 코어 * 4개의 Thread를 두는 것이다. ex ) 서버의 코어가 8코어라면 wsrep_slave_threads 는 32 가된다. - * 이값은 wsrep_cert_deps_distance 값 이상으로는 설정하지 않는다. https://galeracluster.com/library/kb/parallel-slave-threads.html Setting Parallel Slave Threads — Galera Cluster Documentation Setting Parallel Slav..
[Maria] Galera Cluster 성능 튜닝해당 글의 튜닝은 최소 하루 이상 운영해 본 뒤에 하는것을 추천한다. ■ 병렬 슬레이브 스레드 - 병렬 슬레이브 스레드로 더 성능을 향상할 수 있다. ( 보장을 할 수는 없지만, 나빠지지는 않는다.) - 계산방법은 물리적인 코어 * 4개의 Thread를 두는 것이다. ex ) 서버의 코어가 8코어라면 wsrep_slave_threads 는 32 가된다. - * 이값은 wsrep_cert_deps_distance 값 이상으로는 설정하지 않는다. https://galeracluster.com/library/kb/parallel-slave-threads.html Setting Parallel Slave Threads — Galera Cluster Documentation Setting Parallel Slav..
2021.12.06 -
■ 갈레라 클러스터 장점 - 진정한 다중 마스터 : 아무 때나 어떤 노드에서도 읽기와 쓰기가 가능하다. - 동기적 복제 : 슬레이브 지연이 없고 노드 충돌 시에 데이터 손실이 없다. - 일관적인 데이터 : 모든 노드는 같은 상태를 유지한다. - 멀티스레드 슬레이브 : 어떠한 워크로드에서도 더 나은 성능을 가능케한다. - 상시 대기 : 장애 극복 시 downtime이 없다. - 읽기와 쓰기 스필릿이 필요 없다 : 읽기와 쓰기 요청을 스플릿할 필요가 없다. - 자동 노드 복제 : 노드를 추가하거나 유지 관리를 위해 종료 할 때 증분 데이터 또는 기본 데이터를 수동 백업할 필요 없시 Galera Cluster는 자동으로 온라인 노드 데이터를 가져온다. ■ 갈레라 클러스터 단점 - 동기적 복제이다 보니 클러스터..
[ MARIA ] Galera Cluster 구성■ 갈레라 클러스터 장점 - 진정한 다중 마스터 : 아무 때나 어떤 노드에서도 읽기와 쓰기가 가능하다. - 동기적 복제 : 슬레이브 지연이 없고 노드 충돌 시에 데이터 손실이 없다. - 일관적인 데이터 : 모든 노드는 같은 상태를 유지한다. - 멀티스레드 슬레이브 : 어떠한 워크로드에서도 더 나은 성능을 가능케한다. - 상시 대기 : 장애 극복 시 downtime이 없다. - 읽기와 쓰기 스필릿이 필요 없다 : 읽기와 쓰기 요청을 스플릿할 필요가 없다. - 자동 노드 복제 : 노드를 추가하거나 유지 관리를 위해 종료 할 때 증분 데이터 또는 기본 데이터를 수동 백업할 필요 없시 Galera Cluster는 자동으로 온라인 노드 데이터를 가져온다. ■ 갈레라 클러스터 단점 - 동기적 복제이다 보니 클러스터..
2021.12.03