【问题标题】:How to restore the dump into your running mongodb如何将转储恢复到正在运行的 mongodb
【发布时间】:2013-09-26 17:18:35
【问题描述】:

我想使用 mongorestore 在 mongoDB 中加载数据/恢复转储数据。我正在尝试指挥

mongorestore dump

但它给了我错误

Sat Sep 21 16:12:33.403 JavaScript execution failed: SyntaxError: Unexpected identifier

我们如何恢复或将数据放入 mongoDB?请给我步骤。

【问题讨论】:

  • 天知道为什么你会得到这个错误。但请确保您在后台运行 mongod。虽然它与这个错误无关。顺便问一下,您是否手动更改了转储文件?
  • 不,我下载了作业转储文件。并提取它。如果你之前做过,请给我步骤。
  • 你在做 mongodb 101 的课程吗?我也这样做了,它对我有用。我希望你有一个稳定的 mongodb 版本的mongorestore 的二进制文件。
  • 是的,我也在做同样的事情。我可能会走错路。你能给我方法吗,把dump.bson放在哪里。我的数据库路径是 dbpath=C:\mongodb\data\db\
  • 其实我用的是Mac OS X,对Windows真的不太了解。尝试按照他们为 Windows 提供的说明进行操作。或者更好地在他们的课程论坛上讨论。许多人可能面临类似的问题。不紧张,ho jayega :)

标签: mongodb mongorestore data-dump


【解决方案1】:

该目录应该命名为“dump”,并且该目录应该有一个包含 .bson 和 .json 文件的目录。此目录应命名为您的数据库名称。

例如:如果您的数据库名称是机构,那么第二个目录名称应该是机构。

在这一步之后,进入终端中包含dump文件夹的目录,然后运行命令

mongorestore --drop.

请确保 mongo 已启动并运行。

这应该可以正常工作。

【讨论】:

  • 在命令中使用 --drop 之前,您应该确保它会删除数据库中的现有集合并使用转储文件中的数据重新创建一个新集合,从技术上讲,您将丢失所有来自 mongo 实例中数据库的当前数据(不在转储文件中)..!!!
【解决方案2】:

mongodump: 转储所有记录:

mongodump --db databasename

要限制数据库转储中包含的数据量,您可以指定 --db 和 --collection 作为 mongodump 的选项。例如:

mongodump --collection myCollection --db test

此操作从当前工作目录的 dump/ 子目录中的数据库“test”创建名为 myCollection 的集合的转储。 注意:如果备份数据文件夹中存在输出文件,mongodump 会覆盖它们。


mongorestore: 要将所有数据恢复到原始数据库:

1) mongorestore --verbose \path\dump

或恢复到新数据库:

2) mongorestore --db databasename --verbose \path\dump\<dumpfolder>

注意:两者都需要 mongod 实例。

【讨论】:

  • 还原时如何传递数据库凭据?
  • @Benjamin mongorestore -u &lt;username&gt; --authenticationDatabase "admin" --db databasename。身份验证数据库不一定是“管理员”,但可能。应该以交互方式要求您输入密码(您可能还需要使用 sudo 提升密码)。
  • 应该是--db-d 但不是-db
【解决方案3】:
  1. 启动mongod
  2. 导航到您在 OS shell 中提取“enron.zip”的文件夹(如果是 Windows,则为 cmd)
  3. 然后键入 ">mongorestore -d your_db_name dump/enron"

【讨论】:

    【解决方案4】:

    mongodump

    转储数据库
    mongodump --host <database-host> -d <database-name> --port <database-port> --out directory
    

    通过 mongorestore

    恢复数据库

    带索引恢复

    mongorestore --host <database-host> -d <database-name> --port <database-port> foldername
    

    没有索引恢复

    mongorestore --noIndexRestore --host <database-host> -d <database-name> --port <database-port> foldername
    

    从 CSV 导入单个集合 [第一列将被视为 Col/Key 名称]

    mongoimport --db <database-name> --port <database-port> --collection <collection-name> --type csv --headerline --file /path/to/myfile.csv
    

    从 JSON 导入单个集合

    mongoimport --db <database-name> --port <database-port> --collection <collection-name> --file input.json
    

    【讨论】:

      【解决方案5】:

      您可以使用以下命令将转储到本地计算机:

      mongodump -h <host>:<port> -u <username> -p <password> -d ubertower-new -o /path/to/destination/directory
      

      你可以使用这个命令从本地机器恢复到你的 Mongo DB

      mongorestore -h <host>:<port> -u <username> -p <password> -d <DBNAME> /path/to/destination/directory/<DBNAME>
      

      【讨论】:

        【解决方案6】:

        对于 mongoDB 数据库还原,请在此处使用此命令

        mongorestore --db databasename --drop dump file path
        

        【讨论】:

        • 在命令中使用 --drop 之前,您应该确保它会删除数据库中的现有集合并使用转储文件中的数据重新创建一个新集合,从技术上讲,您将丢失所有来自 mongo 实例中数据库的当前数据(不在转储文件中)..!!!
        【解决方案7】:

        我遇到了很多麻烦,所以我想出了自己的解决方案,我创建了这个脚本,只需在脚本中设置路径和数据库名称并运行它,它就可以解决问题

        #!/bin/bash
        
        FILES= #absolute or relative path to dump directory
        DB=`db` #db name
        for file in $FILES
        do
        
            name=$(basename $file)
            collection="${name%.*}"
            echo `mongoimport --db "$DB" --file "$name" --collection "$collection"`
        
        done
        

        【讨论】:

          【解决方案8】:

          mongodump --host test.mongodb.net --port 27017 --db --username --password --authenticationDatabase admin --ssl --out

          mongorestore --db --verbose

          【讨论】:

            【解决方案9】:

            要恢复单个数据库:

            1. 备份testdb数据库

              $ mongodump --db testdb
              
            2. testdb 数据库恢复到名为testdb2 的新数据库

              $ mongorestore --db testdb2 dump/testdb
              

            恢复所有数据库:

            1. 备份所有数据库

              $ mongodump
              
            2. 恢复所有数据库

              $ mongorestore dump
              

            【讨论】:

            • 我想这个答案应该被标记为已解决,因为对我来说,这是唯一一个在 windows 和 linux 中也适用于我的答案。
            【解决方案10】:

            对于 mongoDB 数据库还原,请在此处使用此命令。 首先转到您的 mongodb 数据库位置,例如 例如 : cd 下载/blank_db/v34000 之后输入 mongorestore -d v34000 ./

            【讨论】:

              【解决方案11】:

              沿着这条路走。

              C:\Program Files\MongoDB\Server\4.2\bin
              

              在 bin 文件夹中运行 cmd 并粘贴以下命令

              mongorestore --db <name-your-database-want-to-restore-as> <path-of-dumped-database>
              

              例如:

              mongorestore --db testDb D:\Documents\Dump\myDb
              

              【讨论】:

                【解决方案12】:

                您还可以将下载的 Atlas Backup .wt WiredTiger 文件(解压缩或解压缩为 restore 文件夹)恢复到本地 MongoDB。

                首先,备份您的/data/db 路径。叫它/data_20200407/db。其次,将 Atlas Backup 还原文件夹中的所有 .wt 文件复制粘贴到本地 /data/db 路径中。重新启动 Ubuntu 或 MongoDB 服务器。启动你的 Mongo shell,你应该有那些恢复的文件。

                【讨论】:

                  【解决方案13】:

                  如果你可以删除现有的集合,那么下面的命令对我来说很好。

                  • 可以删除现有集合
                  $ uri_complete="your_complete_uri"
                  $ restoreFileName="your_restore_filename"
                  $ mongorestore --uri=$uri_complete -v --gzip --archive=$restoreFileName --drop
                  
                  • 不能删除现有集合
                  $ uri_complete="your_complete_uri"
                  $ restoreFileName="your_restore_filename"
                  $ mongorestore --uri=$uri_complete -v --gzip --archive=$restoreFileName
                  

                  如果您的数据库在默认端口上的 localhost 上运行而无需身份验证,则以下操作将起作用。

                  $ mongorestore -v --gzip --archive=restorefile.gzip --drop
                  

                  更多详情 - mongorestore

                  【讨论】:

                    【解决方案14】:

                    备份 MongoDb 集合的过程。

                    1. 在 ProgramFiles 或 ProgramFiles32 中找到 MongoDb 文件夹。
                    2. 导航到bin文件夹。找到这样的路径。C:\Program Files\MongoDB\Server\4.2\bin
                    3. 让你必须安装 Mongo Dump Tools。
                    4. 如果您没有找到任何此类工具,请通过此链接进行安装。 MongDb Database Tools
                    5. 在 bin 文件夹内打开 CMD 或导航到 MongdDb Server Bin 文件夹。
                    6. 运行此命令 mongodump --db yourdatabasename。运行此命令后,转储创建过程将开始,它将在侧 bin 中创建一个 Dump 文件夹。

                    恢复过程

                    1. 在 Mongdb Server bin 文件夹中打开 CMD 提示符。

                    2. 然后运行此命令 **mongorestore --db mydababse --verbose

                    3. D:\MongoDbBackup\mydababse\Dec28-21**(这是我存储备份集合的路径)。

                    4. 有时 mongDb 恢复程序需要文件夹权限才能恢复。

                    【讨论】:

                      猜你喜欢
                      • 2019-06-27
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-12-07
                      • 2011-07-24
                      • 1970-01-01
                      • 2011-07-12
                      • 1970-01-01
                      • 2018-03-16
                      相关资源
                      最近更新 更多