작성자: 강동운(eastluck@lycos.co.kr) 발표일: 2012년 7월 28일 한국 몽고디비 사용자 그룹 제 2회 Meetup MongoDB HA(Replication & Sharding) Backup & Restore 작성자:

Slides:



Advertisements
Similar presentations
한국지엠㈜ 김양수 기본에 충실하자 연무대 공업고등학교 첫 만남 25 대한민국 48,508,972,238 / 49 북한 22,665,345 ♡ 70 억 명 : 1 ♡ 첫 인상 ♡ 처 음 ↔ 끝 ◆ 첫인상의 좋은점 나쁜점은 처음 30~40 초에 결정.
Advertisements

Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 ( 화 )
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
© 2014 CUBRID Co., Ltd. All rights reserved. 0 / 20 Date: 공공/국방부문 클라우드 추진현황 및 오픈소스 DBMS 적용사례.
Wireless Mobile Resource Management 1. 시스템 개요 2. 시스템 소개 3. 시스템 Back-up PLAN 4. 시스템 주요 Reference C.O.N.T.E.N.T.S.
ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
MongoDB 공식 한국 사용자 그룹 주디아줌마.  64bit 아키텍쳐, 리틀 에디언 서버  CPU  파일 시스템  DISK  IOPS 와 Seek Time 을 고려  RAID 1+0  RAM 용량이 클때 최적의 성능  인덱스 와 작업 데이터를 램이 수용할.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
마을기업 더폴락 협동조합 방문일시 : 방문조원 : 3조 김영순 김춘옥 박경해 정경숙.
MB노믹스의 실패와 미래 22조 배주환 외 5명.
HANBIRO SERVICE 로드발란싱/클러스터링/FailOver 시스템 구축 제안서 1. 한비로 클러스터 시스템
서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
2012년 12월 정기 제직회 기 도 : 김영민 집사 출 석 : 서 기 개회 선언 : 제직회장 (이태환 장로)
Mongo DB.
소리가 작으면 이어폰 사용 권장!.
시스템과 네트웍을 통하여 기업 가치를 높여주는 S & S 회계 법인
SQL Server 2000 HA & DR Solutions
Asymmetric Link 분석.
개발자에게 SharePoint Services 란 무엇인가?
안재훈 기업고객사업본부/기술사업부 한국마이크로소프트
웹사이트 구축 제안서 (결혼정보 사이트구축) First Web Agency.
18장. 데이터의 고가용성 (로그 전달, 데이터베이스 미러링, 복제)
Dynamic Host Configuration Protocol
DATABASE 연결 오류 - H2 Database 연결을 실패 했을때
17장. 데이터를 안전하게 보관하자. (백업, 복원, 스냅숏)
뇌를 자극하는 SQL Server 장. 서버 자동화.
SQL Server 2005 데이터베이스 가용성 강화 측면에서 본 데이터베이스 미러링과 스냅샷, 복제
뇌를 자극하는 Windows Server 2012 R2
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Remote Dictionary Server
11장. 데이터베이스 서버 구축과 운영.
장윤석과장 Technology Specialist (주)한국마이크로소프트
MySQL 기본 사용법.
㈜학술교육원 온라인논문투고시스템 투고자 메뉴얼.
Socket & Plug 기반의 u-Banking Platform
SQL Server™ 2000: DBA의 역할과 책임 하 성희.
Processing resulting output
인터넷 웹구축 7조 제안서 조장 : 임동진( ) 조원 : 임효종( ) 한상길( )
Right Now 담당 교수 : 문양세 교수님 팀 원 : 김원모(팀장) 우덕령, 김승선, 김종원, 문경민
소리가 작으면 이어폰 사용 권장!.
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
RaspberryPi3 및 Pi camera 3D Printing 출력물과 *[rPi + Pi cam] 병합모듈 제작
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
하성희 복제 구축 예제 하성희
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
소리가 작으면 이어폰 사용 권장!.
유고결석자 출석인정 안내 Contents 유고결석자 출석인정 사유 신청 시 유의사항 유고결석자 출석인정 절차 흐름도
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
Digital Marketing School
알쏭달쏭 요한복음 성경퀴즈.
NoSQL 박훈
SQL INJECTION MADE BY 김 현중.
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
데이터베이스 개발 단계.
3D ONLINE PLAMODEL PRODUCTION
통신 메모리 공유를 이용한 클라이언트/서버 설정 방법
홈페이지 제안서
국립중앙의료원 messenger User Guide Ver 3.2.
Data Base Mysql.
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
우수사원 연수 제안서 2-1. 항공, 호텔, 식사, 차량 세부 안내 (지역순서대로 작성 발리-싱가포르-괌)
중국 어선들의 불법 조업을 단속하려 하는 한국 경찰
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
2015년도 연세대학교 의과대학 의과학자육성 장학금 신청안내
사회복지협의회와 지역사회복지협의체.
ISL 트렁크로 VLAN 정보들이 함께 다닌다.
Presentation transcript:

작성자: 강동운(eastluck@lycos.co.kr) 발표일: 2012년 7월 28일 한국 몽고디비 사용자 그룹 제 2회 Meetup MongoDB HA(Replication & Sharding) Backup & Restore 작성자: 강동운(eastluck@lycos.co.kr) 발표일: 2012년 7월 28일

소개 강동운(Software Engineer) Electronic Arts FIFA Online Email: eastluck@lycos.co.kr Blog: http://eastluck.tistory.com Facebook: http://www.facebook.com/eastluck 주요 업무 및 활동 - MongoDB 공식 한국 사용자 그룹 스터디 - SQL Server MVP 2012 - SQLer.com 이스트럭(강동운) - SQLer Vision Study Leader

Contents Replication - 복제 셋(Replica sets) 과 master/slave 복제 - 데모 - 복제 셋 삭제, –rest 및 유의점 Sharding - chunk, balancing, balancer - config server, mongos - Sharding DEMO 백업과 복원 - mongodump, mongorestore - 세컨더리 파일 복사

Replication 고가용성의 기능(미러링) 복제 셋(replica set) - 표준, 수동, 결정권자 노드 Master/Slave Replication oplog 와 heartbeat, Priority

Replication 종류 복제셋(replica sets) - 자동 장애조치 가능 - 12개 노드까지 구성 가능 - 홀수 노드로 구성 권장 마스터,슬레이브(master-slave) - 자동 장애조치 불가능(수동) - 13개 이상 노드까지 구성 가능 - 현재 잘 안 쓰임

Oplog와 heartbeat oplog - capped collection - local database 내에 저장 변경된 document를 저장 Heartbeat(심장 박동) - 2초마다 각각 서버들에게 ping 전달 - 서버의 상태를 체크

Priority Priority - 서버내 우선 순위 - 기본 값 1 - 0일 경우 수동노드

복제 셋 노드 종류 표준 노드 - 1개의 PRIMARY - N개의 SECONDARY 단, Priority > 0 수동 노드 - 복제된 데이터는 가지고 있음 - Priority = 0 - 마스터가 될 수 없다.

복제 셋 노드 종류 결정권자 노드 - ARBITER 라고 함 - 데이터를 저장하지 않음 - PRIMARY FAILOVER 시 투표에는 참여

복제 셋 기본 구조 핑(heartbeat) SECONDARY PRIMARY 복제 복제 핑(heartbeat) ARBITER

복제 셋 기본 구조 PRIMARY SECONDARY Priority 1 SECONDARY Priority 1 SECONDARY

복제 셋 기본 구조 PRIMARY SECONDARY Priority 1 SECONDARY SECONDARY Priority 1 1초전 동기화 SECONDARY Priority 0 SECONDARY Priority 1 3초전 동기화 PRIMARY

복제 셋 셋팅 방법(서버시작) mongod --dbpath C:\DATA\first1 --port 10001 --replSet first --oplogSize 10 --rest --dbpath C:\DATA\first2 --port 10002 --dbpath C:\DATA\firstarbiter --port 10003

복제 셋 셋팅 방법 1 mongo localhost:10001/admin db.runCommand( {"replSetInitiate" : {"_id" : "first", "members" : [ {"_id" : 1, "host" : "localhost:10001"} , {"_id" : 2, "host" : "localhost:10002"} , {"_id" : 3, "host" : "localhost:10003", arbiterOnly: true } ] } ) Ex) {"_id" : 2, "host" : "localhost:10002", "Priority" : "50"}

복제 셋 셋팅 방법 2 mongo localhost:10001/admin rs.initiate() rs.add(“localhost:10002”) rs.add(“localhost:10003”, {arbiterOnly: true })

복제 셋 시작옵션 --rest 포트번호 + 1000번 웹으로 접속 --rest 옵션 추가 및 –replSet 없는 경우 모든 설정 끝 --rest 옵션 과 --replSet 옵션 추가 --rest 옵션 없는 경우 접속!

Master/Slave 셋팅 방법 mongod --dbpath C:\DATA\testmaster --port 10011 --oplogSize 10 --rest --master --dbpath C:\DATA\testslave --port 10012 --slave --source localhost:10011

복제 셋 및 Master/Slave DEMO

복제 셋 삭제 Rs.remove(‘localhost:포트번호’) 서버 재시작 해야 함. 초기화 방법은??

복제 셋 유의 점 홀수 노드로 구성 권장 프라이머리 선출 ARBITER 가 없어도 작동 함 SECONDARY에서 데이터를 읽기 위해서는 rs.slaveOk() 를 수행

Sharding 분산 처리 Shard Key(예: idx 또는 id, name 등) Member (25만) Member 샤드1 샤드2 Member (25만) Member (25만) Member(100만) 샤드3 샤드4 Member (25만) Member (25만)

Sharding Member (500 G) Member (400 G) Member (400 G) Member (600 G) 샤드1 샤드2 샤드3 샤드4 샤드5 Member (500 G) Member (400 G) Member (400 G) Member (600 G) Member (500 G) Member (700 G) Member (500 G) Member (400 G) Member (400 G) Member (900 G) Member (500 G) Member Member (400 G) A <= ID < F A <= ID < C C <= ID < H F <= ID < K C <= ID < K H <= ID < T H <= ID < Q K <= ID < T T <= ID < Z Q <= ID < Z Q <= ID < T T <= ID < Z 100G 200G 300G 400G

Sharding(Chunk) 한 샤드 안에는 N개의 청크가 있다. Chunk의 기본 사이즈 64 MB (원랜 200MB, v1.8 이후로 64 MB) --chunkSize N 옵션으로 조절 가능 그냥 쓰는게 바람직..

Sharding Member (400 G) Member (500 G) Member (500 G) Member (400 G) 샤드1 샤드2 샤드3 샤드3 샤드5 Member (400 G) Member (500 G) Member (500 G) Member (400 G) Member (400 G) Member (500 G) Member (500 G) Member (400 G) Member A <= ID < C A <= ID < F F <= ID < I F <= ID < K K <= ID < T K <= ID < Q T <= ID < X T <= ID < Z C <= ID < F I <= ID < K Q <= ID < T X <= ID < Z 100G 100G 100G 100G

Sharding(Chunk 예제) Member (500 G) Member (500 G) Member (500 G) Member 샤드1 샤드2 샤드3 샤드3 샤드5 Member (500 G) Member (500 G) Member (500 G) Member (500 G) Member (500 G) A <= ID < C F <= ID < G C <= ID < F G <= ID < J J <= ID < K N <= ID < Q R <= ID < S Q <= ID < R S <= ID < T K <= ID < N T <= ID < X X <= ID < Z

Sharding(Balancing) 샤드 서버의 청크의 숫자 조절 작업을 수행하는 프로세스(balancer) Member 샤드1 샤드2 Member (청크 50개) Member (청크 49개) Member (청크 49개) Member (청크 48개) 청크 1개 이동

Sharding(Config server) Config DB의 chunks collection에 chunk 정보 저장 하나라도 죽을 경우 balancing 작동 안함

Sharding(Mongos) 어플과 디비의 게이트웨이 어플은 단일 서버로 취급할 수 있다. 쓰거나 읽을 때 참조 해야 함. 개별 샤드로 접근 시 데이터 인식 못함.

Sharding(구조) Mongos CLIENT 샤드 1 샤드 2 샤드 3 Config1 Config2 Config3 Primary Secondary Primary Secondary Primary Secondary Arbiter Arbiter Arbiter

Sharding(DEMO chunkSize 1) Config1 (50051) 샤드(fourth) Mongos (55555) P(50010) S(50011) Config2 (50052) 2.5만 2.5만 A(50012) Config3 (50053) 샤드(first) 샤드(second) 샤드(third) 10만 P(50001) S(50002) P(50004) S(50005) P(50007) S(50008) 2.5만 3.3만 2.5만 3.3만 2.5만 3.3만 2.5만 3.3만 2.5만 3.3만 2.5만 3.3만 A(50003) A(50006) A(50009)

Sharding DEMO

백업 Mongodump 파일 복사를 하는 방법

백업(mongodump) Mongodump –h 호스트명 --port 포트명 –d 데이터베이스명 -o 백업디렉토리명

복원(mongorestore) Mongorestore –h 호스트명 --port 포트명 –d 데이터베이스명 디비명 --drop (있는 경우 삭제)

백업(파일 복사 방법) PRIMARY 를 복사하지 말자 (파일에 LOCK이 걸릴 수 있음) SECONDARY 복사 db.fsyncLock() 하지만!! 밸런서가 움직이고 있다! Config 서버 중 한대를 정지 후 복사 복사 후 db.fsyncUnLock()

백업 및 복원 DEMO

SUMMARY 복제 셋, master/slave 복제 sharding(chunk, balancer, config server, mongos) 백업과 복원(mongodump, mongorestore, 파일복사) Document 공간을 미리 확보하자

참고 자료 주디아줌마 블로그 http://judydba.tistory.com/169 MongoDB 활용 가이드 MongDB 완벽 가이드 MongoDB.org DOCS

감사합니다.