经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
MongoDB高可用集群搭建
来源:cnblogs  作者:Buscar  时间:2018/9/25 19:45:47  对本文有异议

MongoDB副本集搭建

准备三台服务器:

  10.175.120.131(主节点)

  10.175.121.134(副本节点)

  10.175.121.136(副本节点)

1.分别在每台服务器上安装MongoDB,并通过配置文件启动服务,配置文件如下:

  1. dbpath=/data/db #指定数据库路径
  2. logpath=/data/mongodb.log #指定日志文件路径
  3. logappend=true #在日志文件持续添加
  4. port=27017 #端口号
  5. bind_ip=0.0.0.0 #允许远程访问
  6. fork=true #后台运行
  7. replSet=admin #设置副本集名称

 2.进入MongoDB后台管理 Shell 

  1. ./momgo

3.使用admin数据库

  1. > use admin

4. 定义副本集配置变量,这里的 _id:”admin” 和配置文件中的“replSet=admin” 要保持一致

  1. > config = { _id:"admin",
  2.        members:[
  3.      {_id:0,host:"10.175.120.131:27017"},
  4.         {_id:1,host:"10.175.121.134:27017"},
  5.         {_id:2,host:"10.175.121.136:27017"}
  6.       ]
  7. }

 5.初始化副本集配置

  1. > rs.initiate(config)

6.查看集群节点的状态

  1. > rs.status()

 输出:

  1. {
  2. "set" : "admin",
  3. "date" : ISODate("2018-09-21T08:52:24.064Z"),
  4. "myState" : 1,
  5. "term" : NumberLong(3),
  6. "heartbeatIntervalMillis" : NumberLong(2000),
  7. "optimes" : {
  8. "lastCommittedOpTime" : {
  9. "ts" : Timestamp(1537519943, 1),
  10. "t" : NumberLong(3)
  11. },
  12. "readConcernMajorityOpTime" : {
  13. "ts" : Timestamp(1537519943, 1),
  14. "t" : NumberLong(3)
  15. },
  16. "appliedOpTime" : {
  17. "ts" : Timestamp(1537519943, 1),
  18. "t" : NumberLong(3)
  19. },
  20. "durableOpTime" : {
  21. "ts" : Timestamp(1537519943, 1),
  22. "t" : NumberLong(3)
  23. }
  24. },
  25. "members" : [
  26. {
  27. "_id" : 1,
  28. "name" : "10.175.120.131:27017",
  29. "health" : 1, "state" : 1,
  30. "stateStr" : "PRIMARY",
  31. "uptime" : 5874,
  32. "optime" : {
  33. "ts" : Timestamp(1537519943, 1),
  34. "t" : NumberLong(3)
  35. },
  36. "optimeDate" : ISODate("2018-09-21T08:52:23Z"),
  37. "electionTime" : Timestamp(1537514082, 1),
  38. "electionDate" : ISODate("2018-09-21T07:14:42Z"),
  39. "configVersion" : 1,
  40. "self" : true
  41. },
  42. {
  43. "_id" : 2,
  44. "name" : "10.175.121.134:27017",
  45. "health" : 1,
  46. "state" : 2,
  47. "stateStr" : "SECONDARY",
  48. "uptime" : 5861,
  49. "optime" : {
  50. "ts" : Timestamp(1537519933, 1),
  51. "t" : NumberLong(3)
  52. },
  53. "optimeDurable" : {
  54. "ts" : Timestamp(1537519933, 1),
  55. "t" : NumberLong(3)
  56. },
  57. "optimeDate" : ISODate("2018-09-21T08:52:13Z"),
  58. "optimeDurableDate" : ISODate("2018-09-21T08:52:13Z"),
  59. "lastHeartbeat" : ISODate("2018-09-21T08:52:23.012Z"),
  60. "lastHeartbeatRecv" : ISODate("2018-09-21T08:52:23.584Z"),
  61. "pingMs" : NumberLong(0),
  62. "syncingTo" : "10.175.120.131:27017",
  63. "configVersion" : 1
  64. },
  65. {
  66. "_id" : 3,
  67. "name" : "10.175.121.136:27017",
  68. "health" : 1,
  69. "state" : 2,
  70. "stateStr" : "SECONDARY",
  71. "uptime" : 5866,
  72. "optime" : {
  73. "ts" : Timestamp(1537519933, 1),
  74. "t" : NumberLong(3)
  75. },
  76. "optimeDurable" : {
  77. "ts" : Timestamp(1537519933, 1),
  78. "t" : NumberLong(3)
  79. },
  80. "optimeDate" : ISODate("2018-09-21T08:52:13Z"),
  81. "optimeDurableDate" : ISODate("2018-09-21T08:52:13Z"),
  82. "lastHeartbeat" : ISODate("2018-09-21T08:52:23.013Z"),
  83. "lastHeartbeatRecv" : ISODate("2018-09-21T08:52:23.558Z"),
  84. "pingMs" : NumberLong(0),
  85. "syncingTo" : "10.175.120.131:27017",
  86. "configVersion" : 1
  87. }
  88. ],
  89. "ok" : 1,
  90. "operationTime" : Timestamp(1537519943, 1),
  91. "$clusterTime" : {
  92. "clusterTime" : Timestamp(1537519943, 1),
  93. "signature" : {
  94. "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
  95. "keyId" : NumberLong(0)
  96. }
  97. }
  98. }

 输出部分参数说明:

  1. "health" : 1, #代表机器正常
  2. "stateStr" : "PRIMARY", #代表是主节点,可读写,其中有以下几下状态
  3.  
  4. 1. STARTUP:刚加入到复制集中,配置还未加载
  5. 2. STARTUP2:配置已加载完,初始化状态
  6. 3. RECOVERING:正在恢复,不适用读
  7. 4. ARBITER: 仲裁者
  8. 5. DOWN:节点不可到达
  9. 6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂
  10. 7. REMOVED:移除复制集
  11. 8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERINGSECONDARY状态
  12. 9. FATAL:出错。查看日志grep replSet FATAL”找出错原因,重新做同步
  13. 10. PRIMARY:主节点
  14. 11. SECONDARY:备份节点

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号