搭建MongoDB主从复制(Master-Slave)-阿里云开发者社区

开发者社区> 数据库> 正文

搭建MongoDB主从复制(Master-Slave)

简介:

 主从复制是MongoDB数据库一种特性,它通过数据备份来提高数据库的容灾能力。但是由于主从复制并不能自动实现故障转移的特性,MongoDB在1.6版本开发了新的复制模式:Replicate Sets。MongoDB建议不要再使用Master-Slave模式对数据进行备份。但是对于学习来说,我们仍可以了解一下MongoDB的主从复制模式。


  1. 从MongoDB官网下载最新版的MongoDB,解压到某个目录。


  2.在MongoDB文件夹下,创建/data/master和/data/slave目录。


  3.启动主节点(Master)的服务器,运行下面的命令:


mongod --dbpath /data/master --port 10000 --master

  执行完上面的命令后,mongodb会在data/master下生成数据文件和日志文件


  4.启动从节点(Slave)的服务器,运行下面的命令:


mongod --dbpath /data/slave --port 10001 --slave --source localhost:10000

  执行完上面命令后,同样会在data/slave下生成数据文件和日志文件,并在local数据库下的sources表下创建与master的关联信息


  5.测试主从复制(Master-Slave)是否生效。


  使用“mongo localhost:10000”打开Master数据库,插入一条测试语句:
  db.test.find();
  db.test.insert({“host”:“1000”});

  db.test.find();


  使用“mongo localhost:10001”打开Slave数据库,运行db.test.find()会发现查询出来的数据与从Master数据库中查询的数据相同。


wKiom1M1Gt6isW7sAAIuW29L1b8057.jpg


  运行db.test.insert({"girl":"lili"}); 则会显示not master。这是因为主从复制模式只允许从Master数据库更新数据,而不允许从Slave数据库更新数据。正因此,当Master发生故障时,从节点无法转换为主节点的劣势就暴漏了出来。






本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1386026,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章