zoukankan      html  css  js  c++  java
  • Mongodump及mongorestore的运用与问题

    monogodump命令

    mongodump对运行的MongoDB进行查询,然后对查询到的数据进行备份写入磁盘,是一种能再运行时备份的方法,MongoDB自带该工具。

    mongodump使用的是普通的查询机制(无锁定),所以产生的备份不一定是服务器数据的实时快照,即当运行备份同时有客户端写入数据,该数据就不会备份到磁盘,备份时的查询会对其他客户端的性能产生不利的影响。

    命令格式如下(可运行mongodump --help查看全部命令):mongodump -d 数据库名称 -o 文件名

    实例:mongodump -d Test -o backup

    mongorestore命令

    mongorestore是MongoDB提供从备份中恢复数据的工具,mongorestore获取mongodump的输出结果,并将备份的数据插入到运行中的MongoDB实例。

    命令格式如下(可运行mongorestore --help查看全部命令):mongorestore -d 数据库名 [--drop]  数据源

     --drop 代表在恢复前删除集合(若存在),否则备份的数据就会和现有的集合合并,可能会覆盖一些文档。

    实例:mongorestore -d Test --drop backup/Test

    问题:

    MongoDB版本:win32-x86_64-2.0.2

    线上备份数据前已查看A集合的A字段为空,运行mongodump备份过后(数据源B)再次查看A集合的A字段,同样为空。

    该备份的数据源运行mongorestore --drop恢复到线下的MongoDB,并运行程序设置A集合的A字段有值,过后运行mongorestore --drop将数据源B再次恢复,查看A集合的A字段,发觉该字段还是有值,执行--drop应该会将之前的文档都删除再恢复数据源B,即A集合的A字段应该为空。

    图示如下:

    1、线下恢复数据源B

    2、线上备份的数据源B

    请各位大神解惑,谢谢!

    人总要去积累生活、工作上的点点滴滴,慢慢的进步,以后回头看看,笑笑,顺便学学,人都说回忆才是最美的。
  • 相关阅读:
    谷歌的 I/O 2019,究竟推出了什么新特性?
    Flutter交互实战-即刻App探索页下拉&拖拽效果
    5G到来,App的未来,是JavaScript,Flutter还是Native ?
    python爬虫-房天下-登录
    python爬虫-有道翻译-js加密破解
    虾米音乐爬虫
    Golang 读写文件
    Golang-使用md5对字符串进行加密
    Golang-使用mysql
    Golang 传递任意类型的切片
  • 原文地址:https://www.cnblogs.com/jueye/p/2986292.html
Copyright © 2011-2022 走看看