Mongodb学习笔记(二)
?
备份停机拷贝mongodump/mongorestorefsync? ? ? ? ? ? ? ? ? ?> use admin修复? ? ? ? ? ? ? ? ? ? 未正常停止重后启应该修复,使用--repair参数进行启动? ? ? ? ? ? ? ? ? ? 运行中数据库的修复,db.repairDatabase(),使用程序{"repairDatabase":1}> db.runCommand({"fsync":1,"lock":1}){??????? "info" : "now locked against writes, use db.fsyncUnlock() to unlock",??????? "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",??????? "ok" : 1}锁定后所有对数据库的写操作全部被会阻塞,读取操作不会受影响,此时可以进行文件拷贝进行备份,完成后执行> db.$cmd.sys.unlock.findOne();
{ "ok" : 1, "info" : "unlock requested" }
> db.currentOp();
{ "inprog" : [ ] }? ? ??解锁,写入正常。
复制主从复制? ? ? ? ? ? ? ? ? ? 新版本已经不在推荐,? 复制集(Replica Sets)? ? ? ? ? ? ? ? ? ? ? 副本集没有主从节点之分,在同一时间多个节点总有一个活跃节点和多个备份节点,当其中一个节点出故障时,有其它的节点会自动升为活跃节点。? ? ? ? ? ? ? ? ? ? ??
- 创建不同的实例目录
- 分别带参数启动实例rs.initiate()
? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意:操作系统主机名一定要在/etc/hosts里加入对应的配置,否则下面的操作会报错
- 初始化主复制
- 测试
? ? ?????????????????????增加节点? ? ?????????????????????通过oplog增加节点?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mkdir -p /data/rs/rs0-3? ? ???????????????????????????????./mongod --port 27020 --dbpath /data/rs/rs0-3 --replSet rs0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mongo 连接到活动节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27020")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.status(),直接到同步完成
?????????????????????????通过数据库快照(--fastsync)和 和和 和oplog增加节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cp -r /data/rs/r0-3 /data/rs0-4(注意,需要在停止服务的时候进行复制)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???./mongod --port 27021 --dbpath /data/rs/rs0-4 --replSet rs0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mongo 连接到活动节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27020")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.status(),直接到同步完成? ? ??????????????????????????? ? ? ??
减少节点? ? ? ? ? ? ? ? ? ? 登录到活动节点,执行rs.remove("host:port"),然后使用rs.status()查看复制集状态
? ? ? ? ? ? ? ? ? ??