■ Statement Event 테이블Perofmance Schema 계측기에서 명령문 실행을 보여줍니다. 명령문 이벤트는 이벤트 계층 구조의 높은 레벨에서 발생합니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트, 트랜잭션(Transaction) 이벤트, 명령문(Statement)와 같은 레벨의 이벤트입니다. • 설정방법다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다.mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'statement/%';+-----------------------------------..
■ Stage Event 테이블Performance Schema 계측기 도구중 단계(Stage)는 명령문 구문 분석, 테이블 열기 또는 파일 정렬 작업 수행과 같은 명령 실행 프로세스를 보여줍니다. 스테이지는 SHOW PROCESSLIST에 의해 표시되거나 INFORMATION_SCHEMA.PROCESSLIST 테이블에 표시되는 스레드 상태에 해당합니다. 상태 값이 변경되면 Stage가 시작되고 끝납니다.이벤트 계층 구조 내에서 대기(Wait) 이벤트,트랜잭션(Transaction) 이벤트, 명령문(Statement) 이벤트와 같은 레벨에 존재합니다. • 설정방법다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다.m..
■ Wait Event 테이블 종류Performance schema에서 대기(waits) 도구는 시간이 걸리는 이벤트를 보여줍니다. 이벤트 계층 구조 내에서, 대기 이벤트는 스테이지(Stage) 이벤트, 명령문(Statement) 이벤트, 트랜잭션(Transaction) 이벤트와 같은 레벨의 이벤트입니다. • 설정방법mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/%';+----------------------------------------+---------+-------+| NAME | ENABLED | TIMED |+---------..
■ Setup Tablessetup_actors : 새로운 포그라운드 스레드(foreground threads : 접속 클라이언트 혹은 서버)에 대한 모니터링을 초기화하는 방법setup_consumers : 이벤트 정보를 보내고 저장할 수 있는 대상setup_instruments : 이벤트를 수집 할 수있는 계측된 개체의 클래스setup_objects : 모니터링해야하는 개체setup_timers : 현재 이벤트 타이머 ■ Instance Tables▶︎ cond_instances 테이블 : 조건 동기화 개체 인스턴스cond_instances 테이블은 서버가 실행되는 동안 성능 스키마에 표시되는 모든 조건을 나열합니다. 조건은 특정 이벤트가 발생했음을 알리기 위해 코드에서 사용되는 동기화 메커니즘으로,이..
■ performance schema 상태 모니터링다음과 같은 쿼리로 performance schema의 상태를 확인할 수 있습니다.mysql> SHOW STATUS LIKE 'perf%';+-----------------------------------------------+-------+| Variable_name | Value |+-----------------------------------------------+-------+| Performance_schema_accounts_lost | 0 || Performance_schema_cond_classes_lost | 0 || Perfo..
■ mysqlpump 소개mysqlpump 클라이언트 유틸리티는 논리 백업을 수행합니다. 논리백업을 수행할 때 백업을 테이블 하나하나 순차적으로 백업하는게 아니라 동시에 쓰레드를 여러개 생성하여 병렬로 백업을 받게 됩니다. 그만큼 속도가 빠릅니다.지금부터 mysqlpump의 특징에 대해 알아보겠습니다. ■ mysqlpump 기능• 덤프 프로세스의 속도를 높이기 위해 데이터베이스 및 데이터베이스 내 개체의 병렬 처리• 덤프 할 데이터베이스 및 데이터베이스 개체 (테이블, 저장 프로그램, 사용자 계정)를보다 효과적으로 제어• 사용자 계정을 mysql 시스템 데이터베이스에 삽입하는 대신 계정 관리 명령문 (CREATE USER, GRANT)으로 덤프• 압축 된 출력 생성 기능• 진행률 표시기 (값은 추정치 임..
MySQL에는 여러가지 Timeout 종류가 있습니다. 세션에서, 서버에서 혹은 접속시도중이나 기타 여러가지 상황에서의 Timout값이 존재합니다. 각 파라미터마다 특성이 있는데 이 관계를 잘 이해하고 설정해야 원치않는 상황에서 갑자기 세션이 종료되는 상황을 방지하거나, 필요없이 오래 접속되어 있는 세션을 종료시킬 수 있습니다. 이 Timeout 파라미터의 종류들에 대해 알아보겠습니다. * connect_timeout : mysqld 서버가 접속실패로 응답하기 전에 연결 패킷을 기다리는 시간( 초). 기본값은 10 초입니다. connect_timeout값을 늘리면 클라이언트에서 Lost Connection 오류가 자주 발생하는 경우 도움이 될 수 있습니다. Lost connection to MySQL s..
MySQL 서버는 작업에 대한 정보를 제공하는 많은 상태 변수를 유지합니다. SHOW [GLOGL | Session] Status 문을 사용하여 변수와 값을 볼 수 있습니다. 선택적 글로벌 키워드는 모든 연결에 걸쳐 값을 집계하고 Session(세션)은 현재 연결에 대한 값을 표시합니다. mysql> SHOW GLOBAL STATUS; +-----------------------------------+------------+ | Variable_name | Value | +-----------------------------------+------------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Bytes_received | 155372598 | |..
MySQL 서버는 다른 SQL 모드에서 작동 할 수 있으며 sql_mode 시스템 변수의 값에 따라이 모드를 다른 클라이언트에 다르게 적용 할 수 있습니다. DBA는 사이트 서버 운영 요구 사항과 일치하도록 전역 SQL 모드를 설정할 수 있으며 각 응용 프로그램은 세션 SQL 모드를 자체 요구 사항으로 설정할 수 있습니다. 모드는 MySQL이 지원하는 SQL 구문과 수행하는 데이터 유효성 검사에 영향을줍니다. 따라서 다른 환경에서 MySQL을보다 쉽게 사용하고 다른 데이터베이스 서버와 함께 MySQL을 사용할 수 있습니다.+ SQL 모드 설정+ 가장 중요한 SQL 모드+ SQL 모드의 전체 목록+ 조합 SQL 모드+ 엄격한 SQL 모드+ IGNORE 키워드와 엄격한 SQL 모드의 비교+ MySQL 5..
■ InnoDB 트랜잭션 그리고 잠금 정보 모니터링3개의 InnoDB INFORMATION_SCHEMA 테이블을 사용하여 트랜잭션을 모니터링하고 잠재적인 잠금 문제를 진단할 수 있습니다.• InnoDB 트랜잭션 사용 및 잠금 정보• InnoDB 잠금(Lock) 그리고 잠금대기(Lock-wait) 정보• InnoDB 트랜잭션 및 잠금 정보의 지속성 및 일관성 + INNODB_TRX : 트랜잭션 상태 (예 : 실행 중인지 또는 잠금 대기 중인지 여부), 트랜잭션 시작 시점, 트랜잭션이 실행중인 특정 SQL 문을 포함하여 InnoDB 내에서 현재 실행중인 모든 트랜잭션에 대한 정보를 제공합니다. + INNODB_LOCKS : 다른 트랜잭션이 잠금을 해제하기를 기다리는 InnoDB의 각 트랜잭션 (INNODB_..
■ MySQL 서버 파라미터 특징 MySQL서버 환경을 설정할 때 몇가지 특징이 있습니다. 이 특징들에 대해 알아보고 파라미터를 어떻게 설정하고 적용하는지 알아봅니다. ■ 서버 파라미터의 Dynamic적용 여부MySQL 파라미터는 바로 적용할 수 있는 파라미터와 서버를 재시작해야 적용되는 파라미터가 있습니다.이 파라미터는 다음 페이지에서 확인 가능합니다. 한글로 번역해 놓았습니다. 보기가 편리하시리라 생각합니다.Dynamic 항목에서 Dynnamic이 YES면 바로 적용이 가능하며 NO이면 서버가 재시작 되어야 적용이 됩니다.MySQL 파라미터 한글번역 : https://github.com/myacelink/MySQL ■ my.cnf 기본 위치우분투나 CentOS등의 리눅스 운영체제에서 데이터베이스를 사..
■ INNODB_METRICS 테이블INNODB_METRICS 테이블은 InnoDB 성능 및 리소스 관련 카운터에 대한 정보를 제공합니다.INNODB_METRICS 테이블 컬럼은 다음과 같습니다.mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts" \G*************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 46273 MAX_COUNT: 46273 MIN_COUNT: NULL AVG_COUNT: 492.26595744680..