一。 单点启动
1. 直接运行命令启动
./mongod –port 9999 –fork –logpath= logpath=/data/mongodb/log/mongodb.log -- logappend -- dbpath=/data/mongodb/data/db
2. 通过配置文件mongodb.conf启动
port=9999 #端口号
fork=true #以守护进程的方式运行,创建服务器进程
#master=true #单主从配置时设为主服务器
#salve=true ##单主从配置时设为从服务器
logpath=/data/mongodb/log/mongodb.log #日志输出文件路径
logappend=true #日志输出方式
dbpath=/data/mongodb/data/db #数据库路径
replSet=blort #设置富本集的名字
shardsvr=true #设置是否分片
二。 副本集
方法一:
db.runCommand({"replSetInitiate":{"_id":"blort","members":[{"_id":0,"host":"10.10.113.122:30001"},{"_id":1,"host":"10.10.113.122:30002"},{"_id":2,"host":"10.10.113.122:30003","arbiterOnly":true}]}})
方法二:
config={_id:'blort',members:[{"_id":0,host:'10.10.113.122:30001},{"_id":1,host:'10.10.113.122:30002'},{"_id":2,"host":"10.10.113.122:30003","arbiterOnly":true}]};rs.initiate(config);
增加和设置副本集
有几种不同类型的节点可以存在于副本集:Standard :存在于副本参与投票,有可能成为主节点
Passive :存储了完整的数据副本,参与投票,不能成为主节点
Arbiter:仲裁者,只参与投票,不能成为主节点
Priority:优先级,(投票会投优先级高的,如果相同,则投数据最新的)
通过以下命令对副本集合进行修改或者增加服务器
db.runCommand({"replSetReconfig":{"_id":"test3","version":2,"members":[{"_id":0,"host":"10.10.113.122:30001"},{"_id":1,"host":"10.10.113.122:30002"},{"_id":2,"host":"10.10.113.122:30003","arbiterOnly":true}]}})
增加副本服务器
rs.add("10.10.113.122:30005"); 或者rs.add({"_id":4,"host":"10.10.113.122:30005"})
docker inspect --format='{{.NetworkSettings.IPAddress}}'
docker run -d mongo --replSet myset
db.test.save({id:1,name:'francs'});
docker exec c70c6bed01d1 mongo admin --eval "rs.initiate({_id:'myset', members:[{_id:0, host:'172.17.0.2:27017'},{ _id: 1, host: '172.17.0.3:27017'},{_id:2, host:'172.17.0.4:27017'}]})"