mongoDB - 日常操作三
MongoDB 进程控制
进程控制
db.currentOp() # 查看活动进程
db.$cmd.sys.inprog.findOne() # 查看活动进程 与上面一样
opid # 操作进程号
op # 操作类型(查询\更新)
ns # 命名空间,指操作的是哪个对象
query # 如果操作类型是查询,这里将显示具体的查询内容
lockType # 锁的类型,指明是读锁还是写锁
db.killOp(opid值) # 结束进程
db.$cmd.sys.killop.findOne({op:opid值}) # 结束进程
MongoDB 备份 还原
MongoDB备份方式
./mongoexport -d test -c t1 -o t1.dat # 导出JSON格式 -c # 指明导出集合 -d # 使用库 ./mongoexport -d test -c t1 -csv -f num -o t1.dat # 导出csv格式 -csv # 指明导出csv格式 -f # 指明需要导出那些例
MongoDB 数据还原 操作
MongoDB 还原方式
db.t1.drop() # 登录后删除数据
./mongoimport -d test -c t1 -file t1.dat
# mongoimport还原JSON格式
./mongoimport -d test -c t1 -type csv --headerline -file t1.dat
# mongoimport还原csv格式数据 --headerline # 指明不导入第一行 因为第一行是列名 ./mongodump -d test -o /bak/mongodump
# mongodump数据备份
./mongorestore -d test --drop /bak/mongodump/*
# mongorestore恢复 --drop #恢复前先删除
db.t1.find() #查看 # mongodump 虽然能不停机备份,但市区了获取实时数据视图的能力,使用fsync命令能在运行时复制数据目录并且不会损坏数据 # fsync会强制服务器将所有缓冲区的数据写入磁盘.配合lock还阻止对数据库的进一步写入,知道释放锁为止 # 备份在从库上备份,不耽误读写还能保证实时快照备份 db.runCommand({"fsync":1,"lock":1}) # 执行强制更新与写入锁 db.$cmd.sys.unlock.findOne() # 解锁 db.currentOp() # 查看解锁是否正常
MongoDB 数据修复
# 当停电或其他故障引起不正常关闭时,会造成部分数据损坏丢失 ./mongod --repair # 修复操作:启动时候加上 --repair
# 修复过程:将所有文档导出,然后马上导入,忽略无效文档.完成后重建索引。时间较长,会丢弃损坏文档 # 修复数据还能起到压缩数据库的作用
db.repairDatabase() # 运行中的mongodb可使用 repairDatabase 修复当前使用的数据库 {"repairDatabase":1} # 通过驱动程序