阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MongoDB主从复制(Master-Slave Replication)简单实现

141次阅读
没有评论

共计 1504 个字符,预计需要花费 4 分钟才能阅读完成。

MongoDB 主从复制 (Master-Slave Replication) 其结构类似 MySQL 的主从复制

os:CentOS 6.5
mongodb:3.2.10

〇 搭建

master 上:

  1. $ mkdir -p /data/testdb
  2. $ mongod –dbpath=/data/testdb/ –logpath=/data/testdb/master.log –fork –master 

slave 上:

  1. $ mkdir p /data/testdb
  2. $ mongod dbpath=/data/testdb/ logpath=/data/testdb/slave.log –fork slave source 192.168.0.1:27017 

然后查看一下 slave 的 log

  1. $ tail f /data/testdb/slave.log

如看到如下输出,则表示已经开始同步

  1. 20161109T16:19:46.695+0800 I REPL [replslave] syncing from host:192.168.0.1:27017

〇 测试
master 上:

  1. > use test;
  2. switched to db test
  3. > db.test_tb.insert({“master”:“123456”})
  4. WriteResult({ “nInserted” : 1 })
  5. > db.test_tb.find();
  6. {“_id” : ObjectId(“5822d3507fedcba43d3b9278”), “master” : “123456” }

slave 上:

  1. > use test;
  2. switched to db test
  3. > db.test_tb.find();
  4. Error: error: {“ok” : 0, “errmsg” : “not master and slaveOk=false”, “code” : 13435 }

出现如上错误是因为默认 slave 是不可读写的:
可以执行

  1. > db.getMongo().setSlaveOk()

或者输入上命令同义词:

  1. > rs.slaveOk()


便可以了

  1. > db.test_tb.find();
  2. {“_id” : ObjectId(“5822d3507fedcba43d3b9278”), “master” : “123456” }

在 mongodb 3.2 文档里明确写道:

  1. WARNING
  2. Deprecated since version 3.2: MongoDB 3.2 deprecates the use of master-slave replication for components of sharded clusters.
  3. IMPORTANT
  4. Replica sets replace master-slave replication for most use cases. If possible, use replica sets rather than master-slave replication for all new production deployments. This documentation remains to support legacy deployments and for archival purposes only.


如果要用 m - s 结构做分片集群,可以取而代之的是使用 加流弊的 Replica Set,然而 Replica Set 可以理解为“Master-Slave”带有自动 failover 等功能的高级解决方案。


〇 参考文档

  • MONGODB MANUAL 3.2 > Replication > Master Slave Replication

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142384.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1504字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中