database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27195 게시물 읽기
No. 27195
로드 밸런싱, 동기화, Replication?
작성자
고재철
작성일
2007-11-26 21:10
조회수
5,097

로드 밸런싱은 서버 부화를 막기 위해 여러대의 서버로 분산처리하는 방식인걸로 알고있구요..

동기화는 여러서버의 디비가 서로 같은 디비를 가지게 만드는걸로 알구있구요..

insert, update, delete가 같이 이루어진다는 거겠죠..

replication기능은 동기화기능을 말하는것 같고....


제가 본이 아니게 MySQL을 사용해서 2대에서 최대 10대까지의 서버를 

가지고 분산처리를 시켜야 할 일이 생겼습니다..

그런데 제가 아직 이쪽에 관련해서 지식이 많이 부족해서..

검색을 해서 찾아봐도.. 도저히 머리로 입력이 안되네요..;;


어떤식으로 Master와 Slave를 구성해야 할지.. standby? 잘 모르겠지만.. 서버의 상태? 를 어떤식으로 유지해야 하는지

insert, update, select문을 어떻게 분산시켜야 좋은지 

App에서 해야할일과 MySQL 설정을 어떻게 변경시켜주어야 하는지 아직까지 감이 안오고 있습니다..

물론 기초적인 지식은 책이나 다른 정보를 찾아서 공부를 해야겠지만..


실전에서 주로 구축하시는 모델링?이나 염두해보고 작업해야할 사항들이 궁금합니다..

그럼 고마운 답변들을 기다리고 있겠습니다 ...

이 글에 대한 댓글이 총 4건 있습니다.

제가 아는 얄팍한 지식에 의하면

가장 기본적인 DB replication architecture가 1 : m 구조입니다. 즉, 하나의 master에 여러개의 slave가 붙는 구조이지요... 
master의 my.cnf에 slave를 지정해주는 영역이 있는데 거기에 여러개의, 중복되지 않는 id를 가진 slave를 지정해 주면 되고, 각각의 slave의 my.cnf에는 정해진 하나의 master를 지정해 주면 되겠지요.  이 구조하에서는
 insert와 update, delete 관련 쿼리는 모두 master로 가고 select 쿼리는 모두 slave로 갑니다. master서버에서 변경된 데이터는 복제를 통해 모든 slave에 반영되겠지요. 

select쿼리를 여러개의 slave로 분산시키기 위해 load balancer(LB)라는 하드웨어가 하나 있어야 합니다. 소프트웨어적으로도 할 수 있지만 분산능력은 더 떨어지겠지요, 아마도.

DB replication architecture에는 이외에도 pyramid, dual-master, ring 형태 등 여러가지가 있으며 자신에 맞는 형태로 만들면 됩니다.

google에서 "DB replication"라고 검색해 보면 관련 정보를 찾을 수 있을 겁니다.

clay님이 2007-11-27 16:27에 작성한 댓글입니다.
이 댓글은 2007-11-27 16:29에 마지막으로 수정되었습니다. Edit

답변감사드립니다.


기본적인으로 my.cnf 에서 master와 slave를 설정하고

다른 설정은 변경하지 않는다면 master에서는 write가. slave에서는 read가 된다는 말씀이시군요


그러면 우선적으로 실제 사용에서 write와 read의 비율이 얼마나 되는지 확인을 하고 맞는 모델을 구현하면 되겠군요.


LB라는 장치에 대해서도 따로 알아봐야겠네요..




고재철님이 2007-11-27 17:11에 작성한 댓글입니다. Edit

잘못 이해된 부분이 있는 것 같아서 추가합니다....
이 작업은 db단과 웹단으로 나눌 수 있는데요....
db단에서는 master/slave에 my.cnf를 설정하면-설정해야하는 변수가 몇개됩니다. - master에서 slave로 새로운,변경된, 삭제된 정보가 slave에 있는 db에도 모두 복제가 된다는 의미구요...   
웹단에서는 update/insert/delete등의 write쿼리는 프로그램상의 처리를 통해 master로 보내야 하구요... select등이 read 쿼리는 slave쪽으로 보내야 한다는 얘기입니다. slave로 read 쿼리를 보낼 때 slave가 여러개 있으므로 LB를 쓰면 좋다는 얘기입니다.

복제 관련 책이나 웹검색을 하시면 좋은 정보를 찾을 수 있을 겁니다.

clay님이 2007-11-28 13:37에 작성한 댓글입니다.
이 댓글은 2007-11-28 13:38에 마지막으로 수정되었습니다. Edit

답변감사드립니다.

사장님의 압박이 심하네요;;

고성능 서버를 벌써 두대나 구입해버리셨어요;;

아직 잘 모르는데 ㅠㅠ..

서버 구성시 염두해 두어야할 사항들에 대해서 조언 부탁드립니다.

고재철님이 2007-11-29 21:28에 작성한 댓글입니다.
이 댓글은 2007-11-29 21:30에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
27198쿼리튜닝 하는데요 .ㅡㅜ
ㅇㅇ
2007-11-28
2416
27197#HY000Out of memory (Needed 16777224 bytes) 에러가 계속 생깁니다. 제발 도움좀... [2]
최영식
2007-11-28
2910
27196질문드릴께요 [1]
초보자
2007-11-28
2497
27195로드 밸런싱, 동기화, Replication? [4]
고재철
2007-11-26
5097
27194[질문] 급합니다.Mysql한글 깨지는문제입니다. [1]
지나는이
2007-11-26
3637
27193root로 연결이 안되요... 궁금합니다. [1]
이동섭
2007-11-23
2498
27192Access to MySQL변환시 일어나는 문제 [2]
디크
2007-11-22
2537
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다