摘要:Linux Ubuntu + MongoDB + ReplSet
現在我要使用新的MongoDB Replcation 的 Server
只有三臺,一臺Master,兩臺Slave
而要使用這樣的架構,
在Linux Ubuntu環境下,架設,依照官方說法去做
如下:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
但這情況下,就是要設定/etc/mongodb.conf這個檔案
這個檔案需要將replSet 前面的#拿掉。
並且加入其他臺的電腦
及replset name設定
我設定如下
第一臺
replSet = Shard01/Address IP2:27017
第二臺
replSet = Shard01/Address IP1:27017,Address IP3:27017
第三臺
replSet = Shard01/Address IP1:27017,Address IP2:27017
然後再將三臺restart
sudo service mongodb restart
並進入第一臺
mongo
use admin
(ReplSet Name必需與設定檔相同)
config = {_id:'Shard01',members:[{_id:0,host:'Address IP1',priority:1},{_id:1,host:'Address IP2'},{_id:2,host:'Address IP3'}]}
rs.initiate(config)
若回傳失敗的話。
去查看log資訊
cat /var/log/mongodb
如果成功,
則
進入mongo後
就會看到他是否為
Shard01:PRIMANRY>
or
Shard01:SECONDARY>
各Server再執行.getMongo().setSlaveOk();
底下這一篇,也有對這種架設佈署過程的文章,包含安裝性驗證的部分的解說。
http://linuxadminzone.com/create-secure-mongodb-replica-set-in-amazon-aws-ec2-instances/
※權限管理※
在要加入權限管理時,需要注意,
除了要修改
/etc/mongodb.conf
打開
auth外
需建立keyFile
而keyFile則需建立權限
sudo chown mongodb:mongodb <<keyFile檔案>>
sudo chmod 600 <<keyFile檔案>>
因為在使用
sudo service mongodb start時,他使用的使用者為mongodb
而keyFile可使用
openssl rand -base64 753產生
mongodb部分則加入使用者
use admin
db.addUser("user","pwd")
db.auth("user","pwd")
查詢複製資訊相關
use admin
db.getReplicationInfo()
db.printReplicationInfo
db.printSlaveReplicationInfo()
rs.isMaster()
rs.status()
use local
db.slaves.find()
db.sources.find()
同步參考相關文件
http://hi.baidu.com/jinbokezhu/item/422140074b15587bbfe97e06
use local
db.system.replset.find()
rs.conf()
http://fred-zone.blogspot.tw/2012/09/mongodb-replic
http://cyrilwang.blogspot.tw/2012/06/mongodb-replica-set-in-centos-6x_05.htmlation.html