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

WindowsサービスとしてのMongoDBとreplicaSetのセットアップ

    WindowsではレプリカセットとMongoDBサービスを同時に設定できます。すでにレプリカセットを設定しているので、レプリカセットのメンバーごとにデータディレクトリとログファイルが必要であることに注意してください。 1台のマシンですべてのレプリカセットメンバーを実行している場合は、各レプリカセットメンバーに異なるポート番号を割り当てる必要があります。提供されているサンプルは、開発または機能テストのみを目的としています。単一のマシンにすべてのレプリカセットメンバーを設定すると、全体的なパフォーマンスの低下に加えて、単一障害点が構成されます。

    データディレクトリ、ログファイル、ポート番号、レプリカセット名など、レプリカセットメンバーごとに構成ファイルを作成します。たとえば、3つのメンバーのレプリカセットがあります。1つはポート27017で実行されているプラ​​イマリMongodbで、2つはポート37017で実行されているMongodb1、ポート47017でMongodb2です。レプリカセット名はrs1です。

    これがMongodbなどの構成ファイルです。

    # mongod.conf
    
    # data directory
    dbpath=C:\data\db
    
    # log file
    logpath=C:\mongodb-win32-i386-2.4.4\log\mongo.log
    
    logappend=true
    
    #port number 
    port=27017
    
    #replica set name
    replSet=rs1
    

    セカンダリの1つの構成ファイルは次のとおりです。

    # mongo.conf
    
    # data directory
    dbpath=C:\data\db2
    
    # log file
    logpath=C:\mongodb-win32-i386-2.4.4\log2\mongo.log
    
    logappend=true
    
    # port number
    port=47017
    
    # replica set name
    replSet=rs1
    

    次のリンクは、構成ファイルオプションの完全なリストを提供します:http://docs.mongodb.org/manual/reference/configuration-options/

    3つのMongoDBインスタンスすべてをWindowsサービスとして追加します。サービスとサービスの表示名を指定しなかったため、MongoDBサービスはデフォルトのサービス/サービスの表示名MongoDBを使用します

    C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod.cfg --install
    

    他の2つのMongoDBインスタンスをサービス名とサービス表示名でインストールします。

    C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod1.cfg --serviceName MongoDB1 --serviceDisplayName MongoDB1 --install
    C:\mongodb-2.4.4\bin>mongod --config C:\mongodb-2.4.4\mongod2.cfg --serviceName MongoDB2 --serviceDisplayName MongoDB2 --install
    

    MongDBの3つのインスタンスすべてを開始します

    C:\mongodb-2.4.4\bin>net start mongodb
    The Mongo DB service is starting.
    The Mongo DB service was started successfully.
    
    C:\mongodb-2.4.4\bin>net start mongodb1
    The MongoDB1 service is starting.
    The MongoDB1 service was started successfully.
    
    C:\mongodb-2.4.4\bin>net start mongodb2
    The MongoDB2 service is starting.
    The MongoDB2 service was started successfully.
    

    クエリオプションを指定したscコマンドを使用して、3つのWindowsサービスすべてのステータスを確認します。

    C:\mongodb-2.4.4\bin>sc query mongodb
    C:\mongodb-2.4.4\bin>sc query mongodb1
    C:\mongodb-2.4.4\bin>sc query mongodb2
    

    MongoDBシェルからレプリカセットを構成します。次の例では、ポート27017のMongoDBインスタンスがプライマリレプリカセットのメンバーになります。

    C:\mongodb-2.4.4\bin>mongo --port 27017
    

    MongoDBシェルからレプリカセット構成を設定します。

    > config = { _id: "rs1", members:[
    ... { _id : 0, host : "localhost:27017"},
    ... { _id : 1, host : "localhost:37017"},
    ... { _id : 2, host : "localhost:47017"}
    ... ] }
    

    MongoDBシェルで、レプリカセットを初期化し、そのステータスを確認します。

    > rs.initiate(config)
    {
            "info" : "Config now saved locally.  Should come online in about a minute.",
            "ok" : 1
    }
    > rs.status()
    {
            "set" : "rs1",
            "date" : ISODate("2013-07-02T18:40:27Z"),
            "myState" : 1,
            "members" : [
                    {
                            "_id" : 0,
                            "name" : "localhost:27017",
                            "health" : 1,
                            "state" : 1,
                            "stateStr" : "PRIMARY",
                            "uptime" : 651,
                            "optime" : {
                                    "t" : 1372790393,
                                    "i" : 1
                            },
                            "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                            "self" : true
                    },
                    {
                            "_id" : 1,
                            "name" : "localhost:37017",
                            "health" : 1,
                            "state" : 2,
                            "stateStr" : "SECONDARY",
                            "uptime" : 31,
                            "optime" : {
                                    "t" : 1372790393,
                                    "i" : 1
                            },
                            "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                            "lastHeartbeat" : ISODate("2013-07-02T18:40:26Z"),
                            "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                            "pingMs" : 0,
                            "syncingTo" : "localhost:27017"
                    },
                    {
                            "_id" : 2,
                            "name" : "localhost:47017",
                            "health" : 1,
                            "state" : 2,
                            "stateStr" : "SECONDARY",
                            "uptime" : 31,
                            "optime" : {
                                    "t" : 1372790393,
                                    "i" : 1
                            },
                            "optimeDate" : ISODate("2013-07-02T18:39:53Z"),
                            "lastHeartbeat" : ISODate("2013-07-02T18:40:26Z"),
                            "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
                            "pingMs" : 0,
                            "syncingTo" : "localhost:27017"
                    }
            ],
            "ok" : 1
    }
    rs1:PRIMARY>
    

    セカンダリのステータスを確認することもできます。ここでは、ポート37017でセカンダリの1つに接続しています。

    C:\mongodb-2.4.4\bin>mongo --port 37017
    

    次のプロンプトがMongoDBシェルに表示され、セカンダリステータスが表示されます。

    rs1:SECONDARY>
    

    レプリカセットのデプロイに関するチュートリアルは、https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

    にあります。

    1. MongoDB find()

    2. MongoDB $ setIsSubset

    3. ビッグデータ処理エンジン–どちらを使用しますか?:パート1

    4. アプリケーションキャッシュv.s.休止状態の第2レベルのキャッシュ、どちらを使用しますか?