몽고DB를 mac에 설치하여 테스트를 진행하고 있다.

몽고DB를 mac에서 standalone으로 실행한다. 



$ brew install mongodb

$ sudo mkdir -p /data/db
$  sudo chown 사용자이름 /data/db
$ mongod
2015-09-17T14:36:04.358+0900 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2015-09-17T14:36:04.358+0900 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed
2015-09-17T14:36:04.370+0900 I JOURNAL  [durability] Durability thread started
2015-09-17T14:36:04.371+0900 I JOURNAL  [journal writer] Journal writer thread started
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] MongoDB starting : pid=36980 port=27017 dbpath=/data/db 64-bit host=xxx
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] db version v3.0.1
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] git version: nogitversion
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] build info: Darwin mavericksvm.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Dec 17 19:05:52 PST 2014; root:xnu-2422.115.10~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] allocator: system
2015-09-17T14:36:04.371+0900 I CONTROL  [initandlisten] options: {}
2015-09-17T14:36:04.375+0900 I INDEX    [initandlisten] allocating new ns file /data/db/local.ns, filling with zeroes...
2015-09-17T14:36:04.402+0900 I STORAGE  [FileAllocator] allocating new datafile /data/db/local.0, filling with zeroes...
2015-09-17T14:36:04.402+0900 I STORAGE  [FileAllocator] creating directory /data/db/_tmp
2015-09-17T14:36:04.492+0900 I STORAGE  [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB,  took 0.089 secs

2015-09-17T14:36:04.619+0900 I NETWORK  [initandlisten] waiting for connections on port 27017



다른 터미널에서 mongo cli 실행한다. 


$ which mongo

/usr/local/bin/mongo
$ mongo
MongoDB shell version: 3.0.1
connecting to: test



로컬에서 몽고db를 클러스터링셋으로 실행하기가 번거롭다. 

그래서 이를 간단히 도와주는 툴이 mtools 밑에 mlaunch 가 있다. 이를 사용하면 편리하게 mongo를 편하게 실행/종료/설정이 가능하다. mlauch외에 다양한 툴이 있으니. 확인할 수 있다.


https://github.com/rueckstiess/mtools/


언급된 github 주소의 github repository를 clone 한 후, 해당 디렉토리에 들어가서 mtools를 설치한다.

requirement.txt 파일에 dependency lib가 정의되어 있다. 


$ cd mtools

$ cat requirements.txt

$ sudo pip install -r requirements.txt

(설치 완료)



$ mlaunch init  --replicaset
launching: mongod on port 27017
launching: mongod on port 27018
launching: mongod on port 27019

replica set 'replset' initialized.


 $ ps -ef | grep mongo

  501 68371     1   0  6:44PM ??         1:20.89 mongod --replSet replset --dbpath /mydev/opensource/aa/data/replset/rs1/db --logpath /mydev/opensource/aa/data/replset/rs1/mongod.log --port 27017 --logappend --fork

  501 68374     1   0  6:44PM ??         1:18.71 mongod --replSet replset --dbpath /mydev/opensource/aa/data/replset/rs2/db --logpath /mydev/opensource/aa/data/replset/rs2/mongod.log --port 27018 --logappend --fork

  501 68377     1   0  6:44PM ??         1:19.19 mongod --replSet replset --dbpath /mydev/opensource/aa/data/replset/rs3/db --logpath /mydev/opensource/aa/data/replset/rs3/mongod.log --port 27019 --logappend --fork

  501 70542 68555   0  7:29PM ttys002    0:00.13 mongo --port 27018

  501 84715 58108   0  8:21AM ttys011    0:00.00 grep mongo

  501 80512 16956   0  9:38PM ttys018    0:00.09 mongo



레플리카셋 모드로 3개의 몽고 데몬이 떠있다. (oplog 테스트하려고 했었는데 완전 편하다..)


종료 할 때는 다음과 같이 실행한다.

$ mlaunch stop

3 nodes stopped.


유의할 때는 mlaunch를 실행한 디렉토리에서 실행해야 한다.. (해당 설정 파일을 디렉토리로 읽고 쓰는 구조로 되어 있다.)



replicaset 옵션으로 mongo를 실행했기 때문에 mongo cli를 쓰면 oplog를 볼 수 있고, slave로 전달했는지 확인할 수 있다. standalone에서는 oplog를 볼 수 없었다.




mtools에 대한 설명은 github wiki외에 몽고DB 공식 블로그에서도 설명되어 있으니. 참조하면 좋다. 


http://blog.mongodb.org/post/85123256973/introducing-mtools

https://github.com/rueckstiess/mtools/wiki


Posted by '김용환'
,