|
对于一个正在成长的mysql DBA来说,在刚刚开始接触mongodb时,对于复制集,分片的概念太模糊了。于是从网上查看了一些资料,和相关mongodb的书籍,有了个大概的轮廓的了解。我更喜欢把专业知识生活化,对于mongodb的复制集,我们的必须品就是data,log,key!对于key来说,从英语上来解释就是钥匙,复制集好比一个大家庭,里面的所有家庭成员要想进入这个大家庭,都需要相同的一把钥匙。所以,我们的keyfile文件内容是一样的,感觉这样就能很好地理解这些生僻的概念了。家庭大了,事情也多,所以还有很多问题需要解决呢。我们的故事才刚刚开始~~~~
1、初始化环境
- useradd mongo
- mkdir -p /opt/srv/mongodb/data
- mkdir -p /opt/srv/mongodb/log
- mkdir -p /opt/srv/mongodb/key
- chown mongo.mongo /opt/srv/*
- su - mongo
- mkdir -p /opt/srv/mongodb/data/a1
- mkdir -p /opt/srv/mongodb/data/a2
- mkdir -p /opt/srv/mongodb/data/a3
2、 生成keyfile
- echo "sumongodb is the best blog" > /opt/srv/mongodb/key/b1
- echo "sumongodb is the best blog" > /opt/srv/mongodb/key/b2
- echo "sumongodb is the best blog" > /opt/srv/mongodb/key/b3
- chmod 600 /opt/srv/mongodb*
3、启动mongo
- mongod --replSet sumongodb --keyFile /opt/srv/mongodb/key/b1 --port 20011 --dbpath /opt/srv/mongodb/data/a1 --logpath /opt/srv/mongodb/log/a1.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
- mongod --replSet sumongodb --keyFile /opt/srv/mongodb/key/b2 --port 20012 --dbpath /opt/srv/mongodb/data/a2 --logpath /opt/srv/mongodb/log/a2.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
- mongod --replSet sumongodb --keyFile /opt/srv/mongodb/key/b3 --port 20013 --dbpath /opt/srv/mongodb/data/a3 --logpath /opt/srv/mongodb/log/a3.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
4、初始化
- mongo --port 20011
- > config = {_id: 'sumongodb', members: [{_id: 0, host: '127.0.0.1:20011'},{_id: 1, host: '127.0.0.1:20012'},{_id: 2, host:'127.0.0.1:20013'}]}
- > rs.initiate(config)
- > rs.status()
|
|
|