mongodb是一個非關系型的數據庫了,在此小編給各位介紹mongodb 副本集方法,希望文章對各位會帶來幫助.
第一步、安裝 mongodb 至每臺服務器,準備 3 臺以上mongodb服務器,并在每臺上先做以下操作.
1、下載mongodb,解壓并移動到 /usr/local/mongodb 目錄.
若未安裝wget,請先 yum install wget 或者 apt-get install wget,可以在局域網內某一臺web服務器上下載后,再去從此服務器下載,會快些.如:
- wget -c http://10.0.0.123/mongodb-linux-x86_64-2.6.5.tgz
- wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz
- tar zxvf mongodb-linux-x86_64-2.6.5.tgz
- mv mongodb-linux-x86_64-2.6.5 /usr/local/mongodb
2、建立 mongodb 數據庫(data)、日志(log) 文件夾.
mkdir -p /home/mongodb/data /home/mongodb/log
3、設置配置文件:
vi /usr/local/mongodb/mongo.conf
粘貼以下內容到此文件,:wq 保存并退出.
- systemLog:
- destination: "file"
- path: "/home/mongodb/log/mongo.log"
- logAppend: true
- storage:
- journal:
- enabled: true
- dbPath: "/home/mongodb/data"
- directoryPerDB: true
- processManagement:
- fork: true
- pidFilePath: "/usr/local/mongodb/mongo.pid"
- net:
- port: 27017
- http:
- enabled: true
- RESTInterfaceEnabled: true
- replication:
- replSetName: "REPLICA_NAME_MUST_BE_THE_SAME"
具體的配置參數可參考官方文檔:
http://docs.mongodb.org/manual/reference/configuration-options/
注意空格及縮進,可用的conf文件.
wget http://xclient.info/assets/mongodb/mongo.conf
4、運行 mongodb 進程:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
因為要建立數據庫文件,此處第一次啟動可能會比較慢一點.
5、設置開機啟動:vi /etc/rc.d/rc.local,將以下命令粘貼進去,保存退出.
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
第一步工作就緒?。?!
第二步、設置副本集。
1、在要設置為主數據庫的服務器上,打開mongo.
/usr/local/mongodb/bin/mongo
2、初始化配置
- rs.initiate()
- rs.conf()
會看到自己已經成為主節點 ####:PRIMARY> #### 是副本集的名稱.
3、添加成員
- rs.add("10.0.0.101:27017")
- rs.add("10.0.0.102:27017")
- ……
若要添加 仲裁 節點,命令為:
rs.addArb("10.0.0.111:27017")
注:服務器數量為偶數的時候,需要添加一個仲裁節點來補充,即副本集的所有服務器總數必須為奇數,關于仲裁節點,更多的可以 google.
4、設置從數據庫可讀,在每臺從服務器上執行以下即可:
- /usr/local/mongodb/bin/mongo
- db.getMongo().setSlaveOk()
亦可在主服務器上使用 /usr/local/mongodb/bin/mongo --host 10.0.0.101 來連接從服務器進行設置(10.0.0.101 為從服務器IP).
至此,mongodb 副本集配置完成,以下為其它一些可能會用到的操作.
設置優先級,設置 _ID 為2的服務器為主服務器.
- cfg = rs.conf()
- cfg.members[0].priority = 1
- cfg.members[1].priority = 1
- cfg.members[2].priority = 2
- rs.reconfig(cfg)
設置主服務器為從服務器:rs.stepDown()
重設數據庫IP地址,在主服務器上運行 mongo,然后執行.
- cfg = rs.conf()
- cfg.members[n].host= 'new_host_name:prot'
- rs.reconfig(cfg)
若要重設主服務器 IP,則先給主服務器降級,再在新的主服務器上執行以上操作.
新聞熱點
疑難解答