Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running replication on Mongo DB issues

I am new to mongo and am trying the code example given in the tutorail on Mongo site but am facing the issue below. According to the tutorial it should be fairly simple. But i am getting --replSet error even though I have given it while creating a host. I am developing on a standalone machine with fedora linux. Also can some one tell me how do I reset/remove the host once they are assigned.

[root@localhost data]#  mongod --replSet cluster1 --port 27019 --dbpath /data/r2
Tue Mar 13 18:40:40 
Tue Mar 13 18:40:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Tue Mar 13 18:40:40 
Tue Mar 13 18:40:40 [initandlisten] MongoDB starting : pid=9849 port=27019 dbpath=/data/r2 32-bit host=localhost.localdomain
Tue Mar 13 18:40:40 [initandlisten] 
Tue Mar 13 18:40:40 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Tue Mar 13 18:40:40 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Tue Mar 13 18:40:40 [initandlisten] **       with --journal, the limit is lower
Tue Mar 13 18:40:40 [initandlisten] 
Tue Mar 13 18:40:40 [initandlisten] db version v2.0.3, pdfile version 4.5
Tue Mar 13 18:40:40 [initandlisten] git version: 05bb8aa793660af8fce7e36b510ad48c27439697
Tue Mar 13 18:40:40 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41
Tue Mar 13 18:40:40 [initandlisten] options: { dbpath: "/data/r2", port: 27019, replSet: "cluster1" }
Tue Mar 13 18:40:40 [initandlisten] waiting for connections on port 27019
Tue Mar 13 18:40:40 [websvr] admin web console waiting for connections on port 28019
Tue Mar 13 18:40:40 [initandlisten] connection accepted from 127.0.0.1:56898 #1
Tue Mar 13 18:40:40 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
Tue Mar 13 18:40:40 [rsStart] replSet info you may need to run replSetInitiate -- rs.initiate() in the shell -- if that is not already done
Tue Mar 13 18:40:50 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
^CTue Mar 13 18:41:00 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
Tue Mar 13 18:41:00 got kill or ctrl c or hup signal 2 (Interrupt), will terminate after current cmd ends
Tue Mar 13 18:41:00 [interruptThread] now exiting
Tue Mar 13 18:41:00 dbexit: 
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close listening sockets...
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 6
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 8
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 9
Tue Mar 13 18:41:00 [interruptThread] removing socket file: /tmp/mongodb-27019.sock
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to flush diaglog...
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close sockets...
Tue Mar 13 18:41:00 [interruptThread] shutdown: waiting for fs preallocator...
Tue Mar 13 18:41:00 [interruptThread] shutdown: closing all files...
Tue Mar 13 18:41:00 [interruptThread] closeAllFiles() finished
Tue Mar 13 18:41:00 [interruptThread] shutdown: removing fs lock...
Tue Mar 13 18:41:00 [conn1] end connection 127.0.0.1:56898
Tue Mar 13 18:41:00 dbexit: really exiting now
[root@localhost data]# mongo myhost:27017
MongoDB shell version: 2.0.3
connecting to: myhost:27017/test
Tue Mar 13 18:41:13 getaddrinfo("myhost") failed: Name or service not known
Tue Mar 13 18:41:13 Error shell/mongo.js:86
exception: connect failed
[root@localhost data]# mongo localhost:27017
MongoDB shell version: 2.0.3
connecting to: localhost:27017/test
> 
> 
> config = {_id: 'cluster1', members: [
...                           {_id: 0, host: 'myhost1:27017'},
...                           {_id: 1, host: 'myhost2:27018'},
...                           {_id: 2, host: 'myhost3:27019'}]
... }
{
    "_id" : "cluster1",
    "members" : [
        {
            "_id" : 0,
            "host" : "myhost1:27017"
        },
        {
            "_id" : 1,
            "host" : "myhost2:27018"
        },
        {
            "_id" : 2,
            "host" : "myhost3:27019"
        }
    ]
}
> rs.initiate(config);
{ "errmsg" : "server is not running with --replSet", "ok" : 0 }
> exit
bye

Thanks

like image 950
hungry fish Avatar asked Mar 13 '12 13:03

hungry fish


People also ask

What causes replication lag in MongoDB?

Why are You Experiencing MongoDB Replication Lag? MongoDB replication lag occurs when the secondary node cannot replicate data fast enough to keep up with the rate that data is being written to the primary node.

Does MongoDB support replication?

MongoDB handles replication through a Replica Set, which consists of multiple MongoDB nodes that are grouped together as a unit. A Replica Set requires a minimum of three MongoDB nodes: One of the nodes will be considered the primary node that receives all the write operations.

What is the limitation of single replica set in MongoDB?

A replica set can have only one primary capable of confirming writes with { w: "majority" } write concern; although in some circumstances, another mongod instance may transiently believe itself to also be primary. [1] The primary records all changes to its data sets in its operation log, i.e. oplog.

Which is better sharding or replication?

What is the difference between replication and sharding? Replication: The primary server node copies data onto secondary server nodes. This can help increase data availability and act as a backup, in case if the primary server fails. Sharding: Handles horizontal scaling across servers using a shard key.


1 Answers

When starting the mongod, you have to specify the other hosts, participating iny our replication set, eg. when starting myhost1, you have to add the following argument:

--replSet cluster1/myhost2:27018,myhost3:27019

Just something I noticed, /data is directly under root /, did you checked permission rights? Better change to something like ~/temp/something while testing to avoid pitfalls.

like image 109
Dag Avatar answered Sep 30 '22 20:09

Dag