MongoDB运维备忘录

MongoDB运维备忘录

    環境

    AWS EC2
    構成: Primary / Secondary / Arbiter
    OS: Amazon Linux
    MongoDB: 2.6.11

在MongoDB的环中添加或删除节点

    構成からノードを外すコマンド(MongoDBのプライマリで実行

    >rs.remove(“:27017″);

    追加したノードをセカンダリから同期をする場合

    > SECONDARY> rs.syncFrom(“:27017″)

    不要になるMongoDBを切り離す

    下記のコマンドはPrimaryで実行する
    $ rs.remove(“:27017″);

进行主/次要权重设置

    Priorityの設定

    0 – 1000 の値で値が高い方が優先してプライマリに昇格する
    優先度が高いほうがプライマリとして動作する

    Configをセット
    > cfg = rs.conf()
    配列の数字は_idを入れる( 0は絶対にPrimaryにならない状態になる)
    プライオリティを10にセット
    > cfg.members[1].priority = 50
    設定を反映する
    > rs.reconfig(cfg)
    反映後の設定を確認する
    > rs.conf()

testRep1:SECONDARY> rs.conf()
{
    "_id" : "testRep1",
    "version" : 11,
    "members" : [
        {
            "_id" : 0,
            "host" : "172.31.2.198:27017",
            "arbiterOnly" : true
        },
        {
            "_id" : 1,
            "host" : "172.31.7.138:27017",
            "priority" : 50
        },
        {
            "_id" : 2,
            "host" : "172.31.2.117:27017",
            "priority" : 30
        }
    ]
}

删除慢查询

    > db.currentOp()

    実行中のクエリを表示する

    “desc” : “repl writer worker ”

    レプリカのためのクエリなので削除してはいけない

    > db.killOp(opid)

    クエリを削除する

关于oplog

我方先前提到了一种示例流程,但实际上,只要将出现故障的实例恢复到在线状态,数据就会自动同步。
这需要满足一定条件,即恢复在线的MongoDB的oplog集合中存储的同步数据不会过时。oplog集合是一种有容量限制的集合,当超过预定大小的数据被投入时,旧数据会被按顺序删除。

    oplogを確認する
    PRIMARY> db.getReplicationInfo()

bannerAds