2013년 8월 27일 화요일

몽고 db 교육 3일차

1. ERD 실습


2. 로지컬 아키텍쳐
Database -> Collections -> Extents -> Data Records -> Documents
extent 최소 단위는 4KB. 8KB가 기본크기. 사용자 지정 가능
db.createCollection("컬렉션명", {capped:false, size:extent 사이즈})
익스텐트 안에있는 데이터레코드는 도큐먼트와 네임스페이스 정보가 있음.


3. 메모리
하드디스크 버추얼 메모리영역을 사용하지 않음. 메모리를 직접 사용.
서비스 구동시 최소의 메모리영역만 할당받으며 점점 늘려가능 형식
메모리의 95%이하까지만 사용. 
자동화된 알고리즘에 의해 메모리를 제어하므로 직접 제어할 필요가 없음.
Segment Fault는 반드시 발생하지만 지속적으로 높은 수치로 나타나면 안된다. 튜닝필요함.
 -> Mapped File(0, 1 파일 등)의 최대크기가 2GB인 경우 요구되는 메모리는 10~12GB일 경우가 안정적인 성능을 보장한다.
 -> 싱글모드에 한함


4. Lock
현재 컬렉션 락을 제공.


5. GridFS


6. 샤딩(sharding) - 분산
 - 분산된 데이터를 로드밸렁싱을 통해 성능향상 및 효과적 관리의 장점을 제공함.
 - 리플리카(replica) - 복제

 분산서버 개녕
 - shard server : 최소 2대, 3대가 적정.
  mongod --shardsvr --dbpath c:\mongodb\shard1  --port 40001
  mongod --shardsvr --dbpath c:\mongodb\shard2  --port 40002
  mongod --shardsvr --dbpath c:\mongodb\shard3  --port 40003

 - config server : 최소 1대, 3대가 적정.
  mongod --configsvr --dbpath c:\mongodb\config1  --port 50001
  mongod --configsvr --dbpath c:\mongodb\config2  --port 50002
  mongod --configsvr --dbpath c:\mongodb\config3  --port 50003

 - 라우터 서버(mongos-process) : balancer. 분산수행
  mongos --configdb localhost:50001,localhost:50002,localhost:50003 --port 50000 --chunkSize 1

- 그 후 
mongo localhost:50000/admin     // 라우팅서버에 접속
db.runCommand({addshard : "localhost:40001"}) //샤드 등록
db.runCommand({addshard : "localhost:40002"})
db.runCommand({addshard : "localhost:40003"})
db.runCommand({enablesharding:"test"}) //test db의 shard 기능을 활성화

use test
db.things.ensureIndex({empno:1}) // 인덱스를 반드시 생성한다.

use admin
db.runCommand({shardcollection:"test.thing", key:{empno:1}}) //인덱스를 기준으로 샤딩이 이루어진다.

use test
for(i=0; i<1000000; i++) db.things.save({empno:i, ename:"test", sal:100}) //데이터 입력 테스트

- 라우팅 서버에서 for룹으로 데이터를 insert시 샤드서버에 청크단위로 저장됨. 8개이상의 청크가 저장되면 마이그레이션을 수행함.
- 청크의 기본 사이즈는 64MB
- 타서버로 데이터를 복제하는 작업도 있음.
- 샤드서버 추가 및 삭제
 추가 및 삭제가 매우 간편하다.
- 청크사이즈 변경
   db.settings.save( { _id : "chunksize", value : 128 } )  // 청크사이즈를 128MB로 변경

댓글 1개:

  1. [검증완료] MAX88(m88ps.com)

    당신의 판돈은 가상머니가 아닙니다.
    7년운영 안전사이트 소개해드립니다.

    에이전시 상위단계의 국내유일 페이먼트사로
    라이센스는 물론 300억대 마권보험 가입有

    MAX88 주소: m88ps.com
    (별도의 코드없이 가입 가능합니다)

    스포츠북 : 10BET,IBCBET,CMD Sports
    카지노: 아시아게이밍,마이크로게이밍,게임플레이
    슬롯: 게임플레이,마이크로게이밍

    ·페이먼트사로 코드없이 가입가능
    ·슬롯,카지노 모바일 무설치 지원

    한국 외 7개 아시아지역 동시 온라인서비스중!

    MAX88 주소: m88ps.com
    파트너제휴 스카이프 문의: m88partner

    ※ 신규 첫 입금 20% 제공
    ※ 카지노 매일 첫충 15% 롤링2배
    ※ 스포츠 평일 첫충 5% / 주말 10% 롤링1배
    ※ 매일매일 출석이벤트 [4일 연속 출석시 10만 지급]
    ※ 축배팅 등 별도의 배팅 제재 없습니다.
    ※ 신규 첫 입금시 최대 100,000KRW 제공
    ※ 전세계 모든 스포츠 경기 라이브배팅 지원
    ※ 더블찬스 배팅 등 수많은 스페셜배팅 제공

    MAX88 주소: m88ps.com
    파트너제휴 스카이프 문의: m88partner

    답글삭제