• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mongodb tip42 50
 

Mongodb tip42 50

on

  • 681 views

 

Statistics

Views

Total Views
681
Views on SlideShare
681
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 명확하게 오류가 없음을 검증.\narbiter 설정을 변경하거나 기존 설정을 변경하면 안된다. 멤버의 추가/삭제 가능.\n버전을 증가해서 전파되도록 하라.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Mongodb tip42 50 Mongodb tip42 50 Presentation Transcript

  • MONGODB TIP 42~50
  • TIP 42 레플리카 셋은 주 서버 없이도 재설정될 수 있다.
  • TIP 42 레플리카 셋은 주 서버 없이도 재설정될 수 있다.레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지는 죽은 경우
  • TIP 42 레플리카 셋은 주 서버 없이도 재설정될 수 있다.레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지는 죽은 경우공식적인 절차는 local 데이터베이스를 날려버리고, 레플리카셋을 처음부터 재설정해야 한다.
  • TIP 42 레플리카 셋은 주 서버 없이도 재설정될 수 있다.레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지는 죽은 경우공식적인 절차는 local 데이터베이스를 날려버리고, 레플리카셋을 처음부터 재설정해야 한다.레플리케이션을 재구성하고 oplog를 다시 할당하는 동안 시스템이 중단된다.
  • 애플리케이션을 중단하고 싶지 않은 경우
  • 애플리케이션을 중단하고 싶지 않은 경우두개이상의 부서버중 하나를 선택하여 중지하고,다른 포트를 사용하여 재시작한다.
  • 애플리케이션을 중단하고 싶지 않은 경우두개이상의 부서버중 하나를 선택하여 중지하고,다른 포트를 사용하여 재시작한다.mongod --replSet foo --port 5555
  • 애플리케이션을 중단하고 싶지 않은 경우두개이상의 부서버중 하나를 선택하여 중지하고,다른 포트를 사용하여 재시작한다.mongod --replSet foo --port 5555mongod --port 5556
  • 설정 적용> use local> config = db.system.replset.findOne(){ “_id”:”foo”, > config.slice(2,1) “version”:2, > config{ “members” : [{ “_id”:”foo”, “_id”:0, “version”:3, “host” : “rs1:5555”},{ “member”:[{ “_id”:1, “_id”:0, “host”:”rs2:5555”, “host”:”rs1:5555”},{ “arbiterOnly”:true},{ “_id”:1, “_id”:2, “host”:”rs2:5555”, “host”:”rs3:5555”},{ “arbiterOnly”:true},{ “_id”:3, “_id”:3, “host”:”rs4:5555”}]} “host”:”rs4:5555”}]}
  • TIP 43 --SHARDSVR 와 --CONFIGSVR 옵션이 필수는 아니다.
  • TIP 43 --SHARDSVR 와 --CONFIGSVR 옵션이 필수는 아니다.mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서버는 27019 포트를 사용.
  • TIP 43 --SHARDSVR 와 --CONFIGSVR 옵션이 필수는 아니다.mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서버는 27019 포트를 사용.--configsvr 는 dialog를 켜는 추가적인 동작을 한다.
  • TIP 43 --SHARDSVR 와 --CONFIGSVR 옵션이 필수는 아니다.mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서버는 27019 포트를 사용.--configsvr 는 dialog를 켜는 추가적인 동작을 한다.dialog는 설정 데이터베이스가 수행하는 모든 동작을 다시실행할 수 있도록 기록한다.
  • TIP 43 --SHARDSVR 와 --CONFIGSVR 옵션이 필수는 아니다.mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서버는 27019 포트를 사용.--configsvr 는 dialog를 켜는 추가적인 동작을 한다.dialog는 설정 데이터베이스가 수행하는 모든 동작을 다시실행할 수 있도록 기록한다.--journal 옵션을 사용하면 같은 효과에 성능 저하가 없다.
  • TIP 44 --NOTABLESCAN옵션은 개발 중에만 사용하라
  • TIP 44 --NOTABLESCAN옵션은 개발 중에만 사용하라--notablescan 옵션은 쿼리를 수행할 때 테이블 검색이 수반되면 에러를 반환한다. (색인을 사용하는 쿼리는 정상 처리.)
  • TIP 44 --NOTABLESCAN옵션은 개발 중에만 사용하라--notablescan 옵션은 쿼리를 수행할 때 테이블 검색이 수반되면 에러를 반환한다. (색인을 사용하는 쿼리는 정상 처리.)실 운용중일 경우 관리 작업을 할때 색인되지 않은 테이블을 검색할 경우가 발생한다.
  • TIP 45 자바스크립트 조금은 배워두라.
  • TIP 45 자바스크립트 조금은 배워두라.파이썬과 같은 자체 셀을 가진 언어를 사용하거나,MongoDB에 직접 접근할 필요가 없는 Mongoid 같은ODM을 사용하더라도 자바스크립트 쉘에 익숙해져야 한다.
  • TIP 45 자바스크립트 조금은 배워두라.파이썬과 같은 자체 셀을 가진 언어를 사용하거나,MongoDB에 직접 접근할 필요가 없는 Mongoid 같은ODM을 사용하더라도 자바스크립트 쉘에 익숙해져야 한다.자바스크립트 셀은 MongoDB의 정보에 접근하는 가장 빠르고 좋은 도구이다.
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라mongo 는 localhost:27017로 접속.
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라mongo 는 localhost:27017로 접속.host:port/database 옵션으로 어떤 서버에도 접근 가능.
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라mongo 는 localhost:27017로 접속.host:port/database 옵션으로 어떤 서버에도 접근 가능.use customers, use game, use customers ...
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라mongo 는 localhost:27017로 접속.host:port/database 옵션으로 어떤 서버에도 접근 가능.use customers, use game, use customers ...game = db.getSisterDB(“game”)customers = db.getSisterDB(“customers”)
  • TIP 46 모든 서버와 DB는 하나의 셸에서 관리하라mongo 는 localhost:27017로 접속.host:port/database 옵션으로 어떤 서버에도 접근 가능.use customers, use game, use customers ...game = db.getSisterDB(“game”)customers = db.getSisterDB(“customers”)레플리카 셋이나 샤딩된 클러스터를 사용하는 경우, 접속을 각각 유지 할 수 있다.master=connect(“ny1a:27017/admin”)slave = connect(“ny1b:27017/admin”)
  • TIP 47 함수에 대해 자세한사항을 보려면 ‘HELP’를 수행
  • TIP 47 함수에 대해 자세한사항을 보려면 ‘HELP’를 수행자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코드를 볼 수 있다.> db.addUserfunction(username, pass, readOnly){ ..... }
  • TIP 47 함수에 대해 자세한사항을 보려면 ‘HELP’를 수행자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코드를 볼 수 있다.> db.addUserfunction(username, pass, readOnly){ ..... }listCommands 만 기억하면 모든 명령어 이름을 볼 수 있다.> db.runCommand({listCommands:1})
  • TIP 47 함수에 대해 자세한사항을 보려면 ‘HELP’를 수행자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코드를 볼 수 있다.> db.addUserfunction(username, pass, readOnly){ ..... }listCommands 만 기억하면 모든 명령어 이름을 볼 수 있다.> db.runCommand({listCommands:1})자바스크립트 셀에는 자동 완성 기능의 제안을 받을 수 있다.
  • TIP48 구동 파일을 작성하라.
  • TIP48 구동 파일을 작성하라.셸이 시작할 때 옵션으로 헬퍼 함수 목록인 구동 파일을 지정할 수 있다.$ mongo startup.js
  • TIP48 구동 파일을 작성하라.셸이 시작할 때 옵션으로 헬퍼 함수 목록인 구동 파일을 지정할 수 있다.$ mongo startup.js실수로 데이터베이스를 삭제하거나 데이터를 지우는 일을방지하고 싶다면 일부 명령을 삭제할 수 있다.// no-delete.jsdelete DBCollection.prototype.drop;delete DBCollection.prototype.remove;delete DB.prototype.dropDatabase;$ mongo no-delete.js> db.foo.drop()TypeError
  • TIP 49 자신이 만든 함수를 추가하라
  • TIP 49 자신이 만든 함수를 추가하라스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스프로토타입에 추가하여 사용할 수 있다.
  • TIP 49 자신이 만든 함수를 추가하라스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스프로토타입에 추가하여 사용할 수 있다.> DB.prototype.getOplogLength = function() { ... };
  • TIP 49 자신이 만든 함수를 추가하라스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스프로토타입에 추가하여 사용할 수 있다.> DB.prototype.getOplogLength = function() { ... };이미 데이터베이스 인스턴스 rsA, rsB 가 있다면?var f = function() { ... };rsA.getOplogSize = f;rsB.getOplogSize = f;
  • TIP 49 자신이 만든 함수를 추가하라스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스프로토타입에 추가하여 사용할 수 있다.> DB.prototype.getOplogLength = function() { ... };이미 데이터베이스 인스턴스 rsA, rsB 가 있다면?var f = function() { ... };rsA.getOplogSize = f;rsB.getOplogSize = f;전역 함수로도 만들 수 있다.getOplogLength = function(db) { ... };
  • 파일에서자바스크립트 불러오기
  • 파일에서 자바스크립트 불러오기load()함수는 셸 컨텍스트하에서 실행된다.// hello.jsprint(“Hello, world!”)> load(“hello.js”)Hello, world!
  • 파일에서 자바스크립트 불러오기load()함수는 셸 컨텍스트하에서 실행된다.// hello.jsprint(“Hello, world!”)> load(“hello.js”)Hello, world!레플리카 셋이나 샤딩을 구성할 때 사용할 수 있다.
  • TIP 50 스스로 쓴 것을 다시읽는 명령은 단일 접속을 통 해서 수행하라.
  • TIP 50 스스로 쓴 것을 다시읽는 명령은 단일 접속을 통 해서 수행하라. client C B A
  • TIP 50 스스로 쓴 것을 다시읽는 명령은 단일 접속을 통 해서 수행하라. client C B A C B A client F E D
  • TIP 50 스스로 쓴 것을 다시읽는 명령은 단일 접속을 통 해서 수행하라. client C B A 같은 접속을 통 C B A 해 전송해야 하 client 는 요청들의 묶 음을 지정하는 F E D 방식을 사용