sql >> データベース >  >> NoSQL >> MongoDB

MongoDBレプリカセットをスタンドアロンサーバーに変換する方法

    レプリカセットからすべてのセカンダリホストを削除し(rs.remove('host:port'))、replSetパラメーターを指定せずにmongoデーモンを再起動し(/etc/mongo.confを編集)、セカンダリホストをスタンドアロンモードで再開します。

    プライマリホストは、rs.removeを使用してレプリカセットから削除できないため、注意が必要です。レプリカセットにプライマリノードしかない場合は、mongoシェルを終了してmongoを停止する必要があります。次に、/ etc / mongo.confを編集し、replSetパラメーターを削除して、mongoを再起動します。mongoを起動すると、すでにスタンドアロンモードになっていますが、mongoシェルは次のようなメッセージを表示します。

    2015-07-31T12:02:51.112 + 0100 [initandlisten] **警告:mongodは--replSetなしで開始されましたが、local.system.replsetに1つのドキュメントが存在します

    警告を削除するには、2つの手順を実行できます:1)ローカルデータベースを削除してmongoを再起動します:

    use local
    db.dropDatabase();
    
    /etc/init.d/mongod restart
    

    2)または、それほど過激になりたくない場合は、次のことができます。

    use local
    db.system.replset.find()
    

    次のようなメッセージが表示されます:

    { "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }
    

    次に、次を使用して消去します:

    db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })
    

    おそらくプロンプトが表示されます:

    WriteResult({ "nRemoved" : 1 })
    

    これで、mongoを再起動でき、警告が消え、警告なしでMongoがスタンドアロンモードになります



    1. MongoDBコレクションをCSVファイルにエクスポートする

    2. Node.jsの自己署名証明書を使用したMongoDBSSL

    3. MongoDBコレクションのフィールドをカウントする

    4. 結果をredisの別のコマンドに渡す