2013년 8월 27일 화요일

몽고 db 교육 5일차

5일차 교육

1. 아키텍쳐 튜닝
 - replicaSet clusters 영역과 Functional area 영역은 반드시 분리하라
 - 하나의 인스턴스 보다 샤트 클러스터를 적절히 활용하라
 - 슬레이브 데이이터베이스에는 백업과 레포츠활동을 중지하라
 - 하나의 머신에는 하나의 몽고 인스턴스만 활성화하라

2. 하드웨어 튜님
 - ssd 권장
 - mapped cache area 크기가 2GB인 경우 적정 메모리의 크기는 약 10GB 이다.
 - CPU는 다중CPU 환경에서 구축하라.
 - 분산처리가 가능하게 하라.

3. 인스턴스 튜닝
 - 인덱스의 타입과 갯수는 적절히 하라
 - 최적화된 READ/WRITE가 가능하도록 쿼리를 작성하라
 - 인접성이 높아질수 있도록 설계하고 저장하라.

4. mongoperf 
 - 디스트 I/O 성능을 측정하는 유틸

(실습)
 1) 텍스트파일 생성후 아래와 같이 작성
   {nThreads:16, fileSizeMB:1000, mmf:false, r:true, w:true}     => mmf : memory mapped file
 2) mongoperf > perf.txt   => 실행
 3) 로그확인. 스레드 16개로 READ/WRITE를 수행

5. 백업과 복구
 - 셧다운&파일 백업 - 리스토어
 - fsyncLock/fsyncUnLock&backup - CopyDatabase/CloneDatabase
 - Snapshot Backup - Recovery
 - MongoDump - MongoRestore
 - MongoExport - MongoImport
 - Master/Slave, Replica Backup(OpLog) - Replica Set, Recovery(OpLog)

 - 백업 및 복구단위 - 전체, db별, 컬렉션별 백업
 - 각 컬렉션을 bson으로 백업

 1) mongoDump & mongorestore
 (실습)
  mongodump --db test --collection employees --out c:\mongodb\bin\dump   => --out 옵션을 안주면 bin아래 dump폴더가 디폴트
  mongorestore c:\mongodb\bin\dump --objcheck --drop
   - 유의사항
     dump중 사용자의 CRUD를 놓칠수 있으므로 낮시간에는 --oplog를 넣어준다.

 2) BsonDump
   - 백업 파일 분석.

 3) mongoImport & mongoExport
   - json타입, csv타입, tsv타입(탭구분)

 4) copyDatabase & cloneDatabase
  (실습)
  db.copyDatabase("test", "test2", "localhost")
  - 클론의 경우 다른 서버에서 같은 이름의 db명에서 실행해야함

 5) MongoStat & MongoTop
  - 실시간 모니터링 유틸리티
  - MongoStat - 서버의 모든 액션을 모니터링
  - MongoTop - 모든 컬렉션에서 발생하는 액션을 모니터링

 6) Web monitoring
  - 서버 구동시 --rest 옵션을 주고, http://localhost:28017/ 로 접근
 
 7) 로그 수집
  - 서버 구동시 옵션 추가 => --logpath c:\mongodb\logs\log_20130426.txt

 8) 그 외
  - db.serverStatus()
  - db.stats()
  - db.currentOp()
  - db._adminCommand("connPoolStats")


5. 하둡연동
 (실습) 책보고 실습하기


6. Flume, Fluentd (http://fluentd.org)
 - 로그를 json형태로 수집해주는 로그 수집기.

댓글 없음:

댓글 쓰기