-
-
MongoDB Replica Set
- 準備服務器:172.16.8.91,172.16.8.92,172.16.8.93
- # mongod –config=/usr/local/mongodb/mongodb.conf :啟動,啟動前需要在每臺服務器上的配置文件中加入replSet=SET01
-
配置主從節點:
-
方式一:
- # mongo 172.16.8.91:27017
- > rs.initiate() :初始化副本集,登入任意一臺機器的MongoDB執行,因為是全新的副本集所以可以任意進入一臺執行;要是有一臺有數據,則需要在有數據上執行;要多臺有數據則不能初始化,輸入的此命令只是將當前機器設置為primary,到primary狀態有一個等待時間
-
> rs.status():查看副本集的狀態
- {
-
方式一:
-
"set" : "testRS",
"date" : ISODate("2018-04-10T13:21:42.192Z"), 當前日期
"myState" : 1,
"members" : [ 顯示當前副本集成員的屬性
{
"_id" : 0, 節點加入副本集后的唯一ID
"name" : "centos7-5:27017",
"health" : 1, 節點的健康狀態
"state" : 1,
"stateStr" : "PRIMARY", 該節點
"uptime" : 507, 運行時長
"optime" : Timestamp(1544534491, 1), optime:指某成員節點最后一次應用本地oplog日志中事件條目的時間戳,時間戳即是一串數字,和時間有所區別
"optimeDate" : ISODate("2018-04-10T13:21:31Z"), 最后一次oplog操作的時間
"electionTime" : Timestamp(1544534491, 2), 選舉時間戳
"electionDate" : ISODate("2018-04-10T13:21:31Z"), 選舉時間
"configVersion" : 1,
"self" : true
}
],
"ok" : 1
}
- testRS:PRIMARY> rs.add(“172.16.8.92”):添加從節點到副本集,指定IP和PORT,PORT默認27017,剛開是從節點的狀態STARTUP,是因為在進行數據同步的初始化階段,如果數據同步完成變成SECONDARY
- testRS:PRIMARY> rs.add(“172.16.8.93”)
-
方式二:
- # mongo 172.16.8.91:27017
-
> cfg={ _id:"RSet01", members:[ {_id:0,host:’172.16.8.91:27017′,priority:2}, {_id:1,host:’172.16.8.92:27017′,priority:1}, {_id:2,host:’172.16.8.93:27017′,arbiterOnly:true}] };
- cfg:設置一個cfg的變量,是可以任意的名字,當然最好不要是mongodb的關鍵字,conf,config都可以
- _id : 副本集的名稱
- members :副本集的服務器列表
- _id : 服務器加入副本集后的唯一ID
- priority:表示優先級,優先級最高的成為primary,默認為1,優先級0為被動節點,不能成為活躍節點。優先級不位0則按照有大到小選出活躍節點。
- arbiterOnly:true :表示仲裁節點,只參與投票,不接收數據,也不能成為活躍節點。
- > rs.initiate(cfg) 使cfg配置生效
-
MongoDB副本集相關的指令:
- rs.help() 副本集命令的幫助
- rs.status() 查看副本集中成員的運行狀態等信息
- rs.config() 查看配置信息,即各成員信息
- rs.slaveOk() 允許在SECONDARY節點上進行查詢操作,默認從節點不具有查詢功能
- rs.isMaster() 查詢該節點是否是主節點
- rs.add(“IP”) 添加新的節點到該副本集中
- rs.remove() 從副本集中刪除節點,如:rs.remove(“IP:PORT”),必須加端口
- rs.conf() 打印副本集的成員配置信息到熒幕
- rs.stepDown([#]) 指定#秒后讓自己離線,不指定#表示立即
- rs.addArb(”IP”) 添加一個節點為arbiter
-
MongoDB Sharding的搭建
- 先啟動若干 shard 節點: # mongod –shardsvr
- 啟動 3 個 config 節點: # mongod –configsvr
-
啟動 mongos :# mongos –configdb=192.168.1.100, 192.168.1.101, 192.168.1.102
- –shardsvr 參數只起到修改默認端口為 27018 作用,–configsvr 則修改默認端口為 27019 以及默認路徑為 /data/configdb。此外并沒有什么直接作用。實際使用時,也可以自己指定端口和數據路徑。此外,這兩個參數的另一個作用就是對進程進行標記,這樣在 ps aux 的進程列表里,就很容易確定進程的身份。–configdb 參數就是 config 節點的地址。如果更改了默認端口,則需要在這里加上。
-
然后我們把數據節點加入集群:
- # mongo連接到mongos節點
- > use admin
- > sh.addShard(’ [hostname]:[port]’)
-
如果使用的是 replicaSet,則是
- > use admin
- > sh.addShard(’replicaSetName/,,’)
-
接著就是啟用 sharding 了。
- > sh.enableSharding(dbname)
- > sh.shardCollection(fullName, key, unique)
- 這樣就可以了。還是很簡單的吧。如果 collection 里有數據,則會自動進行數據平衡
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95667