MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB sebagai layanan windows dan menyiapkan replicaSet

Anda dapat mengatur set replika dan layanan MongoDB secara bersamaan di Windows. Karena Anda telah menyiapkan kumpulan replika, Anda menyadari bahwa Anda perlu memiliki direktori data dan file log untuk setiap anggota kumpulan replika. Jika Anda menjalankan semua anggota kumpulan replika pada satu mesin, setiap anggota kumpulan replika harus diberi nomor port yang berbeda. Sampel yang disediakan hanya untuk pengembangan atau pengujian fungsional. Menyiapkan semua anggota kumpulan replika pada satu mesin akan menjadi satu titik kegagalan selain menjadi hambatan kinerja total.

Buat file konfigurasi untuk setiap anggota kumpulan replika termasuk direktori data, file log, nomor port, dan nama kumpulan replika. Misalnya, saya memiliki kumpulan replika yang terdiri dari 3 anggota, satu Mongodb utama berjalan pada port 27017 dan dua sekunder, Mongodb1 pada port 37017, dan Mongodb2 pada port 47017. Nama kumpulan replika adalah rs1.

Berikut adalah file konfigurasi misalnya 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

Berikut adalah file konfigurasi untuk salah satu sekunder.

# 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

Tautan berikut menyediakan daftar lengkap opsi file konfigurasi:http://docs.mongodb.org/manual/reference/configuration-options/

Tambahkan ketiga instance MongoDB sebagai layanan Windows. Karena saya tidak menentukan nama tampilan layanan dan layanan, layanan MongoDB akan menggunakan nama tampilan layanan/layanan default MongoDB

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

Instal dua instans MongoDB lainnya dengan nama layanan dan nama tampilan layanan.

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

Mulai ketiga instance MongDB

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.

Verifikasi status ketiga layanan Windows menggunakan perintah sc dengan opsi kueri.

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

Konfigurasikan set replika dari shell MongoDB. Dalam contoh berikut, instans MongoDB pada port 27017 akan menjadi anggota kumpulan replika utama.

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

Setel konfigurasi set replika dari shell MongoDB.

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

Di shell MongoDB, inisialisasi kumpulan replika dan verifikasi statusnya.

> 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>

Anda juga dapat memeriksa status sekunder. Di sini saya menghubungkan ke salah satu sekunder pada port 37017.

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

Prompt berikut akan muncul di shell MongoDB yang menunjukkan status sekunder.

rs1:SECONDARY>

Tutorial tentang penerapan set replika dapat ditemukan di sini:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Otomasi Penerapan Basis Data MongoDB

  2. MongoDB $radiansToDegrees

  3. Cara Memperbarui Beberapa Elemen Array di mongodb

  4. Bagaimana cara menangani migrasi skema luwak dengan benar?

  5. Bagaimana cara mengambil nilai dari mongoDB, dengan nama kuncinya?