参考:https://www.cnblogs.com/xuliuzai/p/9643128.html
MongoDB的副本集有一个数据结构oplog,里面存储了primary节点所有写操作。但是单实例没有这个结构,那么单台MongoDB实例怎么开启oplog?
方法:以副本集方式启动实例,在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。
一、以副本集方式启动实例:
添加副本集参数(replSet=??)
比如:
./mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork --auth --bind_ip 0.0.0.0 --replSet='test'
二、在local数据库或admin数据库执行初始化副本集的脚本。
rs.initiate({ _id: "副本集名称", members: [{_id:0,host:"ServerIP:MongoDBPort"}]})
比如:
rs.initiate({ _id: "test", members: [{_id:0,host:"localhost:27017"}]})
注:初始完,副本集中唯一的节点,可能短时间显示为SECONDARY或OTHER。一般而言,稍等一会,就会自然恢复为primary,无需人工干预。