一.搭建MongoDB复制集
启动子节点实例时报错,child process failed,exited with error number 100
原因配置文件中的mongod.lock 文件,一般都是因为锁了
解决办法:去找到mongod.lock文件,删除
rm mongod.lock
启动子节点实例时报错,child process failed,exited with error number 100
原因配置文件中的mongod.lock 文件,一般都是因为锁了
解决办法:去找到mongod.lock文件,删除
rm mongod.lock
二。固定端口号启动客户端
./mongo --port 27017
./mongo --port 27017
三.mongodb配置复制集时需要删除所有的数据库,在数据库下进行删除
db.dropDatabase()
db.dropDatabase()
四。连接到主数据库 ./mongo --port 27017 mongodb连接到固定的客户端
定义js变量 说
var config = { _id:"复制集名称",members:[{_id:0,host:"192.168.42.242:27017"},{_id:1,host:"192.168.42.242:27018",arbiterOnly:true},{_id:2,host:"192.168.42.242:27019"}]}
定义js变量 说
var config = { _id:"复制集名称",members:[{_id:0,host:"192.168.42.242:27017"},{_id:1,host:"192.168.42.242:27018",arbiterOnly:true},{_id:2,host:"192.168.42.242:27019"}]}
初始化js变量
rs.initiate(config);
rs.initiate(config);
查看复制集的配置状态
rs.status();
rs.status();
五.启动复制集(有三种角色1.主复制集 2.从复制集 3.仲裁节点)
当我们在主复制集中添加数据时,从复制集也会同步添加数据(需要登录到从复制集,rs.slaveOk(),从复制集不能插入数据只能查询)
仲裁节点,采取投票机制,主从复制集的切换
当我们在主复制集中添加数据时,从复制集也会同步添加数据(需要登录到从复制集,rs.slaveOk(),从复制集不能插入数据只能查询)
仲裁节点,采取投票机制,主从复制集的切换
六.复制集常用方法总结
1.rs.conf() 或者rs.config(); 查看复制集配置
2.rs.add(); 增加复制集节点
rs.add('192.168.42.242:27017')
rs.add({"_id":3,"host":"192.168.42.242:27017","priority":0,"hidden":true}) 指定hidden 属性添加备份节点
rs.add({"_id":3,"host":"192.168.42.242:27017","priority":0,"slaveDelay":60})指定slaveDelay属性添加延迟节点
priority:优先级,默认为1,如果想手动指定某个节点为primary节点,则把对应点的priority属性设置为所有节点中最大的一个即可
3.rs.remove():删除复制集节点,例如:rs.remove("192.168.42.242:27017")
4.rs.addArb() :添加仲裁节点
rs.addArb("192.168.42.242:27017")或者
rs.add({"_id":3,"host":"192.168.42.242:27017","arbiterOnly":true}),仲裁节点,只参与投票,不接收数据