2015/07/16 245

MySQL/MariaDB 복제구축

MySQL/MariaDB 복제구축 Version : Mariadb 5.5.4.2-WinX64 MySQL/MariaDB 복제구축 방법에 대해서 알아본다. 복제를 구축하기 위해서는 최소 2대의 서버가 준비되어 있어야 한다. [복제 구축 전 준비 사항] MySQL/MariaDB는 설치되어 있는가? 복제에 사용할 포트는 열려 있는가? (기본 포트 3306) Slave에서 사용할 계정은 생성되어 있는가? 바이너리 로그는 활성화 되어 있는가? Master, Slave의 Server-id는 고유한가? 이번 실습에서는 Master 서버의 호스트명이 'KSW_2012_2' 이며 포트는 Master, Slave 모두 기본 포트 3306을 사용하였다. [복제 설정 준비] 복제를 구축하기 전에 복제에 사용할 수 있도록 바이너..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB Connection 관련 설정 변수

MySQL/MariaDB Connection 관련 설정 변수 Version : Mariadb 5.5.4.2-WinX64 MySQL/MariaDB 서버에서 커넥션 관련 설정 변수와 현재 설정되어 있는 값을 확인하고 이 항목이 어떤 의미를 뜻하지는지 알아본다. 설정 가능한 변수 목록은 show variables 명령을 사용하여 확인 할 수 있다. show variables; max_connections : MySQL 서버가 최대한 허용할 수 있는 클라이언트의 연결 수를 제한하는 설정이다. max_connection 값을 수천 수만으로 늘릴수록 MySQL 서버가 응답 불능 상태로 빠질 가능성이 높아지며 이 설정값을 낮출수록 MySQL 서버가 응답할 수 없게 될 확률이 줄어든다. 이 설정은 동적으로 변경할 수 ..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB Memory 관련 설정 변수

MySQL/MariaDB Memory 관련 설정 변수 Version : Mariadb 5.5.4.2-WinX64 MySQL/MariaDB 서버에서는 메모리 관련된 설정이 중요하다. MySQL에서 스토리지 엔진별로 주요 메모리 공간이 공유되지 않기 때문에 사용하는 스토리지 엔진에 맞게 메모리 사용을 제한하는 것이 중요하다. 여기에서는 중요한 변수 몇 가지만 소개한다. 자세한 내용은 공식 매뉴얼을 참고한다. 설정 가능한 변수 목록은 show variables 명령을 사용하여 확인 할 수 있다. show variables; innodb_buffer_pool_size : 디스크에서 데이터를 메모리에 캐싱함과 동시에 데이터의 변경을 버퍼링하는 역할을 수행한다. 일반적으로 전체 메모리의 50% ~ 80%까지 설정하..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 프로세스 강제 종료

MySQL/MariaDB 프로세스 강제 종료 Version : Mariadb 5.5.4.2-WinX64 특정 스레드에서 실행 중인 쿼리나 커넥션을 종료하는 방법에 대해서 알아본다. 현재 실행 중인 쿼리는 SHOW PROCESSESLIST 명령어로 확인 할 수 있다. 실행 중인 쿼리 리스트에서 ID 컬럼의 값은 접속된 커넥션의 요청을 처리하는 고유한 키 값으로 사용된다. MySQL/MariaDB 현재 실행중인 쿼리 보기 : http://sqlmvp.kr/220362742203 show processlist; 프로세스를 강제로 종료하기 위해서는 KILL 명령어를 사용한다. 아래 명령어는 Query ID가 3인 스레드의 쿼리만 강제로 종료하는 명령이다. kill query 3 아래 명령어는 Query ID 가..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 현재 실행중인 쿼리 보기

MySQL/MariaDB 현재 실행중인 쿼리 보기 Version : Mariadb 5.5.4.2-WinX64 현재 실행중인 쿼리 목록 및 명령어를 확인 할 수 있다. 모든 쿼리를 보기 위해서는 root 권한이 필요하다 show full processlist; ID : MySQL 서버의 스레드 ID, 쿼리나 커넥션을 종료시킬 때 식별자로 사용할 수 있다. User : 클라이언트가 MySQL 서버에 접속할 때 인증에 사용한 사용자 계정 Db : 클라이언트가 기본으로 사용하고 있는 데이터베이스 이름 Command : 해당 스레드가 현재 어떤 작업을 처리하고 있는지 표시 Time : Command 컬럼에 표시되는 작업이 얼마나 실행되고 있는지 표시 State : Command 컬럼에 표시되는 내용이 대분류 이면..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 로그 저장기간 변경

MySQL/MariaDB 로그 저장기간 변경 Version : Mariadb 5.5.4.2-WinX64 앞에서 MySQL/MariaDB에서 로그를 기록하는 방법에 대해서 다루었다. MySQL/MariaDB 에러로그파일 : http://sqlmvp.kr/220356876146 MySQL/MariaDB 제네럴 로그 파일 : http://sqlmvp.kr/220357319171 MySQL/MariaDB 슬로우 쿼리 로그 : http://sqlmvp.kr/220357383281 이렇게 남겨진 로그를 주기적으로 관리하지 않으면 로그의 크기가 계속해서 증가하여 시스템의 디스크 공간부족 등 문제가 발생할 수 있다. 로그의 저장기간을 변경하여 로그기록으로 인한 장애를 방지할 수 있도록 한다. 로그 저장기간을 변경하는 ..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 슬로우 쿼리 로그

MySQL/MariaDB 슬로우 쿼리 로그 Version : Mariadb 5.5.4.2-WinX64 슬로우 쿼리 로그는 설정에서 정의된 시간보다(second) 오랫동안 실행 된 쿼리에 대해서 기록을 한다. 슬로우 쿼리 로그는 MySQL/MariaDBrk 쿼리를 실행 한 후 실제 소요된 시간을 기준으로 슬로우 쿼리 로그에 기록 여부를 판단하기 때문에 정상적으로 실행이 완료되고 실행 시간이 정의된 시간보다 큰 경우 기록된다. 슬로우 쿼리 로그 파일은 설정파일(my.ini 또는 my.cnf)에서 [mysqld]항목에 다음 명령을 추가한다. 아래 예제는 C:/Program Files/MariaDB 5.5/data/ 폴더에 Slow_Query.log 이름으로 슬로우 쿼리를 기록한다. 그리고 슬로우의 기준을 1초..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 제네럴 로그 파일 (General log file)

MySQL/MariaDB 제네럴 로그 파일 (General log file) Version : Mariadb 5.5.4.2-WinX64 제네럴 로그 파일은 MySQL/MariaDB에서 실행되는 모든 쿼리의 내용이 기록 된다. 제네럴 쿼리 로그는 실행되기 전에 요청을 받는 즉시 기록되기 때문에 쿼리 실행 중 오류가 발생해도 일단 로그 파일에 기록 된다. 제네럴 로그 파일은 설정파일(my.ini 또는 my.cnf)에서 [mysqld]항목에 다음 명령을 추가한다. 아래 예제는 C:/Program Files/MariaDB 5.5/data/ 폴더에 log_query.dat 이름으로 제네럴 로그를 기록한다. log=C:/Program Files/MariaDB 5.5/data/log_query.dat 쿼리를 실행하고..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 에러로그파일

MySQL/MariaDB 에러로그파일 Version : Mariadb 5.5.4.2-WinX64 에러로그파일은 MySQL/MariaDB가 실행되는 도주에 발생한 에러나 경고를 출력하여 기록하는 파일이다. 에러로그파일의 위치는 별도로 지정하지 않았다면 설정파일의 datadir 파라메터에 설정된 경로에 .err 확장자로 생성된다. 편집기에서 에러로그파일을 열어보면 다양한 에러가 기록된 것을 확인할 수 있다. 에러로그 경로 및 파일명을 변경하는 방법은 설정파일(my.ini 또는 my.cnf)에서 [mysqld]항목을 수정한다. 아래 예제는 C:/Program Files/MariaDB 5.5/aaa 폴더에 log_error.log 이름으로 로그파일을 기록한다. log-error=C:/Program Files/M..

MySQL, MariaDB 2015.07.16

MySQL/MariaDB 프로시저 생성, 수정, 삭제

MySQL/MariaDB 프로시저 생성, 수정, 삭제 Version : Mariadb 5.5.4.2-WinX64 스토어드 프로시저와 함수는 MySQL 5.0부터 추가된 기능이다. 프로시저를 포함한 스토어드 프로그램을 사용할 때에는 프로시저의 끝을 정확히 알 수 있도록 SQL의 구분자를 변경해 주어야 한다. 일반적으로 MySQL의 구분자는 ";" 문자가 프로그램의 끝을 의미한다. 하지만 스토어드 프로시저 내에서는 수 많은 ";"를 포함하므로 프로시저의 끝을 정확히 알 수가 없다. CREATE 명령의 끝을 정확히 판별 할 수 있도록 별도의 구분자를 문자열로 지정하여 사용한다. 명령의 끝을 알려주는 종료문자 변경은 DELIMITER 명령어를 사용한다. 아래 예제는 종료문자를 ";;" 변경한다. DELIMITE..

MySQL, MariaDB 2015.07.16