Installation & Configuration of
Replication cluster – with example
Ø
Imagine that we have 3 data centers
Hosts:
server1.tommy.com
– DC1
server2.tommy.com
– DC2
server3.tommy.com
– DC3
Step 1) Plan Ahead! Pick the replica sets,
Primary, Secondary, 2nd Secondary (if needed) and Arbiters
rep1a
server1.tommy.com
- primary
server2.tommy.com
- secondary 1st
server3.tommy.com
- secondary 2nd
rep2a
server1.tommy.com
- secondary 1st
server2.tommy.com
- primary
server3.tommy.com
- secondary 2nd
rep3a
server1.tommy.com
- secondary 1st
server2.tommy.com
- secondary 2nd
server3.tommy.com
- primary
Step 2) Download the mongodb tar file
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/
curl -O
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.2.tgz
tar -zxvf
mongodb-linux-x86_64-3.4.2.tgz
mkdir -p
mongodb
cp -R -n
mongodb-linux-x86_64-3.4.2/ mongodb
~/.bashrc
export
PATH=<mongodb-install-directory>/bin:$PATH
Step 3) Create replica set and replica set
member directories.
server1.tommy.com
cd
mkdir -p
rep1a/rs1/data
mkdir -p
rep2a/rs2/data
mkdir -p
rep3a/rs2/data
server2.tommy.com
cd
mkdir -p
rep1a/rs2/data
mkdir -p
rep2a/rs1/data
mkdir -p
rep3a/rs3/data
server3.tommy.com
cd
mkdir -p
rep1a/rs3/data
mkdir -p
rep2a/rs3/data
mkdir -p
rep3a/rs1/data
Step 4) Make other necessary directories
for config files(for each member)
server1.tommy.com
cd
mkdir -p
rep1a/rs1/conf rep2a/rs2/conf rep3a/rs2/conf
mkdir -p
rep1a/rs1/logs rep2a/rs2/logs rep3a/rs2/logs
server2.tommy.com
cd
mkdir -p
rep1a/rs2/conf rep2a/rs1/conf rep3a/rs3/conf
mkdir -p
rep1a/rs2/logs rep2a/rs1/logs rep3a/rs3/logs
server3.tommy.com
cd
mkdir -p
rep1a/rs3/conf rep2a/rs3/conf rep3a/rs1/conf
mkdir -p
rep1a/rs3/logs rep2a/rs3/logs rep3a/rs1/logs
Step 5) Create Config files(for each
member)
server1.tommy.com
vi /home/tommy/rep1a/rs1/conf/mongod.conf
dbpath=/home/tommy/rep1a/rs1/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep1a/rs1/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20001
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep2a/rs2/conf/mongod.conf
dbpath=/home/tommy/rep2a/rs2/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep2a/rs2/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20002
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep3a/rs2/conf/mongod.conf
dbpath=/home/tommy/rep3a/rs2/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep3a/rs2/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20003
replSet =
rep3a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
server2.tommy.com
vi /home/tommy/rep1a/rs2/conf/mongod.conf
dbpath=/home/tommy/rep1a/rs2/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep1a/rs2/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20002
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep2a/rs1/conf/mongod.conf
dbpath=/home/tommy/rep2a/rs1/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep2a/rs1/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20001
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep3a/rs3/conf/mongod.conf
dbpath=/home/tommy/rep3a/rs3/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep3a/rs3/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20002
replSet =
rep3a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
server3.tommy.com
vi /home/tommy/rep1a/rs3/conf/mongod.conf
dbpath=/home/tommy/rep1a/rs3/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep1a/rs3/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20003
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep2a/rs3/conf/mongod.conf
dbpath=/home/tommy/rep2a/rs3/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep2a/rs3/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20002
replSet =
rep1a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
vi /home/tommy/rep3a/rs1/conf/mongod.conf
dbpath=/home/tommy/rep3a/rs1/data
#pidfilepath
= /opt/mongo/rep1a/rs1/data/mongod_wiredTiger/mongod.pid
logpath =
/home/tommy/rep3a/rs1/logs/mongod.log
logappend =
true
nojournal =
true
oplogSize =
4096
fork = true
#rest = true
#shardsvr =
true
port = 20001
replSet =
rep3a
#notablescan
= true
#storageEngine=
wiredTiger
#auth = true
#keyFile =
/opt/mongo/rep1a/rs1/admin/conf/mongo.key
#mms-token =
<token>
#mms-name =
<server-name>
#mms-interval
= <seconds>
Step 6) Create a softlink to bin folder for
easy access:
ln -s /home/tommy/mongodb/mongodb-linux-x86_64-3.4.2/bin
mongo_bin
ln -s /home/tommy
this_host
Step 7) Start all the mongod processes
server1.tommy.com
mongo_bin/mongod
-f /home/tommy/rep1a/rs1/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep2a/rs2/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep3a/rs2/conf/mongod.conf
server2.tommy.com
mongo_bin/mongod
-f /home/tommy/rep1a/rs2/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep2a/rs1/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep3a/rs3/conf/mongod.conf
server3.tommy.com
mongo_bin/mongod
-f /home/tommy/rep1a/rs3/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep2a/rs3/conf/mongod.conf
mongo_bin/mongod
-f /home/tommy/rep3a/rs1/conf/mongod.conf
Step 8) Check the process running
[tommy@server3.tommy.com
~]$ ps aux | grep mongod
tommy 30634
0.6 0.0 273816 43668 ? Sl
12:41 0:00 mongo_bin/mongod -f
/home/tommy/rep1a/rs3/conf/mongod.conf
tommy 31323
1.0 0.0 273812 39888 ? Sl
12:42 0:00 mongo_bin/mongod -f /home/tommy/rep2a/rs3/conf/mongod.conf
tommy 31343
2.0 0.0 273812 41448 ? Sl
12:42 0:00 mongo_bin/mongod -f
/home/tommy/rep3a/rs1/conf/mongod.conf
Step 9) Initiate the Replica sets:
server1.tommy.com
>
mongo_bin/mongo --port 20001
>
rs.initiate()
>
rs.add("server2.tommy.com:20002")
>
rs.add("server3.tommy.com:20003")
>
rs.status()
mongo_bin/mongo --port 20001
[tommy@server1.tommy.com
~]$ mongo_bin/mongo --port 20001
MongoDB
shell version v3.4.2
connecting
to: mongodb://127.0.0.1:20001/
MongoDB
server version: 3.4.2
Server has
startup warnings:
2017-04-21T12:23:07.139-0500
I STORAGE [initandlisten]
2017-04-21T12:23:07.139-0500
I STORAGE [initandlisten] ** WARNING: Using
the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-21T12:23:07.139-0500
I STORAGE [initandlisten] ** See
http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-21T12:23:07.174-0500
I CONTROL [initandlisten]
2017-04-21T12:23:07.174-0500
I CONTROL [initandlisten] ** WARNING:
Access control is not enabled for the database.
2017-04-21T12:23:07.174-0500
I CONTROL [initandlisten] ** Read and write access to data and
configuration is unrestricted.
2017-04-21T12:23:07.174-0500
I CONTROL [initandlisten]
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten]
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** WARNING:
You are running on a NUMA machine.
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** We suggest launching mongod like this
to avoid performance problems:
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** numactl --interleave=all mongod
[other options]
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten]
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten]
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-21T12:23:07.175-0500
I CONTROL [initandlisten]
>
rs.initiate()
>
rs.initiate()
{
"info2" : "no
configuration specified. Using a default configuration for the set",
"me" : "server1.tommy.com:20001",
"ok" : 1
}
rep1a:SECONDARY>
rep1a:PRIMARY>
rs.add()
>
rs.add("server2.tommy.com:20002")
rep1a:PRIMARY>
rs.add("server2.tommy.com:20002")
{
"ok" : 1 }
>
rs.add("server3.tommy.com:20003")
rep1a:PRIMARY>
rs.add("server3.tommy.com:20003")
{
"ok" : 1 }
rs.status()
rep1a:PRIMARY> rs.status()
{
"set" : "rep1a",
"date" :
ISODate("2017-04-23T04:54:51.753Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" :
NumberLong(2000),
"optimes" : {
"lastCommittedOpTime"
: {
"ts" :
Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"appliedOpTime" : {
"ts" :
Timestamp(1492923282, 1),
"t" :
NumberLong(1)
},
"durableOpTime" : {
"ts" :
Timestamp(1492923171, 1),
"t" :
NumberLong(-1)
}
},
"members" : [
{
"_id" : 0,
"name" :
"server1.tommy.com:20001",
"health" : 1,
"state" : 1,
"stateStr" :
"PRIMARY",
"uptime" :
127904,
"optime" : {
"ts"
: Timestamp(1492923282, 1),
"t" :
NumberLong(1)
},
"optimeDate"
: ISODate("2017-04-23T04:54:42Z"),
"infoMessage"
: "could not find member to sync from",
"electionTime" : Timestamp(1492923171, 2),
"electionDate"
: ISODate("2017-04-23T04:52:51Z"),
"configVersion" : 3,
"self" : true
},
{
"_id" : 1,
"name" :
"server2.tommy.com:20002",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" :
70,
"optime" : {
"ts"
: Timestamp(1492923282, 1),
"t" :
NumberLong(1)
},
"optimeDurable" : {
"ts"
: Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate"
: ISODate("2017-04-23T04:54:42Z"),
"optimeDurableDate" :
ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat"
: ISODate("2017-04-23T04:54:50.381Z"),
"lastHeartbeatRecv" :
ISODate("2017-04-23T04:54:51.384Z"),
"pingMs" :
NumberLong(0),
"syncingTo" :
"server1.tommy.com:20001",
"configVersion" : 3
},
{
"_id" : 2,
"name" :
"server3.tommy.com:20003",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" :
61,
"optime" : {
"ts"
: Timestamp(1492923282, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts"
: Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate"
: ISODate("2017-04-23T04:54:42Z"),
"optimeDurableDate" :
ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" :
ISODate("2017-04-23T04:54:50.381Z"),
"lastHeartbeatRecv" : ISODate("2017-04-23T04:54:51.438Z"),
"pingMs" :
NumberLong(0),
"syncingTo" :
"server1.tommy.com:20001",
"configVersion" : 3
}
],
"ok" : 1
}
server2.tommy.com
>
mongo_bin/mongo --port 20001
>
rs.initiate()
>
rs.add("server1.tommy.com:20002")
>
rs.add("server3.tommy.com:20003")
>
rs.status()
mongo_bin/mongo --port 20001
[tommy@server2.tommy.com
~]$ mongo_bin/mongo --port 20001
MongoDB
shell version v3.4.2
connecting
to: mongodb://127.0.0.1:20001/
MongoDB
server version: 3.4.2
Server has
startup warnings:
2017-04-21T12:36:44.248-0500
I STORAGE [initandlisten]
2017-04-21T12:36:44.248-0500
I STORAGE [initandlisten] ** WARNING:
Using the XFS filesystem is strongly recommended with the WiredTiger storage
engine
2017-04-21T12:36:44.248-0500
I STORAGE [initandlisten] ** See
http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-21T12:36:44.273-0500
I CONTROL [initandlisten]
2017-04-21T12:36:44.273-0500
I CONTROL [initandlisten] ** WARNING:
Access control is not enabled for the database.
2017-04-21T12:36:44.273-0500
I CONTROL [initandlisten] ** Read and write access to data and
configuration is unrestricted.
2017-04-21T12:36:44.273-0500
I CONTROL [initandlisten]
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten]
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** WARNING:
You are running on a NUMA machine.
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** We suggest launching mongod like this
to avoid performance problems:
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** numactl --interleave=all mongod
[other options]
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten]
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten]
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-21T12:36:44.274-0500
I CONTROL [initandlisten]
>
rs.initiate()
>
rs.initiate()
{
"info2" : "no
configuration specified. Using a default configuration for the set",
"me" : "server2.tommy.com:20001",
"ok" : 1
}
rep2a:SECONDARY>
rep2a:PRIMARY>
rs.add()
rep2a:PRIMARY>
rs.add("server1.tommy.com:20002")
{
"ok" : 1 }
rep2a:PRIMARY>
rs.add("server3.tommy.com:20003")
{
"ok" : 1 }
rs.status()
rep2a:PRIMARY> rs.status()
{
"set" : "rep2a",
"date" :
ISODate("2017-04-23T05:23:42.579Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" :
NumberLong(2000),
"optimes" : {
"lastCommittedOpTime"
: {
"ts" :
Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"appliedOpTime" : {
"ts" :
Timestamp(1492925019, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" :
Timestamp(1492924928, 1),
"t" :
NumberLong(-1)
}
},
"members" : [
{
"_id" : 0,
"name" :
"server2.tommy.com:20001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" :
159,
"optime" : {
"ts"
: Timestamp(1492925019, 1),
"t" :
NumberLong(1)
},
"optimeDate"
: ISODate("2017-04-23T05:23:39Z"),
"infoMessage"
: "could not find member to sync from",
"electionTime" : Timestamp(1492924928, 2),
"electionDate" : ISODate("2017-04-23T05:22:08Z"),
"configVersion" : 3,
"self" : true
},
{
"_id" : 1,
"name" :
"server1.tommy.com:20002",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" :
66,
"optime" : {
"ts"
: Timestamp(1492925019, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts"
: Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate" :
ISODate("2017-04-23T05:23:39Z"),
"optimeDurableDate" :
ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" :
ISODate("2017-04-23T05:23:41.270Z"),
"lastHeartbeatRecv" : ISODate("2017-04-23T05:23:42.276Z"),
"pingMs" :
NumberLong(0),
"syncingTo" :
"server2.tommy.com:20001",
"configVersion" : 3
},
{
"_id" : 2,
"name" :
"server3.tommy.com:20003",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" :
59,
"optime" : {
"ts"
: Timestamp(1492925019, 1),
"t" :
NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate"
: ISODate("2017-04-23T05:23:39Z"),
"optimeDurableDate" :
ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" :
ISODate("2017-04-23T05:23:41.270Z"),
"lastHeartbeatRecv" :
ISODate("2017-04-23T05:23:42.329Z"),
"pingMs" :
NumberLong(0),
"syncingTo" :
"server2.tommy.com:20001",
"configVersion" : 3
}
],
"ok" : 1
}
server3.tommy.com
>
mongo_bin/mongo --port 20001
>
rs.initiate()
>
rs.add("server1.tommy.com:20003")
> rs.add("server2.tommy.com:20004")
>
rs.status()
mongo_bin/mongo --port 20001
[tommy@server3.tommy.com
~]$ mongo_bin/mongo --port 20001
MongoDB
shell version v3.4.2
connecting
to: mongodb://127.0.0.1:20001/
MongoDB
server version: 3.4.2
Server has
startup warnings:
2017-04-23T00:38:04.471-0500
I STORAGE [initandlisten]
2017-04-23T00:38:04.471-0500
I STORAGE [initandlisten] ** WARNING:
Using the XFS filesystem is strongly recommended with the WiredTiger storage
engine
2017-04-23T00:38:04.471-0500
I STORAGE [initandlisten] ** See
http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-23T00:38:04.507-0500
I CONTROL [initandlisten]
2017-04-23T00:38:04.507-0500
I CONTROL [initandlisten] ** WARNING:
Access control is not enabled for the database.
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten] ** Read and write access to data and
configuration is unrestricted.
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten]
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten]
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten] ** WARNING:
You are running on a NUMA machine.
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten] ** We suggest launching mongod like this
to avoid performance problems:
2017-04-23T00:38:04.508-0500
I CONTROL [initandlisten] ** numactl --interleave=all mongod
[other options]
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten]
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten]
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten] ** WARNING:
/sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-04-23T00:38:04.509-0500
I CONTROL [initandlisten]
>
rs.initiate()
>
rs.initiate()
{
"info2" : "no
configuration specified. Using a default configuration for the set",
"me" : "server3.tommy.com:20001",
"ok" : 1
}
rep3a:SECONDARY>
rep3a:PRIMARY>
rs.add()
>
rs.add("server1.tommy.com:20003")
rep3a:PRIMARY>
rs.add("server1.tommy.com:20003")
{
"ok" : 1 }
>
rs.add("server2.tommy.com:20004")
rep3a:PRIMARY>
rs.add("server2.tommy.com:20002")
{
"ok" : 1 }
rs.status()
rep3a:PRIMARY> rs.status()
{
"set" : "rep3a",
"date" :
ISODate("2017-04-23T06:30:28.523Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" :
NumberLong(2000),
"optimes" : {
"lastCommittedOpTime"
: {
"ts" :
Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"appliedOpTime" : {
"ts" :
Timestamp(1492929024, 1),
"t" :
NumberLong(1)
},
"durableOpTime" : {
"ts" :
Timestamp(1492926340, 1),
"t" :
NumberLong(-1)
}
},
"members" : [
{
"_id" : 0,
"name" :
"server3.tommy.com:20001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" :
3144,
"optime" : {
"ts"
: Timestamp(1492929024, 1),
"t" :
NumberLong(1)
},
"optimeDate"
: ISODate("2017-04-23T06:30:24Z"),
"electionTime" : Timestamp(1492926340, 2),
"electionDate" : ISODate("2017-04-23T05:45:40Z"),
"configVersion" : 5,
"self" : true
},
{
"_id" : 1,
"name" :
"server1.tommy.com:20003",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" :
2559,
"optime" : {
"ts"
: Timestamp(1492929024, 1),
"t" :
NumberLong(1)
},
"optimeDurable" : {
"ts"
: Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate"
: ISODate("2017-04-23T06:30:24Z"),
"optimeDurableDate"
: ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" :
ISODate("2017-04-23T06:30:28.084Z"),
"lastHeartbeatRecv" :
ISODate("2017-04-23T06:30:24.086Z"),
"pingMs" : NumberLong(0),
"syncingTo" :
"server3.tommy.com:20001",
"configVersion" : 5
},
{
"_id" : 2,
"name" :
"server2.tommy.com:20004",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 4,
"optime" : {
"ts" : Timestamp(1492929024,
1),
"t" :
NumberLong(1)
},
"optimeDurable" : {
"ts"
: Timestamp(0, 0),
"t" :
NumberLong(-1)
},
"optimeDate"
: ISODate("2017-04-23T06:30:24Z"),
"optimeDurableDate" :
ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" :
ISODate("2017-04-23T06:30:28.084Z"),
"lastHeartbeatRecv" :
ISODate("2017-04-23T06:30:24.128Z"),
"pingMs" :
NumberLong(0),
"syncingTo" :
"server3.tommy.com:20001",
"configVersion" : 5
}
],
"ok" : 1
}