반응형

MySQL 12

mariadb(mysql) 이중화 구성

이전에 클러스터 구축에 대한 내용을 정리했는데, 오늘은 이중화 구성을 정리해 보겠습니다. 클러스터로 구성하는게 이중화 구성 보다는 많은 장점이 있다고 생각하지만 쓰임새에 따라 필요한 경우도 있어서 정리를 해봤습니다. 이중화를 구성하는 여러 방법들이 있지만 여기서는 가장 심플한 구성의 이중화를 정리해 보겠습니다. 지금부터 master db를 M, slave db를 S라고 지칭하겠습니다. Replication 절차 mariadb(mysql)은 이중화 과정을 살펴보면 M에 event가 발생하면 M은 S와 복제를 위해 생성해둔 binary log file에 DB업데이트와 동시에 기록을 해둡니다. 그리고 S는 자신이 M의 binary log 몇 번째 위치의 데이터를 마지막으로 가져왔는지 기록했다가 M의 binar..

Collo - slideshare 링크 공유

Collo를 좀 더 알기쉽게 전달하기 위해 개요 및 샘플들을 제작하여 SlideShare에 공유 중입니다. 이 글에서도 링크를 추가하여 계속 업데이트 하도록 하겠습니다. https://www.slideshare.net/winninghabit/collo-01-kr Collo -01 , kr Collo를 소개합니다! https://github.com/blackwitch/Collo www.slideshare.net https://www.slideshare.net/winninghabit/collo-02-kr 불러오는 중입니다...

Collo - 실시간 마이그레이션 툴

한동안 회사에서 진행한 Data Warehouse(이하 DW) 및 통계시스템 구축이 최근 완료되었습니다. 그리고 데이타를 저장한 Database(이하 DB) 종류, 저장된 로그의 파일 포멧 그리고 서버 위치도 다른 데이터들을 한 곳으로 손쉽게 모으기 위해 만들었던 천 줄 내외의 Javascript 코드를 정리해서 Collo라는 이름으로 github에 며칠 전 공개하게 되었습니다. Collo의 주 목표는 실시간으로 누적되는 데이터를 해당 시스템의 부하없이 DW로 가져오는 것이었으며, 마이그레이션에 대한 모든 기능을 포함한 솔루션이 아닌 손쉽게 수정, 조작 가능한 작은 유틸리티 제작을 목표로 한 프로젝트였습니다. 그리고 데이타를 가져오는 성능 보다는 안정성에 더 중점을 두어 제작하였습니다. 그리고 유지보수를..

mariadb 시작 오류

It may not be safe to bootstrap the cluster from this node. It was not the last one to leave th..mariadb 테스트 중에 위와 같은 오류가 나서 찾아봤다. 3대에 galera 설정해서 클러스터 구성하여 사용 중이었다. centos7 mariadb 10 사용 중. 다른 서버들은 모두 정상 가동 중이었고, 한 대만 문제가 발생한 상태. netstat -na | grep 3306으로 포트를 확인하니 죽어있고 systemctl start mariadb로 재가동이 안되어 systemctl status mariadb.service로 확인하니 위와 같은 에러가 발생한 상태. 설치된 폴더 (/var/lib/mysql)로 가서 galera.c..

Galera 포트 리스트 및 용어 정리

mariadb와 galera를 사용하여 클러스터 구성하는데 두 번째 node부터 실행이 안되서 찾아보니 포트가 다 안열린 것! http://galeracluster.com/documentation-webpages/firewallsettings.html 3306 : mysql client connections 을 위한 포트4567 : UDP와 TCP 둘 다 사용하는 Galera Cluster 복제 트래픽, 다중 복제를 위한 포트4568 : Incremental State Transfer(변경된 상태 전송) 를 위한 포트4444 : State Snapshot Transfer(전체 상태 전송) 를 위한 포트 Donor (제공자) : 원래 데이터를 가진 기준 노드Joiner (가입자) : Donor로부터 데이터..

logstash와 mysql 연동

ES에서 제공하는 결과물은 대부분 멋지지만 가끔 odbc의 기능들이 필요한 경우가 있다. (X-pack을 사용하면 sql like query가 가능하지만 비용이 ..) kibana 등에서는 결과를 실시간 쿼리를 통해 보기 때문에 반응성이 항상 아쉽다. 이런 저런 이유로 리포트용 솔루션을 별도 구축하게 되었다. 만드는 김에, 일부 sql query가 필요한 경우를 위해, 필요한 로그들을 ES로 보냈다가 가져오기는 추가적인 절차가 필요해서, logstash에서 ES로 보내면서 필요한 일부분만 바로 mysql에 직접 보내기로 했다. 플러그인을 만들어야 하나 찾아보니... https://www.elastic.co/guide/en/logstash/current/input-plugins.html >> input에는..

nodejs와 couchbase, mysql 연동

게임 관리툴(mysql 연동)/로그 시스템(couchbase 연동) 제작하면서 같이 정리함. * 일단 node.js를 설치한다. (http://www.nodejs.org/)* express 패키지를 설치한다. (command line 에서 "npm install express" 입력!) : 설치하고 나서 npm list installed에 express 안나오네? 일단 node_modules에 들어가면 설치된 것을 확인할 수 있음.* 집에서 하고 있는 거라 DB는 xampp 에 있는 mysql 사용. 가동 편하고 인스톨 편하고, 이미 설치되어 있고...* node-mysql 모듈 설치 ("npm install mysql")* couchbase는 여기서 다운로드 (http://www.couchbase.co..

mysql query browser 세션 문제

쿼리브라우져를 사용할 때, 새로운 편집 창을 열면 새로운 세션이 생성됨. 그래서 편집 창을 열었다가 뭔가 하고 닫기를 반복하면, 세션이 계속 생성되어, max_connections 개수를 초과하는 문제가 발생할 수 있다. 거기다 wait_timeout을 길게 잡아두면 더 쉽게 걸림. sp를 줄줄이 수정하다가 문제가 생기는 경우가 있음. 주의하자.!!

mysql sp에서의 조회하는 컬럼명에 @를 붙이는 실수

예를들어 sp를 사용할 때, 내가 조회하는 테이블에 seqIndex라는 컬럼이 있고, 쿼리문은 아래와 같다고 가정한다. insert into tbTable_Backup (seqIndex) select @seqIndex from tbTable where index=@inp_index; tbTable과 tbTable_Backup은 같은 구조로 되어 있으며, tbTable은 seqIndex bigint 컬럼 하나만 가지고 있다고 가정한다. 위 쿼리에서 원래는 서브쿼리인 select문은, 아래의 코드가 원래 의도했던 바다. insert into tbTable_Backup (seqIndex) select seqIndex from tbTable where index=@inp_index; 이 경우, Query Bro..

mysql Query Browser에서 sp가 모두 사라짐 현상 확인

쿼리 브라우져에서 sp가 안보이는 현상 발생. CentOS , Mysql. 5.6.x, [발생 상황]- sp를 실시간으로 수정하기 위해 sp 수정해서 실행을 누름. - 때마침 DB 부하 테스트 중이었는데 ... - sp 수정을 위한 실행이 멈춤. 응답없음으로 돌변- 시스템 재부팅 해봄. - 디스크 용량 부족을 확인함.- 디스크 정리. 이제 다른 DB는 다 보이는데, 내가 작업하던 DB만 안보임. show procedure status 때려보니 일단 존재는 함. 휴~~~ show create procedure sp이름; 해보니 내용도 잘 존재함. 휴~~~ 근데 왜 쿼리 브라우져에서는 sp가 안보이는거지?? --;; 리플레쉬하니 나오네.. ㅋ

반응형