Linux Ubuntu + MongoDB + ReplSet + Auth

摘要: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