【问题标题】:Mongodb Replication Set and DatabaseMongodb复制集和数据库
【发布时间】:2016-02-27 18:15:01
【问题描述】:

我是 MongoDB 新手,我使用 MongoDB 2.6.5 有一段时间,我的环境:3 个服务器:primary,second,Arb,1 个数据库 DB1(~3GB,3 百万个项目),1 个 Replication Set:ReplicationSet1

                server1(primary)       server2(second)       server3(Arb)
DB1                   x                            x
ReplicationSet1:PRIMARY> rs.conf ()
{
        "_id" : "ReplicationSet1",
        "version" : 3,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "server1:27017"
                },
                {
                        "_id" : 1,
                        "host" : "server2:27017"
                },
                {
                        "_id" : 2,
                        "host" : "server3:30000",
                        "arbiterOnly" : true
                }
        ]
}

DB1 每天备份: mongodump --host server1 --db DB1 --out $BACKUP_HOME$DATE --oplog 现在我想创建新的数据库 DB2 并强制我的应用程序使用它,DB1 将用作只读(不再更改/更新),所以我将上次备份 DB1,然后每天备份 DB2。 我该怎么做?

我可以从 ReplicationSet1 中删除 DB1,以便只在主数据库和第二数据库之间复制 DB2 吗?

我可以只用 DB2 创建新的复制集吗?

我可以将 DB1 移动到另一个实例(例如端口 30001)并同时运行 2 个 MongoDB 实例(27017 和 30001)吗?

请给我一些建议,谢谢。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    我猜您想创建一个新数据库 DB2 并停止对 DB1 的写入,如果是这种情况,那么继续创建一个名为 DB2 的新数据库并将您的应用程序配置为仅使用 DB2 进行进一步的插入和读取,就像mongodb可以同时处理多个数据库连接一样简单,所以如果你想从旧的DB1数据库中读取数据,你只需连接到该数据库并读取数据,而且因为你没有插入任何数据到DB1 也不会在您的 DB1 数据库上发生任何复制,一旦您创建 DB2,它将自动复制,您不必担心。

    希望这对您有所帮助,如果您尝试移除主机并添加新主机,步骤都不同,如果您想告诉我,我会给您。

    【讨论】:

    • 非常感谢 Aoxi,我会在 ReplicationSet1 中创建更多的 DB2,因为 DB1 将用作只读(不再更改/更新)它不会影响复制流量。那我上次备份一次DB1,每天备份一次DB2 mongodump --host ip --db DB2 --out path
    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2012-07-18
    • 2023-03-29
    相关资源
    最近更新 更多