【问题标题】:How to use the dumped data by mongodump?如何使用 mongodump 转储的数据?
【发布时间】:2011-07-26 14:47:42
【问题描述】:

我使用mongodump转储了我的mongodb数据库,它在dump/mydb下创建了一些bson文件

但我不知道如何使用它们。我试过mongoimport,但似乎无法导入 bson 数据。那么如何使用这些bson文件呢?如何将它们导入另一个 mongodb?

【问题讨论】:

    标签: mongodb dump mongorestore mongodump


    【解决方案1】:

    对于 mongo 版本 3 及更高版本,请使用以下命令:

    mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/
    

    Mongo 之后会询问密码

    【讨论】:

      【解决方案2】:

      您需要使用 mongorestore,而不是用于导入 json 或 csv 等的 mongoimport ...。

      来自back-up-with-mongodump 文档:

      mongodump 从 MongoDB 数据库读取数据并创建高保真 BSON 文件,mongorestore 工具可以使用这些文件填充 MongoDB 数据库。

      mongodumpmongorestore 是简单高效的后备工具 启动和恢复小型 MongoDB 部署,但不适合 捕获大型系统的备份。

      您可以在下面的文档中阅读有关 mongorestore 的更多信息;我会看一下并阅读它们,因为它们非常有帮助。

      http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

      您还可以查看http://learnmongo.com 获取提示和帮助!

      【讨论】:

        【解决方案3】:

        如前面的答案所述,您必须使用 mongorestore 而不是 mongoimport。添加到前面的答案,当您的 mongodb 运行时,执行以下命令从转储目录恢复您的转储,

        mongorestore dump
        

        这会将所有集合导入到您的 mydb 数据库中。但是,这不会在还原之前删除数据库。如果您希望在导入前删除数据库,

        mongorestore --drop dump
        

        mydb 目录中的 bson 文件将恢复为 mydb 数据库中的集合。有关 mongorestore 的更多信息,请查看文档here

        【讨论】:

        • 奇怪,我试图支持你的答案,但它没有改变。无论如何,mongorestore 需要从命令行运行,而不是在 mongo shell 中运行
        • 哦,是的,我忘了说。
        【解决方案4】:

        为了解决这个问题,我将转储文件夹dbdump(包含bson文件)复制到mongodb的bin目录并在命令提示符下执行以下命令:

        1。 cd "MongoDB 的 bin 文件夹路径"
        (例如:cd C:\Program Files\MongoDB\Server\3.2\bin)

        2。 mongorestore.exe --dir ./目录名 --db 数据库名
        (例如:mongorestore --dir ./dbdump --db testdb)

        转储文件夹中的所有 bson 文件都将导入到您的数据库中。 您可以通过执行以下命令来验证这一点:
        cd "MongoDB 的 bin 文件夹路径"
        mongo.exe
        显示数据库;

        【讨论】:

          【解决方案5】:

          使用 mongorestore。 mongoimport 处理 mongoexport 的输出。 mongodump 和 mongorestore 处理二进制数据文件,而导入/导出处理 json、csv 等。(人类可读格式)

          【讨论】:

            【解决方案6】:

            我正在使用mongodumpmongorestore 进行日常备份和从备份中恢复。我有两个 .bat 文件:
            首先,对于备份,您只需指定主机数据库名称和备份文件夹:

            SET host=localhost:27020
            SET dbNameToDump=MyDB
            SET backupsFolder=Backups
            
            mongodump.exe --host %host% --db %dbNameToDump%
            
            SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
            cd %backupsFolder%
            md %date%
            
            xcopy /e ..\dump %date%
            
            rmdir /s /q ..\dump
            

            在 bat 文件上方创建具有类似 2011-03-31.11-17(yyyy-MM-dd.hh-ss) 名称的文件夹,在文件夹 Backups 中使用来自指定数据库的转储集合。在文件资源管理器中它看起来像这样:

            我用于恢复指定转储文件的第二个 bat 文件(这里您还需要指定转储文件的数据库名称和文件夹):

            SET host=localhost:27020
            SET dbNameToRestore=MyDB
            SET restoreFolder=Restore
            
            mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%
            

            在文件资源管理器中:

            此外,我正在使用 Windows 计划来自动执行备份过程。

            希望以上信息对某人有用。

            【讨论】:

            • 这真的很有用。我需要一些额外的功能(备份到网络共享)。 gist.github.com/adamb0mb/7191353
            • 您认为转储多少数据是安全的?根据mongo文档,推荐a small data set,但是不知道小号怎么定义?
            猜你喜欢
            • 1970-01-01
            • 2023-04-06
            • 1970-01-01
            • 2011-10-23
            • 2021-08-26
            • 2016-09-27
            • 1970-01-01
            • 1970-01-01
            • 2021-04-10
            相关资源
            最近更新 更多