mariadb 46

MySQL PMM(Percona Monitoring and Management) 소개 및 설치

MySQL PMM(Percona Monitoring and Management) 소개 및 설치 l Version : MySQL, MariaDB, PMM PMM은 Percona Monitoring and Management의 약자로 PostgreSQL 및 MySQL, MongoDB를 위한 오픈소스 데이터베이스 모니터링 및 관리 솔루션이다. 이를 통해 데이터베이스 시스템의 상태를 관찰하고, 동작의 새로운 패턴을 탐색하고, 문제를 해결하고, 온프레미스나 클라우드 어디에 있든 데이터베이스 관리 작업을 수행할 수 있다. PMM은 데이터베이스와 해당 호스트로부터 수천 개의 기본 성능 지표를 수집한다. 그리고 웹 UI 대시보드를 제공하여 데이터를 시각화 한다. 추가 기능에는 데이터베이스 상태 평가를 위한 조언을 제공..

MySQL, MariaDB 2023.08.22

MySQL Galera Cluster + ProxySQL에서 Galera Cluster 특성을 고려한 R/W 호스트 그룹 설정 하기

MySQL Galera Cluster + ProxySQL에서 Galera Cluster 특성을 고려한 R/W 호스트 그룹 설정 하기 l Version : MySQL, MariaDB, Galera Cluster, ProxySQL 2.X Galera Cluster (이하 “갈레라 클러스터”)는 다중 마스터 동기 복제를 제공하는 솔루션으로 DB 간의 직접적인 데이터 공유가 없는 형태의 오픈소스 고가용성 솔루션이다. 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터로 제공된다. ProxySQL은 여러 데이터베이스에 대해 동일한 커넥션을 재사용할 수 있도록 멀티 플렉싱 기능과 쿼리를 분석하여 Write/Read를 분산하는 등 다양한 기능을 제공하는 솔루션이다. l ProxySQL 이란 ..

MySQL, MariaDB 2023.08.10

MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기

MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기 l Version : MySQL, MariaDB, Galera Cluster Galera Cluster (이하 “갈레라 클러스터”)는 다중 마스터 동기 복제를 제공하는 솔루션으로 DB 간의 직접적인 데이터 공유가 없는 형태의 오픈소스 고가용성 솔루션이다. 현재 갈레라 클러스터는 MySQL Percona Xtradb 클러스터와 MariaDB 두 가지 버전을 지원한다. 특히 MariaDB에서는 Galera Cluster를 공식적으로 지원한다. 이번 포스트에서는 갈레라 클러스터의 개념과 장단점에 대해서 알아본다. 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터로 제공된다. 갈레라 클러..

MySQL, MariaDB 2023.08.07

MySQL/MariaDB Sort Buffer

MySQL/MariaDB Sort Buffer · Version : MySQL, MariaDB MySQL/MariaDB에서는 데이터를 정렬(ORBER BY)하기 위해 별도의 메모리 공간을 할당하는데 이때 사용되는 메모리가 Sort buffer이다. 이 메모리는 정렬이 필요할 경우에만 할당되며, 쿼리 실행이 완료되면 시스템으로 즉시 반납된다. Soft buffer의 크기는 시스템 설정 변수인 sort_buffer_size로 조정 할 수 있다. sort_buffer_size는 byte단위로 표시된다. show variables where Variable_Name like '%sort_buffer%'; 정렬해야하는 데이터의 크기가 작은 경우에는 Sort buffer 만으로 충분할 수도 있지만, 정렬해야하는 데..

MySQL, MariaDB 2019.09.20

MySQL/MariaDB Full Table Scan

MySQL/MariaDB Full Table Scan · Version : MySQL, MariaDB Full Table Scan은 인덱스를 사용하지 않고 테이블 데이터를 처음부터 끝까지 읽어서 요청 작업을 처리하는것을 의미한다. MySQL 및 MariaDB에서는 아래와 같은 조건일때, Full Table Scan을 사용한다. · 테이블의 레코드 건수가 적어서 인덱스를 통해 읽는것보다 직접 테이블을 읽는것이 더 빠르다고 판된될때 (일반적으로 매우 적은페이지( 1페이지)일때) · WHERE절이나 ON절에 사용할 수 있는 인덱스가 없을 경우 · 인덱스 레인지스캔을 사용할 수 있는 쿼리라 하더라도 옵티마이저가 판단한 조건 일치 레코드 건수가 너무 많은 경우 테이블 전체를 읽는 작업은 많은 디스크 읽기 오버헤드..

MySQL, MariaDB 2019.09.19

MariaDB 히스토그램 (옵티마이저가 실행계획 생성시 참고하는 데이터 분포 정보)

MariaDB 히스토그램 (옵티마이저가 실행계획 생성시 참고하는 데이터 분포 정보) · Version : MariaDB 10.0 히스토그램은 테이블의 컬럼값의 분포를 분석할 수 있는 통계 정보이다. 히스토그램 정보가 없는 경우에는 하나의 컬럼에서 유니크한 값의 개수에 기반해서 대략적인 분포도를 예측하는 형태로 실행 계획의 비용이 계산되었다. 이 또한 인덱스가 생성된 컬럼에 대해서만 유니크한 개수가 관리되었다. 이처럼 히스토그램이 관리되지 않으면 컬럼에 대한 데이터 분포를 잘 못 예측하여 옵티마이저가 잘못된 실행 계획을 생성할 수도 있다. 히스토그램 기반 통계는 옵티마이저가 선택한 쿼리 계획을 개선하기 위한 메커니즘으로 MariaDB 10.0 버전에서 도입되었다. 이전까지는 실행계획을 생성할 때 인덱싱 되..

MySQL, MariaDB 2019.09.18

MySQL/MariaDB ROW Size Limit

MySQL/MariaDB ROW Size Limit · Version : MySQL 5.7 SQL Server에서 사용하던 일부 데이터를 MySQL 서버로 마이그레이션 작업 진행중, 컬럼수가 많은 (또는 컬럼의 길이가 큰 테이블) 테이블이 MySQL에서는 아래와 같은 오류와 함께 테이블이 생성되지 않는 문제가 발생하였다. Error Code: 1118. Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. 해당 원인을 찾아본 결과, SQL Server의 경우 한 페이지의 크기가 8K로 고정이 되어있고, Row..

MySQL, MariaDB 2019.07.20

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL)

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) · Version : SQL Server 2016, AWS Aurora, Maria ODBC 3.0 최근 다양한 DB환경이 구성되면서 DW(Data Warehouse)를 구축할 때, ETL 작업 또한 이기종 DB (데이터베이스가 다른 종류간의 ETL) 작업이 증가하는 추세이다. 필자는 현재 다양한 데이터베이스를 구축 운영하고 있으며 MySQL 에서 MS SQL 로 ETL과정중 예기치 못한 데이터 오류가 많이 발생 하였다. AWS에 있는 Aurora (MySQL 5.6) 데이터 원본에서MS SQL Server로 ETL하는 과정에서 Decimal값이 정상적으로 표시되지 않고 /100 값으로 변환되어 ..

MySQL/MariaDB Memory 모니터링

MySQL/MariaDB Memory 모니터링 · Version : MySQL 5.7.21, Ubuntu 16.0.4 Memory 사용률은 모든 운영체제에서 중요한 모니터링 지표이다. 다양한 어플리케이션이 서버에서 실행되면서 실제 물리메모리를 초과하는 메모리 요구가 발생할 수 있기 때문에 메모리 모니터링도 중요하다. 실제 데이터베이스의 경우 메모리가 부족하여 성능저하가 크게 발생하는 경우가 많다. 아래 명령어는 Unbuntu Linux에서 5초 간격으로 메모리 사용량을 확인하는 명령이다. watch -n 5 free –m 리눅스는 메모리의 효율적인 운영을 위해 전체 메모리에서 미리 Buffers + Cached 값을 자동으로 할당해 놓는다. 만일 어플리케이션에서 메모리가 필요할 경우 Cached에 할당된..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB CPU 모니터링

MySQL/MariaDB CPU 모니터링 · Version : MySQL 5.7.21, Ubuntu 17.4 CPU 사용률은 모든 운영체제에서 가장 중요한 모니터링 지표이다. 이번 포스트는 기본적인 CPU 모니터링 방법에 대해서 살펴본다. 리눅스에서는 다양한 명령어를 사용하여 CPU 사용률을 확인할 수 있다. · Top 명령을 사용한 CPU 모니터링 : http://sqlmvp.kr/221024130336 기본적으로 CPU 사용량을 확인하기 위해서는 mpstat명령을 사용할 수 있다. 일반적으로 데이터베이스의 경우 시스템을 독립해서 사용하기 때문에 대부분의 CPU 사용량은 CPU System, CPU User, CPU IOwait 이 차지한다. mpstat [IOwait 높은 경우] CPU 사용량이 높으..

MySQL, MariaDB 2019.03.24