一、环境

    操作系统:

# uname -r2.6.32-358.el6.x86_64# cat /etc/issueCentOS release 6.4 (Final)Kernel \r on an \m

    主:192.168.137.148

    从:192.168.137.154

二、主从同步系统时间

#ntpdate ntp.api.bz && hwclock -w --systohc

三、安装

#wget #tar xf mongodb-linux-x86_64-enterprise-rhel62-2.6.4.tgz#mv mongodb-linux-x86_64-enterprise-rhel62-2.6.4 /usr/local/mongodb#[ ! -e /data/mongodb/data ] && mkdir -p /data/mongodb/data || echo '/data/mongodb/data is exist!'#[ ! -e /data/mongodb/mongodb.log ] && touch /data/mongodb/mongodb.log || echo '/data/mongodb/mongodb.log is exist!'

 四、启动服务

mongodb master:

#/usr/local/mongodb/bin/mongod --master --bind_ip=192.168.137.148 --dbpath=/data/mongodb/data --logpath=/data/mongodb/mongodb.log --logappend --port=27017 --fork

mongodb slave:

#/usr/local/mongodb/bin/mongod --slave --bind_ip=192.168.137.154 --source 192.168.137.148:27017 --dbpath=/data/mongodb/data --logpath=/data/mongodb/mongodb.log --logappend --port=27017 --fork

 五、测试

master:

# /usr/local/mongodb/bin/mongo --host 192.168.137.148MongoDB shell version: 2.6.4connecting to: 192.168.0.23:27017/testWelcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, see	http://docs.mongodb.org/Questions? Try the support group	http://groups.google.com/group/mongodb-userServer has startup warnings: 2014-09-24T14:16:58.169+0800 [initandlisten] 2014-09-24T14:16:58.169+0800 [initandlisten] ** WARNING: You are running on a NUMA machine.2014-09-24T14:16:58.169+0800 [initandlisten] **          We suggest launching mongod like this to avoid performance problems:2014-09-24T14:16:58.169+0800 [initandlisten] **              numactl --interleave=all mongod [other options]2014-09-24T14:16:58.169+0800 [initandlisten] > show dbs;                            #查看数据库local	1.203125GBtest	0.203125GB> use test1;                            #新建库switched to db test1> db.foo.save({"id":123456,"name":'zhangsan'})       #插入数据> db.foo.find({"id":123456})            #查询数据{ "_id" : ObjectId("542277078091089e1cbfecbc"), "id" : 123456, "name" : "zhangsan" }> show dbs;local	1.203125GBtest	0.203125GBtest1	0.203125GB

slave:

# /usr/local/mongodb/bin/mongo --host 192.168.137.148MongoDB shell version: 2.6.4connecting to: 192.168.0.23:27017/testWelcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, see	http://docs.mongodb.org/Questions? Try the support group	http://groups.google.com/group/mongodb-userServer has startup warnings: 2014-09-24T14:16:58.169+0800 [initandlisten] 2014-09-24T14:16:58.169+0800 [initandlisten] ** WARNING: You are running on a NUMA machine.2014-09-24T14:16:58.169+0800 [initandlisten] **          We suggest launching mongod like this to avoid performance problems:2014-09-24T14:16:58.169+0800 [initandlisten] **              numactl --interleave=all mongod [other options]2014-09-24T14:16:58.169+0800 [initandlisten] > show dbs;local	0.203125GBtest	0.203125GBtest1	0.203125GB> use test1;switched to db test1> db.foo.find({"id":123456}){ "_id" : ObjectId("542277078091089e1cbfecbc"), "id" : 123456, "name" : "zhangsan" }

数据同步成功

六、常见操作

1)在从服务器上查询主服务器的信息

> use local;switched to db local> show collections;mesourcessystem.indexes> db.sources.find(){ "_id" : ObjectId("541d8f661037aa7d865374d0"), "host" : "192.168.137.148:27017", "source" : "main", "syncedTo" : { "t" : 1411545377000, "i" : 1 } }

2)在主服务器上查询同步状态

> db.printReplicationInfo();configured oplog size:   944.1375732421875MBlog length start to end: 420339secs (116.76hrs)oplog first event time:  Fri Sep 19 2014 19:15:28 GMT+0800 (CST)oplog last event time:   Wed Sep 24 2014 16:01:07 GMT+0800 (CST)now:                     Wed Sep 24 2014 16:01:11 GMT+0800 (CST)

3)在master服务器上查询集合状态

> db.printCollectionStats();foo{	"ns" : "test1.foo",	"count" : 1,	"size" : 56,	"avgObjSize" : 56,	"storageSize" : 4096,	"numExtents" : 1,	"nindexes" : 1,	"lastExtentSize" : 4096,	"paddingFactor" : 1,	"flags" : 1,	"totalIndexSize" : 8176,	"indexSizes" : {		"_id_" : 8176	},	"ok" : 1}---system.indexes{	"ns" : "test1.system.indexes",	"count" : 1,	"size" : 64,	"avgObjSize" : 64,	"storageSize" : 4096,	"numExtents" : 1,	"nindexes" : 0,	"lastExtentSize" : 4096,	"paddingFactor" : 1,	"flags" : 0,	"totalIndexSize" : 0,	"indexSizes" : {			},	"ok" : 1}---

七、主从切换

1)停掉slave服务

#killall mongod

2)删除local数据

#rm -rf /data/mongodb/data/local.*

3)把从服务器以master身份启动

#/usr/local/mongodb/bin/mongod --master --bind_ip=192.168.137.154 --dbpath=/data/mongodb/data --logpath=/data/mongodb/mongodb.log --logappend --port=27017 --fork

4)以web方式查看状态