繁体   English   中英

如何在mongodb中将数据库从一台服务器复制到另一台服务器

[英]How to copy database from one server to another in mongodb

我正在尝试将Nginx托管的生产服务器中的数据库[mongodb]复制到本地开发环境设置[linux计算机]。

我尝试了以下url中给出的解决方案如何将数据库从一台MongoDB服务器复制到另一台服务器?

但是,当我建立ssh隧道并尝试复制时,出现以下错误

db.copyDatabase("admin","testadmin","localhost:27018")
{
        "ok" : 0,
        "errmsg" : "couldn't connect to server localhost:27018, connection attempt failed"
}

如果我尝试直接在目标服务器中复制数据库。 我收到以下错误

db.copyDatabase("admin","testadmin","mongodb://<remotehostname>:27017")
{
        "operationTime" : Timestamp(1545126863, 1),
        "ok" : 0,
        "errmsg" : "Must specify set name for replica set ConnectionStrings",
        "code" : 9,
        "codeName" : "FailedToParse",
        "$clusterTime" : {
                "clusterTime" : Timestamp(1545126863, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}

请帮忙。 我被问题困扰了两天。 我不确定是否可以使用mongodump和还原。 我在远程服务器上使用mongo 3.4版,在本地服务器上使用mongo 3.6版。 这可能是个问题吗?

我也尝试添加副本集,但出现以下错误。 如何找到副本集名称?

db.copyDatabase("admin","testadmin","mongodb://<remotehostname>:27017/?replicaSet=test")
{
        "operationTime" : Timestamp(1545117923, 135),
        "ok" : 0,
        "errmsg" : "Bad digit \"/\" while parsing 27017/?replicaSet=test",
        "code" : 9,
        "codeName" : "FailedToParse",
        "$clusterTime" : {
                "clusterTime" : Timestamp(1545117923, 135),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}

一种替代方法可能是使用mongoDump / mongorestore。

https://stackoverflow.com/a/22201759/5107937

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM