chenzhou123520 发表于 2013-1-12 13:23:12

Mongodb主从复制

主从复制是Mongodb最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。Mongodb主从结构如下图所示:
http://dl.iteye.com/upload/picture/pic/116943/ebfddf6c-5ea8-3c30-9f0a-86e09e5f32e1.png
最基本的方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。主节点服务器使用mongod --master方式启动,而从节点服务器则使用mongod --slave --source master_address方式启动。其中master_address指的是主节点服务器的地址。
 
一般主从节点是在多台服务器上,这里我通过在单台机器上建立多个实例来模拟主从复制。
首先建立主从节点数据目录:
# mkdir -p /opt/mongodb/data/dbs/master# mkdir -p /opt/mongodb/data/dbs/slave然后配置主从节点的配置文件(也可以通过参数直接启动)
mongodb-master.conf(主节点配置文件)
port=10000dbpath=data/dbs/masterlogpath=log/mongodb-master.loglogappend=truemongodb-slave.conf(从节点配置文件)
port=10001dbpath=data/dbs/slavelogpath=log/mongodb-slave.loglogappend=true接着分别启动主节点服务和从节点服务:
1)启动主节点服务
# ./bin/mongod -f mongodb-master.conf --masterall output going to: log/mongodb-master.log2)启动从节点服务(注意需要使用--source参数指定主服务的地址)
# ./bin/mongod -f mongodb-slave.conf --slave --source localhost:10000all output going to: log/mongodb-slave.log然后连接到主节点
# ./bin/mongo localhost:10000MongoDB shell version: 2.0.6connecting to: localhost:10000/test> db.users.find() #查询主节点users集合中的数据,结果返回为空> 使用另外一个连接连接到从节点
# ./bin/mongo localhost:10001MongoDB shell version: 2.0.6connecting to: localhost:10001/test> db.users.find() #查询从节点users集合中的数据,结果也返回为空>往主节点users集合中插入数据
#首先往users集合中插入数据> db.users.save({"name":"zhouxiaofei","position":"Web tester"})> db.users.save({"name":"chenzhou","position":"Java developer"})> db.users.find() #查询主节点users集合中数据,返回如下结果{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }> 通过另外一个连接从节点的实例查询从节点中users集合中的数据
> db.users.find() #查询从节点中users集合,返回了主节点中插入的数据{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }> 根据结果可以看出,简单的主从复制已经实现。关于Mongodb主从复制更多的知识,可以参考mongodb在线文档,地址如下:http://www.mongodb.org/display/DOCS/Master+Slave
页: [1]
查看完整版本: Mongodb主从复制