Mongodb主从配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

一:使用命令行方式配置mongodb主从


 
 
  1. [root@server11 ~]#  /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.112 -port 3306 --dbpath /data/mongodb/db1/ --logpath /usr/local/mongodb/logs/server1.log  --rest --master & 
  2. [1] 14449 
  3.   
  4. [root@server12 ~]#  /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.113 --port 3306 --dbpath /data/mongodb/db2/ --logpath /usr/local/mongodb/logs/server2.log  --rest --slave --source 192.168.1.112:3306 & 
  5. [1] 16853 
 二:连接测试数据同步情况 

 
 
  1. [root@server11 ~]# /usr/local/mongodb/bin/mongo 192.168.1.112:3306 
  2. MongoDB shell version: 2.2.2 
  3. connecting to: 192.168.1.112:3306/test 
  4. > use test 
  5. switched to db test 
  6. > db.test.save({b:2}) 
  7. > db.test.find() 
  8. { "_id" : ObjectId("50fcb7f05712bfb21c866dc6"), "a" : 1 } 
  9. { "_id" : ObjectId("50fcdccf252ef3433457646f"), "b" : 2 } 
  10.  
  11. [root@server12 ~]# /usr/local/mongodb/bin/mongo 192.168.1.113:3306 
  12. MongoDB shell version: 2.2.2 
  13. connecting to: 192.168.1.113:3306/test 
  14. > use test 
  15. switched to db test 
  16. > db.test.find() 
  17. { "_id" : ObjectId("50fcb7f05712bfb21c866dc6"), "a" : 1 } 
  18. { "_id" : ObjectId("50fcdccf252ef3433457646f"), "b" : 2 } 

 

三:创建repl用户,主要用于后续的安全认证同步

 
 
  1. [root@server11 ~]#  /usr/local/mongodb/bin/mongo 192.168.1.112:3306 
  2. > use local 
  3. switched to db local 
  4. > db.addUser('repl','replication') 
  5.         "user" : "repl", 
  6.         "readOnly" : false, 
  7.         "pwd" : "418b80a28664aeaeb1ec8bf792ea3052", 
  8.         "_id" : ObjectId("50fce98cc4553449b56c6e9f") 
  9.  
  10. [root@server12 ~]#  /usr/local/mongodb/bin/mongo 192.168.1.113:3306 
  11. > use local 
  12. switched to db local 
  13. > db.addUser('repl','replication') 
  14.         "user" : "repl", 
  15.         "readOnly" : false, 
  16.         "pwd" : "418b80a28664aeaeb1ec8bf792ea3052", 
  17.         "_id" : ObjectId("50fce98cc4553449b56c6e9f") 

四:创建普通用户yang,master端创建即可


 
 
  1. > use admin 
  2. switched to db admin 
  3. > db.addUser('yang','123') 
  4. > show users 
  5.         "_id" : ObjectId("50fce0bd15861bedf081584a"), 
  6.         "user" : "yang", 
  7.         "readOnly" : false, 
  8.         "pwd" : "c26040a2869fb7579c83e85c54faaffa" 
  9.  
  10. > db.system.users.find() 
  11. { "_id" : ObjectId("50fce0bd15861bedf081584a"), "user" : "yang", "readOnly" : false, "pwd" : "c26040a2869fb7579c83e85c54faaffa" } 

五:重启mongodb主从实例,以auth方式启动,用户登录测试


 
 
  1. [root@server11 ~]# /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.112 --auth --port 3306 --dbpath /data/mongodb/db1/ --logpath /usr/local/mongodb/logs/server1.log  
  2.  
  3.  --rest --master & 
  4. [root@server12 ~]# /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.113 --auth --port 3306 --dbpath /data/mongodb/db2/ --logpath /usr/local/mongodb/logs/server2.log  
  5.  
  6.  --rest --slave --source 192.168.1.112:3306 & 
  7. [root@server11 ~]# /usr/local/mongodb/bin/mongo 192.168.1.112:3306 
  8. MongoDB shell version: 2.2.2 
  9. connecting to: 192.168.1.112:3306/test 
  10. > use admin 
  11. switched to db admin 
  12.  
  13. > show users 
  14. Mon Jan 21 14:42:47 uncaught exception: error: { 
  15.         "$err" : "unauthorized db:test ns:test.system.users lock type:1 client:192.168.1.112", 
  16.         "code" : 10057 
  17.  
  18. > db.auth('yang','123') 
  19.  
  20. > show users 
  21.         "_id" : ObjectId("50fce0bd15861bedf081584a"), 
  22.         "user" : "yang", 
  23.         "readOnly" : false, 
  24.         "pwd" : "c26040a2869fb7579c83e85c54faaffa" 

再次登录web界面需要输入用户名和密码!

五:使用配置文件管理mongodb


 
 
  1. [root@server11 ~]# cat /etc/mongodb.conf  
  2. fork = true 
  3. quiet = true 
  4. bind_ip = 192.168.1.112 
  5. port = 3306 
  6. dbpath = /data/mongodb/db1 
  7. logpath = /usr/local/mongodb/logs/server1.log 
  8. logappend = true 
  9. journal = true 
  10. rest = true 
  11. mastertrue 
  12. auth = true 
  13.  
  14. [root@server11 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  
  15. all output going to: /usr/local/mongodb/logs/server1.log 
  16. forked process: 5831 
  17. child process started successfully, parent exiting 
  18.  
  19. [root@server11 ~]# netstat -ntpl |grep mongo 
  20. tcp        0      0 192.168.1.112:3306          0.0.0.0:*                   LISTEN      5831/mongod          
  21. tcp        0      0 192.168.1.112:4306          0.0.0.0:*                   LISTEN      5831/mongod 
  22.  
  23. [root@server12 ~]# cat /etc/mongodb.conf  
  24. fork = true 
  25. quiet = true 
  26. bind_ip = 192.168.1.113 
  27. port = 3306 
  28. dbpath = /data/mongodb/db2 
  29. logpath = /usr/local/mongodb/logs/server2.log 
  30. logappend = true 
  31. journal = true 
  32. rest = true 
  33. slave = true 
  34. source = 192.168.1.112:3306 
  35. auth = true 
  36.  
  37. [root@server12 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  
  38. all output going to: /usr/local/mongodb/logs/server2.log 
  39. forked process: 3064 
  40. child process started successfully, parent exiting 
  41.  
  42. [root@server11 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  --shutdown 
  43. [root@server12 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  --shutdown 

参考文章:http://docs.mongodb.org/manual/administration/master-slave/

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


ylw6006

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
375 0
|
12月前
|
存储 NoSQL MongoDB
mongodb 存引擎及配置
mongodb 存引擎及配置
101 0
|
12月前
|
NoSQL Cloud Native MongoDB
MongoDB 主从集群 2
MongoDB 主从集群 2
|
6月前
|
存储 JSON 分布式计算
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
337 0
|
3月前
|
NoSQL MongoDB Windows
MongoDB 读写分离——Windows MongoDB 副本集配置
MongoDB 读写分离——Windows MongoDB 副本集配置
50 0
|
4月前
|
消息中间件 NoSQL 中间件
MongoDB多数据中心的主从结构
【7月更文挑战第3天】
38 0
|
4月前
|
消息中间件 NoSQL 中间件
MongoDB主从结构、仲裁节点
【7月更文挑战第2天】
56 0
|
4月前
|
存储 NoSQL 关系型数据库
MongoDB的配置服务器和复制机制
【7月更文挑战第2天】MongoDB配置服务器存储分片和权限元数据,支持在主节点故障时保持读服务。关键组件,性能影响显著。复制集包含Primary和Secondary,通过oplog实现数据同步,类似MySQL binlog。oplog的幂等性可能导致大量set操作,且大小受限,可能导致从节点需全量同步。读写分离提升效率,主从切换确保高可用。
44 0
|
5月前
|
安全 NoSQL 程序员
老程序员分享:mongodb4.xxx安装,和基本配置
老程序员分享:mongodb4.xxx安装,和基本配置
47 0
|
6月前
|
监控 NoSQL 安全
【MongoDB 专栏】MongoDB 的复制集:高可用性配置
【5月更文挑战第10天】MongoDB的复制集是实现数据高可用性的重要机制,由主节点和次节点构成,主节点处理写操作,次节点同步数据确保一致。在主节点故障时,次节点自动提升接替,保证服务不间断。通过复制集,可实现数据保护、持续服务,适用于关键业务系统和数据备份。配置时需关注网络稳定性、节点性能和数据一致性。案例显示,复制集能有效保障服务高可用,防止数据丢失和业务中断,是现代数据库管理的关键工具。在数据驱动的世界,复制集为高可用性提供了坚实保障。
132 0
【MongoDB 专栏】MongoDB 的复制集:高可用性配置