일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- opensource
- ROLLBACK
- REDIS
- mongo
- NCP
- Maria
- OD
- online ddl
- 성능테스트
- maxclients
- Docker
- jmeter
- cdb
- NOSQL
- Cloud DB for MySQL
- Replication
- InnoDB
- mysql
- RDS
- Connection
- vacuum
- postgresql
- 6.2.7
- MyISAM
- slack
- RDBMS
- zabbix
- DML
- ncloud
- autovacuum
- Today
- Total
목록MySQL & Maria (52)
개인 공부
MySQL에서 슬로우 쿼리를 모니터링 하다 보면 해당 쿼리가 임시 테이블이나, 소팅, 스캔 등을 어떻게 했는지 확인이 필요할떄가 있다. Ex) DB 서버에서 sorting 작업이 많이 발생하는게 모니터링 되었는데 어떤 쿼리에서 발생하는지 알고 싶을때 Performance_schema를 통해서도 어느정도 가능하지만 Performance_schema의 경우 DB 시작 부터 현재까지 쌓이는 값이기 떄문에 특정 시점에 많이 발생한 쿼리를 발견하기는 쉽지 않다. Log_slow_extra? 기본적인 슬로우 쿼리 정보 ( Duration / Lock time / Rows sent 등 ) 이외에 해당 쿼리에 대한 상태 정보들을 확인할수 있게 해준다. ( 임시 테이블 생성 / 정렬 작업 / 풀스캔 작업 등.. ) D..

가끔 대용량 작업을 LIMIT 처리 없이 작업을 하다가 이슈가 발생하게 되었을 때 해당 SESSION을 KILL 하는 경우들이 발생한다. 이때 DML 작업 시간이 길었던 만큼 ROLLBACK 작업이 길어지는데 이때 해당 테이블에 DML, DDL작업이 불가능하게 되며 이로 인해 서비스 문제가 발생하게 되는 경우가 있다. ROLLBACK 시간을 산정하여 이슈에 어떻게 대처할지를 선택 해야 한다. EX) ROLLBACK을 기다릴지, 새로운 장비를 사용할지 등등 이번엔 Rollback이 완료 되는데 얼마큼의 시간이 걸리는지 확인하는 방법에 대해 작성해 보려 한다. DMLRollback 데이터를 쌓기 위해서 적당히 큰 테이블에 전체 UPDATE 수행[test]> update lee_test set reason=..
음.. 이번에는 쿼리를 짤때 자주 사용되는 AND / OR 논리 연산에 대한 우선 순위에 대해 작성해보려고 합니다. 많은 분들이 잘 알고 계시겠지만 이 우선순위에 의해서 원하는 결과 값이 아닌 다른 값이 나올수 있다는 점!!! AND / OR ? AND: 두 조건이 모두 참인 레코드를 검색 OR : 두 조건중 하나라도 참인 레코드 예제 쿼리를 통해 AND / OR 연산자의 우선 순위를 보겠습니다. 1. 2페이지에 해당하는 데이터중 Title에 'Test'가 포함된 데이터 select * from ( select rownum rn, bro, title, wirter from board where title like '%Test%' and rownum 10; 2. tit..

오늘은 MySQL MyISAM 엔진의 테이블들을 InnoDB 엔진의 테이블로 변경하는 내용에 대해서 포스팅할 예정입니다. MySQL Dev에 작성된 지침들을 확인해 보면서 진행하도록 하겠습니다. https://dev.mysql.com/doc/refman/8.0/en/converting-tables-to-innodb.html MySQL :: MySQL 8.0 Reference Manual :: 15.6.1.5 Converting Tables from MyISAM to InnoDB 15.6.1.5 Converting Tables from MyISAM to InnoDB If you have MyISAM tables that you want to convert to InnoDB for better reliabi..
모니터링 스크립트 TOP을 이용해서 MySQL의 Top10 Thread_OS_ID 확인 Thread_OS_ID를 이용하여 MySQL Query 수행 Thread_OS_ID, Processlist_ID, Query 출력 실행 시 password 변수 변경하여 사용 [root@db-test1 ~]# cat lee.sh #!/bin/bash password='wl@2020Toaxj' ### Search Top10 MySQL Thread_OS_ID lee=`top -b -n 1 -H -p \`ps -ef | grep mysqld | grep -v "mysqld_safe" | grep -v "grep" | awk '{print $2}'\` | grep -v "Threads\|top\|KiB\|%Cpu(s)\|PI..
MySQL 5.7 이후부는 Online DDL을 지원하게 되었습니다. Online DDL시 장애를 줄이기 위해서 알아두면 좋은 환경설정에 대해 포스트팅 해보도록 하겠습니다. ■ Online DDL시 아래 작업들이 발생하게 됩니다. - online ddl시 row log buffer에 DDL이후의 데이터 변경사항을 저장하게 된다. - row log buffer는 sort_buffer_size 시스템 변수에 정의된 크기만큼씩 할당하며, 최대 innodb_online_alter_log_max_size 만큼 증가하게 된다. - innodb_online_alter_log_max_size ⇒ ONLINE DDL 중 DML문을 적재하는 Size 이다. 대부분 ONLINE DDL 중 해당 파라미터를 1G로 설정하고 진..
MySQL를 운영하다 보면 DIsk 교체나 특정이유로 인해 데이터 디렉터리 경로를 변경하는 경우가 있습니다. 오늘은 데이터 디렉토리를 변경하는 방법에 대해 포스팅해 보겠습니다~ ■ 현재 Datadir 확인 1. MYSQL 들어가서 확인 mysql> select @@datadir; +-------------+ | @@datadir | +-------------+ | /data/data/ | +-------------+ 1 row in set (0.00 sec) 2.ps로 확인 [root@maria ~]# ps -ef | grep mysql root 6412 1 0 Feb20 ? 00:00:00 /bin/sh /mysql/bin/mysqld_safe --user=mysql mysql 6959 6412 0 F..
■ Opening Tables? Trying to open a table. Usually very quick unless the limit set by table_open_cache has been reached, or an ALTER TABLE or LOCK TABLE is in progress. 테이블을 열려고 합니다. table_open_cache에 의해 설정된 한계에 도달하거나 ALTER TABLE 또는 LOCK TABLE이 진행 중이 아니라면 일반적으로 매우 빠릅니다. ■ 결론 Opening Table State의 경우 Table_open_cache < open_tables 상태이며 새로운 Table이 open될떄 발생하게된다. 해결방안 show global status where variabl..