免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1760 | 回复: 0
打印 上一主题 下一主题

[MongoDB] [原创] MongoDB管理与开发精要《红丸出品》21.4.1 管理维护Replica Sets之读写分离 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-26 21:32 |只看该作者 |倒序浏览
21.4管理维护Replica Sets21.4.1读写分离
有一些第三方的工具,提供了一些可以让数据库进行读写分离的工具。我们现在是否有一个疑问,从库要是能进行查询就更好了,这样可以分担主库的大量的查询请求。

1、  先向主库中插入一条测试数据
[root@localhost bin]# ./mongo --port 28010
MongoDB shell version: 1.8.1
connecting to: 127.0.0.1:28010/test
rs1RIMARY> db.c1.insert({age:30})
db.c2rs1RIMARY> db.c1.find()
{ "_id" : ObjectId("4fc77f421137ea4fdb653b4a", "age" : 30 }

2、  在从库进行查询等操作
[root@localhost bin]# ./mongo --port 28011
MongoDB shell version: 1.8.1
connecting to: 127.0.0.1:28011/test
rs1:SECONDARY> show collections
Thu May 31 22:27:17 uncaught exception: error: { "$err" : "not master and slaveok=false", "code" : 13435 }
rs1:SECONDARY>  
当查询时报错了,说明是个从库且不能执行查询的操作

3、  让从库可以读,分担主库的压力
rs1:SECONDARY> db.getMongo().setSlaveOk()
not master and slaveok=false
rs1:SECONDARY> show collections         
c1
system.indexes
rs1:SECONDARY> db.c1.find()
{ "_id" : ObjectId("4fc77f421137ea4fdb653b4a", "age" : 30 }
rs1:SECONDARY>
看来我们要是执行db.getMongo().setSlaveOk(), 我们就可查询从库了。

免费IT培训(ChinaDBA.net)实践者!学费1元,全捐公益


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP