mongo db 3.2-> mongo db 3.4 migration 설명이다. 

이미 wiredTiger 버전을 사용 중이라 큰 이슈가 없지만, 

cenots 부분에서는 조금 mongo 3.4 부터 centos 6과  7 버전으로 나누어지지, 잘 유의해서 설치해야 한다. 

(참고로 centos6 관점에서 mongdb 3.2는 70M인 반면, mongodb 3.4는 100M이다)


https://docs.mongodb.com/manual/administration/install-enterprise-linux/




새로 추가된 mongodb 3.4의 기능은 다음과 같다. 


https://docs.mongodb.com/manual/release-notes/3.4/




slave에서 먼저 셧다운한다. 


$ mongo


MongoDB shell version: 3.2.10

connecting to: test

replset:SECONDARY> use admin

switched to db admin

replset:SECONDARY> db.shutdownServer()

server should be down...



binary를 교체한다. 재시작하기 전에 /etc/mongodb.conf 설정 파일을 수정한다. 



cd /usr/local

sudo wget ..mongodb-linux-x86_64-rhel62-3.4.1.tgz

sudo tar zxvf mongodb-linux-x86_64-rhel62-3.4.1.tgz

sudo rm mongodb-linux-x86_64-rhel62-3.4.1.tgz

sudo chown www:www mongodb-linux-x86_64-rhel62-3.4.1

sudo rm mongodb

sudo ln -sf  mongodb-linux-x86_64-rhel62-3.4.1 mongodb




다음에 mongodb를 실행한다.


/usr/local/mongodb/bin/mongod -f /etc/mongod.conf



아래와 같은 문구가 mongo 경고가 발생하지만, 큰 문제 아니다. xfs를 써야 좋아진다거나 acl을 쓰라는 경고이다. 


** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

 **          See http://dochub.mongodb.org/core/prodnotes-filesystem


** WARNING: Access control is not enabled for the database.

Read and write access to data and configuration is unrestricted.




mongo 3.4에서 다음 커맨드를 실행한다.


use admin

db.runCommand( { replSetGetStatus : 1 } )




레플리카 저오를 포함하는 optimes가 새로 추가되었다. 

(https://docs.mongodb.com/manual/reference/command/replSetGetStatus/)


"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1483325059, 2),

"t" : NumberLong(-1)

},

"appliedOpTime" : Timestamp(1483325059, 2),

"durableOpTime" : Timestamp(1483325059, 2)

},





동기화가 잘 완료되었는지 명확히 알기는 어렵지만, rs.status() 결과에 slave에 아래 heartbit 관련 필드가 포함되어 있다면 동기화가 완료된 것으로 생각하고 있다.(자세한 것은 소스보며 추후 살펴 볼 예정이다)


optimeDurableDate

lastHeartbeat

lastHeartbeatRecv





Posted by '김용환'
,