【问题标题】:Mongodump from remote server来自远程服务器的 Mongodump
【发布时间】:2013-10-14 05:47:05
【问题描述】:

我们最近将一些数据移植到了 MongoDB,现在正在考虑运行每日备份,最好是从 cron 作业,并将其中一个备份恢复到辅助 mongo 数据库。

我们的系统设置如下:

  • 服务器 1:开发 mongo 数据库
  • 服务器 2:两个 mongo 数据库,一个用于暂存数据,一个用于生产
  • 服务器 3:是我们运行所有 cron 作业/批处理脚本的地方。

我查看了 mongo 文档,并登录到我们的 cron 作业服务器并尝试运行以下命令:(为安全起见,更改了用户名、主机和密码,我实际上并没有连接到 localhost)

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

我收到以下消息:

10 月 7 日星期一 10:03:42 为副本集 127.0.0.1 启动新的副本集监视器,开发种子:27017
10 月 7 日星期一 10:03:42 成功连接到种子开发:27017 副本集 127.0.0.1
10 月 7 日星期一 10:03:42 警告:节点:开发:27017 不是集合的一部分:127.0.0.1 ismaster:{ ismaster:true,maxBsonObjectSize:16777216,ok:1.0 }
10 月 7 日星期一 10:03:44 副本集 127.0.0.1 的副本集监视器启动,地址为 127.0.0.1/
10 月 7 日星期一 10:03:44 [ReplicaSetMonitorWatcher] 开始无法连接到 [127.0.0.1/development:27017] connect failed to set 127.0.0.1/development:27017

我确认可以使用mongo -u -p ip/development连接到mongo数据库

我们的最终目标是从生产数据库中转储数据并将其存储在临时数据库中。这两个数据库都位于同一个盒子上,如果这有区别的话,但出于测试目的,我只是想获取开发测试数据的备份。

【问题讨论】:

  • 试试把--host 127.0.0.1/development换成--host 127.0.0.1 -d development,或许能解决你的问题。
  • 确实如此,当我使用mongo -u -p 连接时,我只是在主机之后添加数据库。显然这不是处理它的适当方法,至少对于 mongodump 而言。转储与该更改完美配合

标签: mongodb database-dump


【解决方案1】:

mongo 客户端可以解析MongoDB connection string URI,因此您可以传递单个连接字符串 URI,而不是单独指定所有连接参数。

在您的情况下,您尝试将连接 URI 作为 host 传递,但 127.0.0.1/development 不是有效的主机名。这意味着您应该将database 参数与host 分开指定:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

【讨论】:

  • --authenticationDatabase admin 验证特定表。
  • 能否也为 mongorestore 命令添加 arg 结构?
  • @sbk mongorestore --host --port --db --authenticationDatabase --username --password 集合
【解决方案2】:
mongodump --host remotehostip:port --db dbname -u username -p password

【讨论】:

    【解决方案3】:


    这对我有用。

    参考:https://docs.mongodb.com/manual/reference/program/mongodump


    语法 1:

    mongodump --host <hostname:port> --db <database> --username <username> --password <password> --out <path>
    

    语法 2:

    mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path>
    



    示例 1:

    mongodump --host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07
    

    示例 2:

    mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07
    

    【讨论】:

      【解决方案4】:

      这里是从节点服务器导出集合到本地机器的示例:

      Host : xxx.xxx.xxx.xx
      Port :27017
      Username:”XXXX”
      Password :”YYYY”
      AuthDB : “admin”
      “DB”: “mydb”
      
      D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u “XXXX” -p “YYYY” –authenticationDatabase “admin” –db “mydb”
      

      【讨论】:

        【解决方案5】:

        您还可以使用 gzip 备份一个集合并即时压缩备份

        mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
        

        或在文件名中带有日期:

        mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
        

        【讨论】:

          【解决方案6】:

          您可以通过 --uri 与 mongodump 一起使用

          mongodump --uri "mongodb://usersname:password@127.0.0.1:27100/dbname?replicaSet=replica_name&authSource=admin" --out "C:\Umesh"
          

          您的所有收藏都将存储在 out 文件夹中,它将创建目录名称作为您的数据库名称,并且所有收藏都是 bson 并且元数据将存储为 json 格式。

          用于恢复

          mongorestore --uri "mongodb://usersname:password@127.0.0.1:27100/dbname?replicaSet=replica_name&authSource=admin" -d dbname mongodbumppath
          

          试试这个吧。

          【讨论】:

            【解决方案7】:

            这对我来说就像一个带有远程 Windows Server 的单一集合的魅力。

            mongodump --host <remote_ip> --port <mongo_port> --db <remote_db_name>  --authenticationDatabase <remote_auth_db> --username <remote_mongo_username> --password <remote_db_pwd> --out <local_DB_backup_folder> --collection <remote_collection_name>
            

            【讨论】:

              【解决方案8】:

              使用它通过 URI 获取转储:

              mongodump --uri=mongodb+srv://john:xxxxxxxxxxxxxxx@cluster0-jdtjt.mongodb.net/sales
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-01-31
                • 2015-08-12
                • 2020-06-19
                • 1970-01-01
                • 1970-01-01
                • 2010-12-13
                相关资源
                最近更新 更多