전체 글

'DBA 업무'와 '알게되는 정보'를 기록하는 공간
트랜잭션 격리 수준 기본적으로 트랜잭션은 시작과 끝 사이에서 데이터를 일관성있게 읽어들이는 것을 의미합니다.즉 다른 세션에서 변경된다고 하더라도 커밋이 이루어질때까지 또다른 세션은 변경작업을 확인할 수 없게 됩니다. 그렇지만, 트랜잭션의 격리 수준에 따라 위의 내용은 맞지 않을 수 있습니다.트랜잭션의 격리 수준은 4 단계로 이루어 집니다. 트랜잭션 레벨은 아래에서 확인할 수 있습니다.mysql> show variables like 'tx_isolation'; +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | tx_isolation | READ-UNCOMMITTED | +--..
MySQL 은 실행한 쿼리를 파일 혹은 테이블에 기록하는 기능을 제공합니다. 기록과 관련된 프로퍼티 프로퍼티 설명 general_log 로깅기능의 활성화 여부를 설정 general_log_file 로깅기록시 파일위치 및 명칭을 지정하며, log_output 이 FILE 인 경우 활성화 log_output 로깅기록의 저장장소 TABLE, FILE ,NONE 프로퍼티 설정 값 확인 방법Master-mysql> SHOW VARIABLES LIKE 'general_log%'; +------------------+-------------------------+ | Variable_name | Value | +------------------+-------------------------+ | general_log..
인덱스를 사용하는 이유 책에서 목차라고 생각하시면 편합니다.사용자는 목차를 보고 원하는 페이지를 바로 펼칠 수 있습니다. 즉, 인덱스를 사용하는 가장 큰 이유는 쿼리의 성능을 높이기 위해서 입니다.테이블에 다수의 레코드들이 정렬되어 있지 않고 무작위로 배열되어 있을 때, 특정 데이터를 찾기 위해서는 해당 테이블 전체를 검색해야 합니다.인덱스는 무작위 배열된 데이터를 정렬한 뒤, 필요로 하는 데이터만 가지고 오기 때문에 사용자는 빠른 결과를 받을 수 있습니다. 인덱스 생성시 고려사항 그렇다면 무작정 인덱스를 생성하면 좋을까요?아닙니다.인덱스 종류에 따라 물리적인 공간을 요구하기 때문에 무분별한 인덱스는 오히려 용량만 차지하게 됩니다.또한 옵티마이저는 생성한 인덱스 중 어느 인덱스를 선택해야 비용이 낮은지 ..
원인세션 하나당 할당받을 수 있는 Statement 수가 초과했을 경우 발생합니다. 해결방안MAXIMUM_CONCURRENT_ACTIVITIES 의 프로퍼티 값을 변경합니다. 변경 방법으로는 2가지가 있습니다.1. DB 가 재구동 가능한 경우goldilocks.properties.conf 파일의 MAXIMUM_CONCURRENT_ACTIVITIES 의 프로퍼티 값을 변경한 뒤 재구동합니다. 2. DB 가 재구동이 불가능한 경우SYS 계정으로 접속하여 ALTER SYSTEM 구문을 수행합니다. 이 때는 DEFERRED 옵션을 부여해야 합니다.DEFERRED 는 새로 접속하는 세션에만 해당 프로퍼티를 적용하며, 기존의 세션에 대해서는 이전의 값을 적용합니다.gSQL> ALTER SYSTEM SET MAXIM..
MySQL 은 이중화 기법으로 비동기, 반동기 방식 2가지를 제공한다. 참고로 Goldilocks 에서는 이중화 방식으로 Cyclone 툴인 비동기 방식, Cluster 인 완전한 동기화 방식을 지원합니다. 비동기 방식마스터 측은 슬레이브에 반영되었는지에 대한 여부를 판단하지 않습니다.따라서 네트워크 비용 + 슬레이브 동기화 비용이 빠지기 때문에 사용자는 빠른 응답을 받게됩니다.그러나 만약 네트워크 장애가 발생한다면 마스터와 슬레이브의 갭 차이는 벌어지게 됩니다. 반동기 방식마스터 측은 슬레이브에 릴레이 로그 기록까지를 동기화 범주로 판단합니다.이후 이 로그를 이용하여 슬레이브의 실 데이터베이스 업데이트는 판단하지 않습니다.여기에서는 네트워크 비용 + 슬레이브 동기화 비용이 추가됩니다.그렇지만 장애 발생..
MySQL 소켓 번호를 변경하는 방법을 알아보겠습니다. MySQL 을 설치시 기본 소켓 포트는 3306 입니다.netstat 로 열린 포트를 확인해보면 알 수 있습니다.$ netstat -na | grep 3306tcp6 0 0 :::3306 :::* LISTEN 포트를 변경하는 방법1. my.cnf 파일을 다음과 같이 수정합니다. [mysqld] DSN 으로 되어있는 곳에, port 프로퍼티를 추가 후 값을 설정합니다.[mysqld] port=33072. MySQL 을 재구동 합니다.3. 변경된 포트를 확인합니다.$ netstat -na | grep 3307 tcp6 0 0 :::3307 :::* LISTEN 혹은 ps 로도 확인할 수 있습니다.$ ps -ef | grep 3307mysql 30055 ..
연동환경 서버 OS CentOS Linux release 7.4.1708 DATABASE Goldilocks 3.1.4 r24256 클라이언트 OS Windows 7 DATABASE Client Goldilocks 3.1.4 r24256 win32 DBeaver 4.3.3.1 DBeaver 다운로드 1. https://dbeaver.jkiss.org/ 사이트에 접속합니다.2. Download 탭을 누른 뒤, Windows 32 bit (installer + JRE) 를 클릭하여 다운로드르 진행합니다.3. DBeaver 를 설치합니다. DBeaver 드라이버 및 커넥션 설정 1. 만약 Goldilocks Windows ODBC 32 bit 가 등록되지 않은 경우, http://mozi.tistory.com..
· 후기
작년에서 올해 초에 비해, 지금은 가상화폐의 붐(?)이 많이 가라앉았다고 봐도 될정도인데요.요즘은 다시 리플이 뜨고있네요^^~ 이번에 국내의 가상화폐 거래소와, 해외의 가상화폐 거래소에 대해서 간략이 알아보겠습니다.물론 규제가 없었던 관계로 거래소들이 굉장히 굉장하게 많지만, 그래도 한번쯤은 이름을 들어봤을 법한 곳에 대해서 정리해보려고 합니다. 국내 거래소한국에서의 규제때문에 거래소하기 힘든 환경에서, 그래도 잘 해내주고 있는 거래소들입니다. 빗썸가상화폐의 붐이 일어나기 전부터, 쭈욱 존재해왔던 거래소 입니다.초창기에는 메이저 코인만 취급한다는 컨셉을 가지고 있었지만, 다른 거래소에서 마이너 코인들이 활기치자 슬쩍 같이 포함을 시켰죠?요즘은 빗썸에 비트코인, 리플, 이더리움 등의 많은 마이너 코인들을 ..
· AWS/EC2
EC2 인스턴스에 SSH 접속을 시도하려고 할 때, Permission denied (publickey) 오류메세지가 발생하면서 접속이 되지 않는 경우 해결방법 입니다. 먼저, pem 혹은 ppk 파일을 사용하여 EC2 인스턴스에 세션이 접속해야 합니다.접속 방법은 http://mozi.tistory.com/191 를 참고해주세요. Permission denied(publickey) 해결하기 1. Permission denied 오류로 접속이 되지 않는 상황입니다. 2. pem 혹은 ppk 파일을 사용하여 접속한 세션에서 /etc/ssh/sshd_config 파일을 수정합니다. 3. PasswordAuthentication 파라미터의 값을 yes 로 변경합니다. 4. sshd 규칙을 재구동하여 재설정 합..
· AWS/EC2
새 윈도우 에서 접속할 때마다, 혹은 세션마다 ppk 파일을 등록하는 작업은 여간 번가로운게 아닙니다.이 파일을 사용하지 않고 접속할 수 있는 방법을 정리합니다. 가장 초기에는 ppk 파일을 사용하여 서버에 접속하여야 하며, 접속을 했다고 가정합니다.최초 접속 방법은 http://mozi.tistory.com/191 를 참고해주세요. 파일 없이 접속하기 1. /etc/ssh/sshd_config 파일을 수정합니다. 2. PasswordAuthentication 파라미터 값을 yes 로 변경합니다.3. 저장하고 파일을 빠져나옵니다. ( 못나오시는 분 .. 없겠죠 ?) 4. sshd 규칙을 재시작하여 재설정합니다.명령어가 안먹히는 경우 systemctl restart sshd.service 로 해보세요. 5..
꽁담
꽁담