3. TIP 42 레플리카 셋은 주
서버 없이도
재설정될 수 있다.
레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지
는 죽은 경우
4. TIP 42 레플리카 셋은 주
서버 없이도
재설정될 수 있다.
레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지
는 죽은 경우
공식적인 절차는 local 데이터베이스를 날려버리고, 레플리카
셋을 처음부터 재설정해야 한다.
5. TIP 42 레플리카 셋은 주
서버 없이도
재설정될 수 있다.
레플리카 셋에서 과반수가 넘지 않는 서버만 살아 있고 나머지
는 죽은 경우
공식적인 절차는 local 데이터베이스를 날려버리고, 레플리카
셋을 처음부터 재설정해야 한다.
레플리케이션을 재구성하고 oplog를 다시 할당하는 동안 시스
템이 중단된다.
12. TIP 43 --SHARDSVR 와
--CONFIGSVR 옵션이
필수는 아니다.
mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서
버는 27019 포트를 사용.
13. TIP 43 --SHARDSVR 와
--CONFIGSVR 옵션이
필수는 아니다.
mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서
버는 27019 포트를 사용.
--configsvr 는 dialog를 켜는 추가적인 동작을 한다.
14. TIP 43 --SHARDSVR 와
--CONFIGSVR 옵션이
필수는 아니다.
mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서
버는 27019 포트를 사용.
--configsvr 는 dialog를 켜는 추가적인 동작을 한다.
dialog는 설정 데이터베이스가 수행하는 모든 동작을 다시
실행할 수 있도록 기록한다.
15. TIP 43 --SHARDSVR 와
--CONFIGSVR 옵션이
필수는 아니다.
mongos 프로세스는 27017, 모든 샤드는 27018, 모든 설정 서
버는 27019 포트를 사용.
--configsvr 는 dialog를 켜는 추가적인 동작을 한다.
dialog는 설정 데이터베이스가 수행하는 모든 동작을 다시
실행할 수 있도록 기록한다.
--journal 옵션을 사용하면 같은 효과에 성능 저하가 없다.
17. TIP 44 --NOTABLESCAN
옵션은 개발 중에만 사용하라
--notablescan 옵션은 쿼리를 수행할 때 테이블 검색이 수반
되면 에러를 반환한다. (색인을 사용하는 쿼리는 정상 처
리.)
18. TIP 44 --NOTABLESCAN
옵션은 개발 중에만 사용하라
--notablescan 옵션은 쿼리를 수행할 때 테이블 검색이 수반
되면 에러를 반환한다. (색인을 사용하는 쿼리는 정상 처
리.)
실 운용중일 경우 관리 작업을 할때 색인되지 않은 테이블
을 검색할 경우가 발생한다.
20. TIP 45 자바스크립트 조금은
배워두라.
파이썬과 같은 자체 셀을 가진 언어를 사용하거나,
MongoDB에 직접 접근할 필요가 없는 Mongoid 같은
ODM을 사용하더라도 자바스크립트 쉘에 익숙해져야 한
다.
21. TIP 45 자바스크립트 조금은
배워두라.
파이썬과 같은 자체 셀을 가진 언어를 사용하거나,
MongoDB에 직접 접근할 필요가 없는 Mongoid 같은
ODM을 사용하더라도 자바스크립트 쉘에 익숙해져야 한
다.
자바스크립트 셀은 MongoDB의 정보에 접근하는 가장 빠
르고 좋은 도구이다.
23. TIP 46 모든 서버와 DB는
하나의 셸에서 관리하라
mongo 는 localhost:27017로 접속.
24. TIP 46 모든 서버와 DB는
하나의 셸에서 관리하라
mongo 는 localhost:27017로 접속.
host:port/database 옵션으로 어떤 서버에도 접근 가능.
25. TIP 46 모든 서버와 DB는
하나의 셸에서 관리하라
mongo 는 localhost:27017로 접속.
host:port/database 옵션으로 어떤 서버에도 접근 가능.
use customers, use game, use customers ...
26. TIP 46 모든 서버와 DB는
하나의 셸에서 관리하라
mongo 는 localhost:27017로 접속.
host:port/database 옵션으로 어떤 서버에도 접근 가능.
use customers, use game, use customers ...
game = db.getSisterDB(“game”)
customers = db.getSisterDB(“customers”)
27. 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”)
29. TIP 47 함수에 대해 자세한
사항을 보려면 ‘HELP’를 수행
자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코
드를 볼 수 있다.
> db.addUser
function(username, pass, readOnly){ ..... }
30. TIP 47 함수에 대해 자세한
사항을 보려면 ‘HELP’를 수행
자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코
드를 볼 수 있다.
> db.addUser
function(username, pass, readOnly){ ..... }
listCommands 만 기억하면 모든 명령어 이름을 볼 수 있다.
> db.runCommand({listCommands:1})
31. TIP 47 함수에 대해 자세한
사항을 보려면 ‘HELP’를 수행
자바스크립트 셸안에서 함수의 괄호 없이 수행하면 소스코
드를 볼 수 있다.
> db.addUser
function(username, pass, readOnly){ ..... }
listCommands 만 기억하면 모든 명령어 이름을 볼 수 있다.
> db.runCommand({listCommands:1})
자바스크립트 셀에는 자동 완성 기능의 제안을 받을 수 있
다.
33. TIP48 구동 파일을 작성하라.
셸이 시작할 때 옵션으로 헬퍼 함수 목록인 구동 파일을 지
정할 수 있다.
$ mongo startup.js
34. TIP48 구동 파일을 작성하라.
셸이 시작할 때 옵션으로 헬퍼 함수 목록인 구동 파일을 지
정할 수 있다.
$ mongo startup.js
실수로 데이터베이스를 삭제하거나 데이터를 지우는 일을
방지하고 싶다면 일부 명령을 삭제할 수 있다.
// no-delete.js
delete DBCollection.prototype.drop;
delete DBCollection.prototype.remove;
delete DB.prototype.dropDatabase;
$ mongo no-delete.js
> db.foo.drop()
TypeError
36. TIP 49 자신이 만든
함수를 추가하라
스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스
프로토타입에 추가하여 사용할 수 있다.
37. TIP 49 자신이 만든
함수를 추가하라
스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스
프로토타입에 추가하여 사용할 수 있다.
> DB.prototype.getOplogLength = function() { ... };
38. TIP 49 자신이 만든
함수를 추가하라
스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스
프로토타입에 추가하여 사용할 수 있다.
> DB.prototype.getOplogLength = function() { ... };
이미 데이터베이스 인스턴스 rsA, rsB 가 있다면?
var f = function() { ... };
rsA.getOplogSize = f;
rsB.getOplogSize = f;
39. TIP 49 자신이 만든
함수를 추가하라
스스로 만든 함수를 전역 함수나 클래스 인스턴스, 클래스
프로토타입에 추가하여 사용할 수 있다.
> DB.prototype.getOplogLength = function() { ... };
이미 데이터베이스 인스턴스 rsA, rsB 가 있다면?
var f = function() { ... };
rsA.getOplogSize = f;
rsB.getOplogSize = f;
전역 함수로도 만들 수 있다.
getOplogLength = function(db) { ... };