2015.01.23 14:31

(원문) https://mariadb.com/products/mariadb-maxscale


MariaDB MaxScale을 활용한 유연한 확장성, 고 가용성 그리고 좋은 가변성 DB 서비스


MariaDB MaxScale은 오픈소스이며, DB 중심의 Proxy로 이 제품은 MariaDB Ent/Ent-Cluster, MariaDB 5.5, MariDB 10 그리고 Oracle MySQL에서 작동한다. 이 제품은 유연한 증설과 사용자 추가 기능이 가능하도록 설계된 장착형(Pluggable)으로 설계되어 있다. 가볍고, 빠른 속도 networking core로 처리량을 극대화할 수 있게 제작되었다.MariaDB MaxScale은 클라이언트 제품과 DB 클러스터간의 연결이 가능하고, statement-based 부하분산이 가능하다. 이 제품은 DBA들과 개발자, 그리고 정보 설계자들의 의견을 쉽게 적용할 수 있도록 조직의 DB 하부구조에 대해서 규모를 조절할 수 있도록 되어 있다.


규모조정 (Scalability)

이 제품은 제품의 코드를 변경하지 않으면서도 당신의 DB 하부구조의 규모 조정을 도와준다. MaxScale은 MariaDB Galera Cluster, MariaDB Master-Slave Replication,  그리고 Oracle MySQL Server Replication 위해 연결 기반구조와 성명 기반의 부하분산을 제공한다. 


고가용성(High Availability)

이 제품은 당신에게 계획적이든 계획적이지 않은 연결 중단 동안  downtime이 발생하지 않도록 한다.


개발자 친화적(Developer Friendly)

당신이 MaxScale을 배포할 때도(?), 당신이 제품 재생산 혹은 코드의 변화없이 같은 연결을 통해  당신의 제품이 지속적으로 작동할 수 있도록 해준다.


성능좋은 변환 서비스(Powerful transformative services)

MaxScale의 장착형 설계는 당신의 제품에 변형을 하지 않고도 고유한 DB 서비스의 생성이 가능하다. 이 제품의 확장가능한 설계는 MariaDB Ent유저들에게는 잘 알려진 커뮤니티 맴버들에 의해 만들어진 새로운 플러그인을 활용할 수 있다. 


이 제품의 1.0 버전에 포함된 플러그인 서비스들은 아래와 같은 제품이 있다.


* Continuity during migration : 오래된 제품을 지원하는 쿼리를 변경하면서, 서비스 중단 없이 비동기적으로 제품을 이관할 수 있다.

* Security : 문제가 될만한 쿼리를 차단한다.

* Monitor Query Performance : 병목현상이 발생하는 쿼리를 기록하고 정의한다.

* Cross technology processing : DB, 저장엔진 혹은 제품에 쿼리를 복재한다. 잘 알려진 NoSQL DB나 InnoDB와 같은  트랜젝션 저장 엔진에 데이타를 보낸다.


우리의 유저들을 포함한 이미 개발된 고유의 서비스들에 대한 예


* High Performance Binlog Relay : 통신부하와 복구문제를 해결하기 위한 간단한 전달 서버로 MaxSacle을 통해 master에서 slave로 Binlog를 복제한다. 

* Hint based routing : 복제 혹은 사간 제한에 기반하는 경로를 결정에 영향을 줄 내용들을 SQL내용에 담아 전달한다.   

* Route to sharded databases : 분산 개요(sharding schema)를 위한  제품 단계의 정보 없이 분산할 수 있는 경로 처리

* Hardened Active-Active multi-master replication : 다중 master  구조로 deadlock 상태가 발생하지 않도록 최적화한 Galera 다중 마스터 연결.

* Geo-Replication : MaxScale을 이용한 지리적으로 분산된 데이타 센터들에 복제하는 다중화 고 가용성 클러스터



저작자 표시 비영리 동일 조건 변경 허락
신고
2014.07.02 18:31

쿼리브라우져를 사용할 때,


새로운 편집 창을 열면 새로운 세션이 생성됨.


그래서 편집 창을 열었다가 뭔가 하고 닫기를 반복하면, 


세션이 계속 생성되어, max_connections 개수를 초과하는 문제가 발생할 수 있다. 


거기다 wait_timeout을 길게 잡아두면 더 쉽게 걸림. 


sp를 줄줄이 수정하다가 문제가 생기는 경우가 있음. 


주의하자.!!



저작자 표시 비영리 동일 조건 변경 허락
신고
2014.06.26 21:08

예를들어 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 Browser 든, WorkBench든 문법 오류를 발생하지 않는다.


(컬럼 이름과 변수명이 틀린다고 해도 오류를 발생하지는 않음.)


sp를 사용할 때는 더 황당해 지는데, SQLExecute를 실행해도 오류는 발생하지 않는다.



output 값이 없을 경우, 이런 에러에 대해서는 대처할 방안이 없다. 


또한 output 값이 있어도 정상적인 output값을 리턴하지 않는다.


지정된 output값에는 @seqIndex값이 들어가 있을 것이다. 


output 변수의 이름이 @seqIndex가 아니어도...


단순 오타에서 비롯된 문제긴 했지만, 


mysql에서 어떻게 이런 코드가 output값에 영향을 미쳤는지 찾아봐야 할 듯.









저작자 표시 비영리 동일 조건 변경 허락
신고
2014.05.22 18:45

쿼리 브라우져에서 sp가 안보이는 현상 발생.


CentOS , Mysql. 5.6.x, 


[발생 상황]

- sp를 실시간으로 수정하기 위해 sp 수정해서 실행을 누름. 

- 때마침 DB 부하 테스트 중이었는데 ... 

- sp 수정을 위한 실행이 멈춤. 응답없음으로 돌변

- 시스템 재부팅 해봄. 

- 디스크 용량 부족을 확인함.

- 디스크 정리.


이제 다른 DB는 다 보이는데, 내가 작업하던 DB만 안보임. 


show procedure status 때려보니 일단 존재는 함. 휴~~~


show create procedure sp이름; 해보니 내용도 잘 존재함. 휴~~~


근데 왜 쿼리 브라우져에서는 sp가 안보이는거지??


--;; 리플레쉬하니 나오네.. ㅋ


저작자 표시 비영리 동일 조건 변경 허락
신고
2014.02.05 12:02

로그 위치를 별도 지정하지 않았다면 일반적으로 /var/lib/mysql 에 생성됨.


바이너리 로그는 mysql-bin.0000XX 이런식으로 생성되며, 이 파일을 삭제할 경우가 생긴다면

mysql-bin.index에 기록된 정보도 같이 수정되어야 한다.

(* 이 내용이 일치하지 않으면 실행 안됨.)


바이너리 log 파일은 mysqlbinlog [로그파일명] 으로 볼 수 있으며, 텍스트 파일 형태로 변환할 때는 mysqlbinlog mysql-bin.000001 >> mysqlquerylog.txt 형태로 변경하여 볼 수 있다. 

용량이 크면 split으로 분리할 것!


/etc/my.cnf 에서 innodb_log_file_size의 용량을 수정할 때는 innodb_buffer_pool_size의 25% 이하로 설정해야 함.


innodb_log_file_size옵션값으로 설정되는 파일이 ib_logfile0과 1인데, 해당 옵션의 값을 조정하려면 아래와 같은 순서로 진행해야 한다.


1) mysql 종료

2) ib_logfile0과 1을 이동하거나 이름 변경

3) 옵션값 조정

4) 재시작


기존에 할당된 용량만큼의 사이즈로 이미 할당되어 있기에 옵션만 바꾸면 실행시 에러가 발생한다. 주의할 것!

저작자 표시 비영리 동일 조건 변경 허락
신고
2014.01.08 15:18


(원 출처)http://www.skysql.com/blogs/max-mether/mysql-56-vs-mariadb-100


지원하는 기능들에 대해서 잘 정리되어 있어 공유해둠.



10.0.2가 릴리즈되면 지금 쓰는 mysql5.6을 대체할 예정이었는데 좀 더 고민 중.


mariaDB에 innoDB의 memcached plugin이 아직 존재하지 않는 듯.


빨리 지원되어야 할텐데... 

저작자 표시 비영리 동일 조건 변경 허락
신고
2012.03.15 11:34
DB운영은 DBA가 있는 회사의 경우 크게 신경쓸 부분은 아니지만,

테이블 설계와 인덱스, 쿼리에 대해서는 서버 개발자라면 어느 정도 다루시게 되죠. 

그래서 꼭 알아야 할 몇가지를 정리해 봤습니다. 

혹시 이에 추가 할 내용이 있다면 댓글로 추가해 주시면 같이 정리해서 모아 두겠습니다.

* 테이블 설계
  : 한 컬럼이 8byte넘어설 때 생기는 문제점
  : text/binary 타입 사용시 문제점
  : DB의 PAGE SIZE를 확인, 설계시 주의할 점은 무엇인가

* 인덱스 
  : 클러스터/넌클러스터 인덱스
  : WHERE 이후 절의 내용과 인덱스 설정의 상관관계 
  : 어떤 경우에 인덱스 정보를 주기적으로 갱신할 필요가 있는가

* 쿼리
  : SP를 사용하는 이유,  메모리에 올라가는 시점, DB 재시작(시스템 리붓 등으로) 후 바로 서비스를 하면 발생하는 문제
  : 동적/정적 쿼리의 차이점, SP에서 동적 쿼리를 쓰면 안되는 이유
  : FK의 장단점
  : JOIN 사용시 주의사항 
  : 트리거 연동시 주의사항 

[운영을 직접 해야 할 경우]
* 운영
  : 트랜젝션 로그의 특징
  : 전체 백업과 차등 백업의 차이
  : DB의 실시간 복재시 주의사항 
  : DB 복원시 주의사항

http://cafe.naver.com/ongameserver/6472 
저작자 표시 비영리 동일 조건 변경 허락
신고
2011.12.29 15:37
로컬 계정으로 설정되어 있는 DB의 요소들이 있다면 SA 혹은 특정 SQL 계정으로 전환하던가 

AD 계정으로 설정하여야 한다. 

특히 예약 작업에 대한 변경이 필수라는거 .. 잊으면 안되요! 
저작자 표시 비영리 동일 조건 변경 허락
신고
2011.11.17 11:19
"MS-SQL 서버는 Select(RecordSet) 와 OUTPUT Parameter 동시에 사용할 때 해당 Select(RecordSet) 를 모두 읽어 들여야만 OUTPUT Parameter 에 값이 채워진다."


(출처) 
http://extern.tistory.com/20 

다른거 검색하다가 문득 정리 잘 된 글이 있어서 링크를 걸어본다. 
저작자 표시 비영리 동일 조건 변경 허락
신고
MSSQL
2011.10.18 11:35
"임시 디렉터리를 찾을 수 없거나 디스크 공간이 부족합니다"

아직 sql 2000을 사용하고 있는데 오랜만에 들어가서 매니저를 열려고 하니 위와 같은 에러가 발생하네요. 

시스템 관리자가 temp 디렉토리를 지운 듯... -_-;


환경 변수 찾아가서 windows temp 디렉토리 설정 관련된 옵션을 하나씩 열고 그대로 저장 한번 해주고.. 최종 확인 누르고 나오면 temp 관련된 폴더가 다시 생성됩니다. 

다시 열면 그대로 진행됩니다. 

혹은 진짜 디스크 공간이 없거나.. 0-0


* 찾아보니 MMC 관련된 에러군요. ^^;;

저작자 표시 비영리 동일 조건 변경 허락
신고


티스토리 툴바