본문 바로가기
반응형

전체 글658

MySQL Error_code : 1756 slave_parallel_workers Yesterday I found a strange problem with a database online, and here I recorded the problem discovery and processing. R&D colleagues reported that the data in a database has not been updated since 19:44 (the online service from the library is not applicable, only offline query and statistical data use). But log in to the slave library to find that the master-slave synchronization is normal, the .. 2021. 5. 10.
Mysql : Login-path 설정으로 로그인하기 1. 개요 mysql을 command line에서 로그인을 하려면 "mysql -u 로그인명 -p DB명" 이런식으로 입력하고, 바로 패스워드를 묻고 입력하면 로그인이 된다. 그러나 shell script 등에서 이용하려면 pw 입력때문에 사용하기가 불편해진다. 또는 위의 커맨드에 pw를 노출해야한다. 이럴때에 자동으로 로그인을 할 수 있도록 하는 명령이 바로 login-path 이다. 2. 생성 $ mysql_config_editor set --login-path=설정이름 --host=주소 --user=아이디 --port=포트 --password Enter password: ***** 3. 확인 $ mysql_config_editor print --login-path=설정이름 [myroot] user .. 2021. 4. 29.
log_slow_slave_statements 3. Admin 관련 명령어 혹은 slave 의 sql_thread 에 의해 실행된 명령어중 long_query_time 이상으로 실행된 명령어를 찾는다. log_slow_admin_statements (default : OFF) - http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_log_slow_admin_statements log_slow_slave_statements (default : OFF) - http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_log_slow_slave_statements 기본적으로 slow queries .. 2020. 10. 19.
innochecksum — 오프라인 InnoDB 파일 체크섬 유틸리티 innochecksum 은InnoDB파일에대한 체크섬을 인쇄 합니다. 이 도구는InnoDB테이블 스페이스 파일을읽고, 각 페이지의 체크섬을 계산하고, 계산 된 체크섬을 저장된 체크섬과 비교하고, 손상된 페이지를 나타내는 불일치를보고합니다. 원래는 정전 후 테이블 스페이스 파일의 무결성 확인 속도를 높이기 위해 개발되었지만 파일 복사 후에도 사용할 수 있습니다. 체크섬 불일치로 인해InnoDB실행중인 서버가 의도적으로 종료되기 때문에 프로덕션 서버가 손상된 페이지를 만날 때까지 기다리는 것보다이 도구를 사용하는 것이 좋습니다. 서버가 이미 연 테이블 스페이스 파일에는 innochecksum을 사용할 수 없습니다. 이러한 파일의CHECK TABLE경우 테이블 스페이스 내의 테이블을 확인하는데사용해야합니다. .. 2020. 9. 29.
MySQL login-path 사용하기 MySQL 5.6 쯤부터 보안문제로 커맨드에 비밀번호를 넣을수 없게되었다. Warning: using a password on the command line interface can be insecure. 기존처럼 커맨드에 비밀번호 넣어서 사용하면 이런 메시지를 보게된다. 이럴때 login-path 옵션을 사용하면 된다. #생성 mysql_config_editor set --login-path=설정이름 --host=주소 --user=아이디 --port=포트 --password user$ mysql_config_editor set --login-path=myroot --host=localhost --user=root --port=3306 --password Enter password: ***** #확인 m.. 2020. 9. 29.
MySQL/MariaDB InnoDB(Storage) buffer pool 모니터링 MySQL/MariaDB에서는 다양한 스토리지 엔진을 지원하며 각 스토리지마다 특성 또한 다르다. 각 스토리지 엔진에 대한 특성은 아래 링크를 참고 한다. · Comparison of MySQL database engines : https://en.wikipedia.org/wiki/Comparison_of_MySQL_database_engines 이번 포스트에서는 일반적으로 OLTP 서비스에 많이 사용하는 InnoDB 스토리지 엔진에서 buffer pool(버퍼풀)과 관련한 모니터링 방법에 대해서 알아본다. 아래 스크립트를 실행 하면 InnoDB의 buffer pool에 대한 값을 확인할 수 있다. Show status where variable_name like ‘innodb_buffer%’; Vari.. 2020. 9. 21.
[MariaDB] Master-Slave 설정 [MariaDB] Master-Slave 설정 1. 각 DB에 사용자 추가 (기본적으로 Master서버에만 설정하면되나 Auto-Failover시 누가 Master가 될지 모르기 때문에 동일하게 추가) drop user 'replication_user'@'%'; CREATE USER 'replication_user'@'%' IDENTIFIED BY '비밀번호'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; flush privileges; SELECT host, user, password FROM mysql.user WHERE user='replication_user'; 2. Mater 서버 명령 -- LOCK 설정 FLUSH TABLES WITH.. 2020. 9. 18.
MySQL INNODB Status Monitoring [출처] http://dba-jadelee.blogspot.kr/2014/10/mysql-innodb-status-monitoring.html MySQL INNODB Status Monitoring - 해당 STATUS출력내역은 각 상세내역 설명을 위해 특정장비를 기준으로 특정시점의 결과를 샘플링 - 세부적으로 설명한 부분도 있지만 직관적으로 상태정보를 보여주는 부분은 상세한 설명은 생략함. (이 부분들에 대한 추가적인 질문은 개인별로 문의하세요) - 각 부분에 대한 간략한 기능적 설명이며 모니터링상 중요한 영역에 대한 코멘터리는 각 영역에 대한 설명 마지막 부분에 기재하였음. ----------------------------------------------------------------- SQL> .. 2020. 9. 11.
벨류에셋익스체인지(VAX) 에어드랍 ? 벨류에셋익스체인지(VAX) 에어드랍? - 상장된 거래소 - 플랫타익스체인지 ​ ​ ? 선착순 500명 바나나 우유 지급 ​ ? 스벅 아메리카노 x 200명 추첨지급 ​ ? 이벤트 최다 홍보왕을 찾습니다! ​ 1등 에어팟2 2등 상품권 5만원 3등 도미노 피자 ​ https://bit.ly/2DcawSn ​ ? 이벤트 기간 - 2020.08.31~2020.09.11 - 이벤트 종료 후 최대한 빨리 보내드리겠습니다 ​ ​ VAX 공식 카톡방 참여하기 https://open.kakao.com/o/gzoIpT0 ​ 에어드랍채널 참여하기 https://t.me/honeytip ​ 설문지 작성하기 https://bit.ly/34LYevx ​ #플랫타 #코인로켓 #벨류에셋익스체인지 #VAX #.. 2020. 9. 5.
innodb_flush_log_at_trx_commit = 2를 사용하는 것이 안전할까? 최대 1 초 분량의 트랜잭션을 잃을 수 있습니다. 기본값은 1이며 InnoDB ACID 준수를 유지하는 데 도움이됩니다 . innodb_flush_log_at_trx_commit 의 MySQL 문서에 따르면 innodb_flush_log_at_trx_commit의 값이 0이면 로그 버퍼가 초당 한 번 로그 파일에 기록되고 디스크로 플러시 조작이 로그 파일에서 수행되지만 트랜잭션 커미트에서는 아무것도 수행되지 않습니다. 값이 1 (기본값)이면 각 트랜잭션 커밋에서 로그 버퍼가 로그 파일에 기록되고 디스크로 플러시 작업이 로그 파일에서 수행됩니다. 값이 2 인 경우, 커밋 할 때마다 로그 버퍼가 파일에 기록되지만 디스크로 플러시 작업은 수행되지 않습니다. 그러나 값이 2 인 경우에도 로그 파일의 플러시가 초.. 2020. 8. 25.
MySQL InnoDB 성능 튜닝 기본 InnoDB Architecture InnoDB 를 초기 설정할 때 고려해야할 기본적인 튜닝 파라미터를 소개한다. 위의 InnoDB 아키텍처 그림을 떠올려보면 아래의 5 가지 초기 설정이 왜 중요한지 이해할 수 있을 것이다. innodb_buffer_pool_size innodb_buffer_pool_instances innodb_flush_method innodb_log_file_size * innodb_log_files_in_group innodb_io_capacity 버퍼 풀의 크기 (innodb_buffer_pool_size) 버퍼 풀은 두 가지 역할을 담당한다. 첫번째는 데이터 파일과 로그 파일이 기록되는 순서를 조정하는 역할이고, 두번째는 디스크 액세스를 줄이기 위한 캐시의 역할이다. 시스템(.. 2020. 8. 25.
seq에 맞게 한번에 Rank No 변경하기 정렬에 맞게 해당 SEQ를 변경하고자 할때 사용 SET @rankNo:=0; UPDATE TB_NAME SET rank_no = @rankNo := @rankNo+1 ORDER BY rank_no; 2020. 6. 26.
MySQL UTF8MB4 Charset의 Collation 선택 (대소문자, 전각/반각, emoji 문자 구분) MySQL에서 collation으로 인해 흔히 겪게 되는 문제는 알파벳 대소문자 구분 문제이다. MySQL은 기본적으로 ci(case insensitive) collation을 사용하기 때문에, 알파벳의 대소문자를 동일 문자로 취급하기 때문이다. 하지만 collation의 세계는 여기서 끝이 아니다. collation의 선택에 따라 알파벳 대소문자 구분부터, emoji 문자(4byte utf8)의 구분, 전각/반각 문자의 구분 처리가 다 달라지기 때문에, collation 선택은 매우 신중해야 한다. 다양한 문자를 처리해야 하는 환경(특히 다국어 서비스)에서 문자열을 DB에 저장하고 비교한다면 더욱 collation의 선택에 많은 고민이 필요하다. utf8mb4 charset 기준으로 우리가 선택할 수 .. 2020. 6. 26.
InnoDB 복구 모드 InnoDB 복구 모드 XtraDB / InnoDB 복구 모드는 응급 상황에서 복구하는 데 사용되는 모드입니다. 데이터베이스를 복원해야 할 경우를 대비하여 변경하기 전에 데이터베이스 백업이 있는지 확인해야합니다. innodb_force_recovery의 서버 시스템 변수 복구 모드를 설정한다. 모드 0은 일반적으로 사용되는 반면 모드가 높을수록 제한이 더 엄격합니다. 높은 모드는 낮은 모드의 모든 한계를 통합합니다. 응급 상황을 제외하고 복구 모드를 0 이외의 값으로 설정해서는 안됩니다. 일반적으로 복구 모드는 1로 시작하고 필요한 경우 단일 증분으로 늘리는 것이 가장 좋습니다. 복구 모드 2020. 6. 26.
SQLYOG 커뮤니티 사용시 주의사항 UTF8 언어셋일경우는 문제 되진 않으나 UTF8MB4 사용시에는 프로시져 생성을 UTF8MB4 로 생성해줘야 한다. # 프로시생성을 확인한다 SELECT * FROM mysql.proc WHERE character_set_client='utf8' AND db IN ('DB1','DB2'); SET NAMES UTF8MB4 ; SHOW VARIABLES WHERE `Variable_Name` != "character_sets_dir" AND (`Variable_Name` LIKE "%CHAR%" OR `Variable_Name` LIKE "%COLL%"); 2020. 6. 26.
SQLYOG 커뮤니티 사용시 주의사항 UTF8 언어셋일경우는 문제 되진 않으나 UTF8MB4 사용시에는 프로시져 생성을 UTF8MB4 로 생성해줘야 한다. # 프로시생성을 확인한다 SELECT * FROM mysql.proc WHERE character_set_client='utf8' AND db IN ('DB1','DB2'); SET NAMES UTF8MB4 ; SHOW VARIABLES WHERE `Variable_Name` != "character_sets_dir" AND (`Variable_Name` LIKE "%CHAR%" OR `Variable_Name` LIKE "%COLL%"); 2020. 6. 10.
하위 euckr 파일 utf-8 변환 # 파일 하나 처리 iconv -c -f euc-kr -t utf-8 1.txt > 1..txt # 여러 파일 처리 $ find . -type f -exec iconv -f euc-kr -t utf-8 "{}" -o path/to/destination/"{}" \; ex)find . -type f -exec iconv -f euc-kr -t utf-8 "{}" -o ./"{}" \; 2020. 6. 9.
DB 이중화 솔루션 장단점 비교 MMM ( Multi-Master replication Manager for MySQL ) Multi-Master의 단점을 보완하기 위해서 Manager 장비를 두어 가용성 보장(모니터링) read/write DB와 read DB로 운영 중 Read/write DB에서 장애 발생 시 Manager DB가 이를 감지하여 vip를 read DB로 이동시키는 구조(Failover) 3rd party 제품으로 운영환경에 맞게 shell script 프로그래밍이 필요 MMM 작동순서 Active Master에 장애 발생시 MMM Manager는 장애를 감지하고 Active Master의 접속을 차단(Virtual IP Down)하고 Passive Master로 서비스의 접속(Virtual IP up)을 넘김 FA.. 2020. 5. 18.
하위 디렉토리의 특정 파일 및 디렉토리를 찾아 삭제 $ find . -name '*.tmp' -exec rm {} \; 현재 디렉토리와 하위 디렉토리에서 .tmp로 끝나는 모든 파일을 찾아서 화면에 나타내고 그파일을 모두 삭제합니다. -exec 선택사항은 다음 명령 (rm)을 실행합니다. { } 는 find 명령이 찾은 파일을 의미합니다. 명령 문자열을 끝내는세미콜론 (;) 앞에 ESC 문자로 .. 2020. 5. 14.
MySQL slow query 를 효율적으로 이용해보자! MySQL slow query 를 효율적으로 이용해보자!개요MySQL 은 slow query 를 사용하여, 많은 정보를 얻어낼 수 있다. 하지만, 해당 기능들이 default 로 OFF 로 되어 있어 그냥 지나가는 경우가 많다. slow query 관련한 기능들을 알아보자. Slow query 파일은 쿼리를 튜닝하는데 아주 중요한 요소로 작용하지만, 5.. 2020. 5. 12.
반응형