MySQL 93

Run the MySQL with Docker

Run the MySQL with Docker · Version : MySQL 5.7, Docker MySQL 5.7 버전을 Docker를 활용해서 빠르게 설치하여 활용하는 방법에 대해서 살펴본다. 이번 포스트에서 다루는 환경 구성은 Windows Host 기반에 Docker(windows버전)를 설치하고 Container로 MySQL5.7 를 실행한다. 이 포스트는 MySQL 설치를 중점으로 다루고 있으며 Docker에 대해서는 다루지 않는다. Docker 설치가 완료 되었으면 Powershell 명령 도구를 실행 한다. 그리고 아래 명령어를 실행 한다. 이 명령은 최신 버전의 mySQL 버전의 컨테이너 이미지를 가져온다. docker pull mysql 아래 명령어를 실행하면 위에서 다운로드 받은 이..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Handler 모니터링

MySQL/MariaDB Handler 모니터링 - Version : MySQL 5.7.21, Ubuntu 16.0.4 MySQL 서버에서 Handler 모니터링 하는 방법에 대해서 알아본다. Handler(핸들러)의 역할은 각 스토리지 엔진에 대해 읽기 또는 쓰기를 요청 한다. 핸들러 모니터링을 통해서 MySQL 쿼리가 스토리지 엔진의 데이터에 접근하는 방식과 패턴을 알 수 있기 때문에 성능 최적화를 위해 필요한 모니터링 지표 이다. 아래 스크립트를 실행하면 핸들러에 대한 모니터링 지표를 확인할 수 있다. show status where variable_name like ‘handler%’ Variable Name Comment Handler_commit 커밋 수 Handler_delete 행을 삭제 ..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Connection 모니터링

MySQL/MariaDB Connection 모니터링 - Version : MySQL 5.7.21, Ubuntu 16.0.4 MySQL 서버에서 connection 모니터링 하는 방법에 대해서 알아본다. MySQL 뿐만 아니라 다른 데이터베이스에서도 connections의 수는 운영과 성능면에서 매우 중요하다. 특히 connection의 개수가 max_connections 값을 초과할 경우 새로운 connection이 할당되지 못하여 어플리케이션이 MySQL 서버에 연결되지 않아 오류가 발생할수 있다. 또한 신규 connection이 할당 될때, 그에 따른 메모리 할당 및 기타 작업이 동반되기 때문에 빈번한 connection 연결 및 해제는 여러가지 성능 문제와도 관련이 있다. MySQL에서 conne..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB QPS(Query per second) 모니터링

MySQL/MariaDB QPS(Query per second) 모니터링 - Version : MySQL 5.7.21, Ubuntu 16.0.4 MySQL 서버에 요청되는 초당 요청량 (Query per Second, QPS)을 모니터링 하는 방법에 대해서 알아본다. 아래 스크립트를 실행하면 현재까지 수행된 Query의 요청에 대해서 확인할 수 있다. 여기에 나타난 값은 누적값이기 때문에, 수집 시간 간격에 따라 산술적 연상이 필요 하다. show global status where variable_name in ( 'questions', 'com_select', 'com_insert', 'com_delete', 'com_update', 'com_replace', 'com_load', 'com_delet..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Binlog Cache and Binlog Cache Size

MySQL/MariaDB Binlog Cache and Binlog Cache Size · Version : MySQL 5.7.21, Ubuntu 16.0.4 MySQL 서버는 바이너리 로그(Binlog)의 내용을 바로 디스크에 쓰지 않고 메모리의 임시 공간을 활용해 버퍼링 한다. 이 공간을 바이너리 로그 캐시 (Binlog Cache)라고 한다. 트랜잭션이 시작 될때 binlog_cache_size에 설정된 용량만큼 메모리를 미리 확보해두고 트랜잭션이 종료(COMMIT, ROLLBACK)되기 전까지 해당 메모리 영역에 트랜잭션을 쓴 다음 트랜잭션이 정상적으로 종료되면 바이너리 로그에 해당 트랜잭션을 쓴다. Binlog Cache 상태 정보는 아래 스크립트로 확인 할 수 있다. show status li..

MySQL, MariaDB 2019.03.24

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

MySQL/MariaDB 서버 상태 모니터링

MySQL/MariaDB 서버 상태 모니터링 · Version : MySQL 5.7.21 MySQL 서버는 MySQL 관리를 위한 전용 유틸리티인 mysqladmin을 기본적으로 제공한다. mysqladmin을 이용하면 MySQL 서버의 주요 설정값과 상태 정보를 쉽게 확인 할 수 있다. mysqladmin의 명령어 위치와 사용형식은 다음과 같다. · 명령어 위치 : /usr/local/mysql/bin/mysqladmin · 사용형식 : mysqladmin –u root –p 명령어 도움말은 mysqladmin –help 명령어로 확인할 수 있다. mysqladmin 에서 ‘status’ 옵션을 함께 사용하면 기본적인 상태 값을 모니터링 할 수 있다. 하지만 여기에 나타나는 결과값은 시간별 값이 아닌 ..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB 서버 커넥션 사용 현황 모니터링

MySQL/MariaDB 서버 커넥션 사용 현황 모니터링 · Version : MySQL 5.7.21 MySQL 서버는 MySQL 관리를 위한 전용 유틸리티인 mysqladmin을 기본적으로 제공한다. mysqladmin을 이용하면 MySQL 서버의 주요 설정값과 상태 정보를 쉽게 확인 할 수 있다. mysqladmin의 명령어 위치와 사용형식은 다음과 같다. · 명령어 위치 : /usr/local/mysql/bin/mysqladmin · 사용형식 : mysqladmin –u root –p 명령어 도움말은 mysqladmin –help 명령어로 확인할 수 있다. mysqladmin 에서 ‘processlist’ 옵션을 함께 사용하면 현재 MySQL 서버의 DB 커넥션 현황과 각 커넥션별 스레드 상태 등을..

MySQL, MariaDB 2019.03.24

MySQL/MariaDB Cluster Index

MySQL/MariaDB Cluster Index · Version : MySQL / MariaDB 인덱스에서 클러스터링은 값이 비슷한 것을 묶어서 저장하는 형태로 구현된다. 이 방법은 주로 비슷한 값들을 동시에 조회하는 경우가 많다는 점에 착안한 것이다. MySQL에서는 InnoDB 스토리지엔진에서 클러스터링 인덱스를 지원한다. (인덱스는 MySQL엔진이 아닌 스토리지 엔진이 담당한다) 클러스터링 인덱스(키 클러스터)는 테이블의Primary key(이하 PK로 표시)에 대해서만 적용되는 내용이다. 즉 PK 값이 비슷한 레코드끼리 묶어서 저장하는 것을 클러스터링 인덱스라고 표현한다. 중요한 포인트는 PK 값에 따라 레코드의 저장 위치가 변경되는데 이 뜻한 해당 레코드의 물리적인 저장 위치가 바뀌어야 한다..

MySQL, MariaDB 2019.03.24