自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

生產(chǎn)MongoDB 分片與集群方案

數(shù)據(jù)庫 其他數(shù)據(jù)庫 MongoDB
Mongo DB 是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲(chǔ)方式備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中 每一條記錄都是一個(gè)Document對(duì)象。本文介紹了一則生產(chǎn)環(huán)境下MongoDB實(shí)現(xiàn)分片與集群方案的操作實(shí)例。

【編者的話】

Mongo DB 是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲(chǔ)方式備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中 每一條記錄都是一個(gè)Document對(duì)象。本文介紹了一則生產(chǎn)環(huán)境下MongoDB實(shí)現(xiàn)分片與集群方案的操作實(shí)例。

一、 mongodb分片與集群拓?fù)鋱D

生產(chǎn)mongodb 分片與集群 方案

 

二、分片與集群的部署

1.Mongodb的安裝

分別在以上3臺(tái)服務(wù)器安裝好mongodb

安裝方法見安裝腳本。

2.Mongod 創(chuàng)建單個(gè)分片的副本集

10.68.4.209

①建立數(shù)據(jù)文件夾和日志文件夾

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

  1. #master.conf 
  2.  
  3. dbpath=/data/master 
  4.  
  5. logpath=/data/log/mongodb/master/mongodb.log 
  6.  
  7. pidfilepath=/var/run/mongo_master.pid 
  8.  
  9. #directoryperdb=true 
  10.  
  11. logappend=true 
  12.  
  13. replSet=policydb 
  14.  
  15. port=10002 
  16.  
  17. oplogSize=10000 
  18.  
  19. fork=true 
  20.  
  21. noprealloc=true 
  22.  
  23. profile=1 
  24.  
  25. slowms=200 
  26.  
  27. #slave.conf 
  28.  
  29. dbpath=/data/slave 
  30.  
  31. logpath=/data/log/mongodb/slave/mongodb.log 
  32.  
  33. pidfilepath=/var/run/mongo_slave.pid 
  34.  
  35. #directoryperdb=true 
  36.  
  37. logappend=true 
  38.  
  39. replSet=policydb 
  40.  
  41. port=10001 
  42.  
  43. oplogSize=10000 
  44.  
  45. fork=true 
  46.  
  47. noprealloc=true 
  48.  
  49. profile=1 
  50.  
  51. slowms=200 
  52.  
  53. #arbiter.conf 
  54.  
  55. dbpath=/data/arbiter 
  56.  
  57. logpath=/data/log/mongodb/arbiter/mongodb.log 
  58.  
  59. pidfilepath=/var/run/mongo_arbiter.pid 
  60.  
  61. #directoryperdb=true 
  62.  
  63. logappend=true 
  64.  
  65. replSet=policydb 
  66.  
  67. port=10000 
  68.  
  69. oplogSize=10000 
  70.  
  71. fork=true 
  72.  
  73. noprealloc=true 
  74.  
  75. profile=1 
  76.  
  77. slowms=200 

③啟動(dòng)mongodb

/etc/init.d/mongodb_master start

/etc/init.d/mongodb_slave start

/etc/init.d/mongodb_arbiter start

④配置主、備、仲裁節(jié)點(diǎn)

主節(jié)點(diǎn):

  1. # /usr/local/mongodb/bin/mongo 10.68.4.209:10002 
  2.  
  3. MongoDB shell version: 2.4.9 
  4.  
  5. connecting to: 10.68.4.209:10002/test 
  6.  
  7. > use admin 
  8.  
  9. switched to db admin 
  10.  
  11. >config={ _id:"policydb", members:[ {_id:0,host:'10.68.4.209:10002',priority:2}, {_id:1,host:'10.68.4.209:10001',priority:1}, 
  12.  
  13. ... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] }; 
  14.  
  15.  
  16. "_id" : "policydb"
  17.  
  18. "members" : [ 
  19.  
  20.  
  21. "_id" : 0
  22.  
  23. "host" : "10.68.4.209:10002"
  24.  
  25. "priority" : 2 
  26.  
  27. }, 
  28.  
  29.  
  30. "_id" : 1
  31.  
  32. "host" : "10.68.4.209:10001"
  33.  
  34. "priority" : 1 
  35.  
  36. }, 
  37.  
  38.  
  39. "_id" : 2
  40.  
  41. "host" : "10.68.4.209:10000"
  42.  
  43. "arbiterOnly" : true 
  44.  
  45.  
  46.  
  47.  
  48. rs.initiate(config) #初始化 
  49.  
  50. rs.status() #查看集群狀態(tài) 

10.68.4.29

①建立數(shù)據(jù)文件夾和日志文件夾

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

  1. #master.conf 
  2.  
  3. dbpath=/data/master 
  4.  
  5. logpath=/data/log/mongodb/master/mongodb.log 
  6.  
  7. pidfilepath=/var/run/mongo_master.pid 
  8.  
  9. #directoryperdb=true 
  10.  
  11. logappend=true 
  12.  
  13. replSet=policydb2 
  14.  
  15. port=10002 
  16.  
  17. oplogSize=10000 
  18.  
  19. fork=true 
  20.  
  21. noprealloc=true 
  22.  
  23. profile=1 
  24.  
  25. slowms=200 
  26.  
  27. #slave.conf 
  28.  
  29. dbpath=/data/slave 
  30.  
  31. logpath=/data/log/mongodb/slave/mongodb.log 
  32.  
  33. pidfilepath=/var/run/mongo_slave.pid 
  34.  
  35. #directoryperdb=true 
  36.  
  37. logappend=true 
  38.  
  39. replSet=policydb2 
  40.  
  41. port=10001 
  42.  
  43. oplogSize=10000 
  44.  
  45. fork=true 
  46.  
  47. noprealloc=true 
  48.  
  49. profile=1 
  50.  
  51. slowms=200 
  52.  
  53. #arbiter.conf 
  54.  
  55. dbpath=/data/arbiter 
  56.  
  57. logpath=/data/log/mongodb/arbiter/mongodb.log 
  58.  
  59. pidfilepath=/var/run/mongo_arbiter.pid 
  60.  
  61. #directoryperdb=true 
  62.  
  63. logappend=true 
  64.  
  65. replSet=policydb2 
  66.  
  67. port=10000 
  68.  
  69. oplogSize=10000 
  70.  
  71. fork=true 
  72.  
  73. noprealloc=true 
  74.  
  75. profile=1 
  76.  
  77. slowms=200 
  78.  
  79. ③啟動(dòng)mongodb 
  80.  
  81. /etc/init.d/mongodb_master start 
  82.  
  83. /etc/init.d/mongodb_slave start 
  84.  
  85. /etc/init.d/mongodb_arbiter start 

④配置主、備、仲裁節(jié)點(diǎn)

主節(jié)點(diǎn):

  1. # /usr/local/mongodb/bin/mongo 10.68.4.209:10002 
  2.  
  3. MongoDB shell version: 2.4.9 
  4.  
  5. connecting to: 10.68.4.209:10002/test 
  6.  
  7. > use admin 
  8.  
  9. switched to db admin 
  10.  
  11. > config={ _id:"policydb2", members:[ {_id:0,host:'10.68.4.29:10002',priority:2}, {_id:1,host:'10.68.4.29:10001',priority:1}, 
  12.  
  13. ... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] }; 
  14.  
  15.  
  16. "_id" : "policydb"
  17.  
  18. "members" : [ 
  19.  
  20.  
  21. "_id" : 0
  22.  
  23. "host" : "10.68.4.29:10002"
  24.  
  25. "priority" : 2 
  26.  
  27. }, 
  28.  
  29.  
  30. "_id" : 1
  31.  
  32. "host" : "10.68.4.29:10001"
  33.  
  34. "priority" : 1 
  35.  
  36. }, 
  37.  
  38.  
  39. "_id" : 2
  40.  
  41. "host" : "10.68.4.29:10000"
  42.  
  43. "arbiterOnly" : true 
  44.  
  45.  
  46.  
  47.  
  48. rs.initiate(config) #初始化 
  49.  
  50. rs.status() #查看集群狀態(tài) 

10.68.4.30

①建立數(shù)據(jù)文件夾和日志文件夾

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

  1. #master.conf 
  2.  
  3. dbpath=/data/master 
  4.  
  5. logpath=/data/log/mongodb/master/mongodb.log 
  6.  
  7. pidfilepath=/var/run/mongo_master.pid 
  8.  
  9. #directoryperdb=true 
  10.  
  11. logappend=true 
  12.  
  13. replSet=policydb3 
  14.  
  15. port=10002 
  16.  
  17. oplogSize=10000 
  18.  
  19. fork=true 
  20.  
  21. noprealloc=true 
  22.  
  23. profile=1 
  24.  
  25. slowms=200 
  26.  
  27. #slave.conf 
  28.  
  29. dbpath=/data/slave 
  30.  
  31. logpath=/data/log/mongodb/slave/mongodb.log 
  32.  
  33. pidfilepath=/var/run/mongo_slave.pid 
  34.  
  35. #directoryperdb=true 
  36.  
  37. logappend=true 
  38.  
  39. replSet=policydb3 
  40.  
  41. port=10001 
  42.  
  43. oplogSize=10000 
  44.  
  45. fork=true 
  46.  
  47. noprealloc=true 
  48.  
  49. profile=1 
  50.  
  51. slowms=200 
  52.  
  53. #arbiter.conf 
  54.  
  55. dbpath=/data/arbiter 
  56.  
  57. logpath=/data/log/mongodb/arbiter/mongodb.log 
  58.  
  59. pidfilepath=/var/run/mongo_arbiter.pid 
  60.  
  61. #directoryperdb=true 
  62.  
  63. logappend=true 
  64.  
  65. replSet=policydb3 
  66.  
  67. port=10000 
  68.  
  69. oplogSize=10000 
  70.  
  71. fork=true 
  72.  
  73. noprealloc=true 
  74.  
  75. profile=1 
  76.  
  77. slowms=200 

③啟動(dòng)mongodb

/etc/init.d/mongodb_master start

/etc/init.d/mongodb_slave start

/etc/init.d/mongodb_arbiter start

④配置主、備、仲裁節(jié)點(diǎn)

主節(jié)點(diǎn):

  1. # /usr/local/mongodb/bin/mongo 10.68.4.209:10002 
  2.  
  3. MongoDB shell version: 2.4.9 
  4.  
  5. connecting to: 10.68.4.209:10002/test 
  6.  
  7. > use admin 
  8.  
  9. switched to db admin 
  10.  
  11. > config={ _id:"policydb3", members:[ {_id:0,host:'10.68.4.30:10002',priority:2}, {_id:1,host:'10.68.4.30:10001',priority:1}, 
  12.  
  13. ... {_id:2,host:'10.68.4.30:10000',arbiterOnly:true}] }; 
  14.  
  15.  
  16. "_id" : "policydb"
  17.  
  18. "members" : [ 
  19.  
  20.  
  21. "_id" : 0
  22.  
  23. "host" : "10.68.4.30:10002"
  24.  
  25. "priority" : 2 
  26.  
  27. }, 
  28.  
  29.  
  30. "_id" : 1
  31.  
  32. "host" : "10.68.4.30:10001"
  33.  
  34. "priority" : 1 
  35.  
  36. }, 
  37.  
  38.  
  39. "_id" : 2
  40.  
  41. "host" : "10.68.4.30:10000"
  42.  
  43. "arbiterOnly" : true 
  44.  
  45.  
  46.  
  47.  
  48. rs.initiate(config) #初始化 
  49.  
  50. rs.status() #查看集群狀態(tài) 

#p#

2.Mongod 創(chuàng)建單個(gè)分片的配置服務(wù)器

① 創(chuàng)建配置目錄

10.68.4.209 mkdir /data/config

10.68.4.29 mkdir /data/config

10.68.4.30 mkdir /data/config

②準(zhǔn)備配置服務(wù)器的配置文件

3個(gè)服務(wù)器的配置服務(wù)器的配置文件一致

  1. #config.conf 
  2.  
  3. dbpath=/data/config 
  4.  
  5. logpath=/data/log/mongodb/config/mongodb.log 
  6.  
  7. pidfilepath=/var/run/mongo_config.pid 
  8.  
  9. directoryperdb=true 
  10.  
  11. logappend=true 
  12.  
  13. port=10003 
  14.  
  15. fork=true 
  16.  
  17. configsvr=true 

③啟動(dòng)配置服務(wù)器

/etc/init.d/mongodb_config start

3.Mongod 創(chuàng)建并配置mongos和開啟分片模式

① 創(chuàng)建日志目錄

Mkdir -p /data/log/mongodb/mongos/

② 準(zhǔn)備mongos的配置文件

  1. #mongos.conf 
  2.  
  3. logpath=/data/log/mongodb/mongos/mongodb.log 
  4.  
  5. pidfilepath=/var/run/mongo_mongos.pid 
  6.  
  7. logappend=true 
  8.  
  9. port=10004 
  10.  
  11. fork=true 
  12.  
  13. configdb=10.68.4.209:10003,10.68.4.29:10003,10.68.4.30:1000 

③ 啟動(dòng)mongos

/etc/init.d/mongodb_mongos start

④ 配置分片

  1. sh.addShard("policydb/10.68.4.209:10002"
  2.  
  3. sh.addShard("policydb2/10.68.4.29:10002"
  4.  
  5. sh.addShard("policydb3/10.68.4.30:10002"
  6.  
  7. sh.enableSharding("policydb"
  8.  
  9. db.runCommand({"shardcollection":"policydb.fullPolicyTextInfo_history""key":{"key":1}}) 
  10.  
  11. db.printShardingStatus() #查看分片狀態(tài) 
  12.  
  13. sh.status({verbose:true}) 
  14.  
  15. sh.status() 

3.快速創(chuàng)建副本集和配置服務(wù)腳本

上圖

1.圖1

 

生產(chǎn)MongoDB 分片與集群方案

2.圖2 config.conf配置文件

 

生產(chǎn)MongoDB 分片與集群方案

3.圖3

 

生產(chǎn)MongoDB 分片與集群方案

附mongodb一鍵安裝腳本:

http://pan.baidu.com/s/1c0zvP7M

附mongodb副本集和配置服務(wù)器一鍵配置腳本:

http://pan.baidu.com/s/1GuQ0A

博文出處:http://my.oschina.net/pwd/blog/411439

責(zé)任編輯:Ophira 來源: oschina博客
相關(guān)推薦

2023-02-14 08:01:32

2017-04-01 17:30:36

MongoDB分片實(shí)現(xiàn)

2022-02-08 14:35:36

分片集群數(shù)據(jù)庫mongo

2013-11-28 09:48:55

MongoDBSharding分片

2013-11-25 10:45:04

MongoDB

2019-02-19 10:12:41

Redis分片數(shù)據(jù)

2024-05-20 09:51:53

MongoDB數(shù)據(jù)庫管理數(shù)據(jù)庫服務(wù)器

2022-09-15 08:31:11

主從復(fù)制模式Docker

2022-02-11 08:41:19

WindowsRedis集群

2017-04-26 08:51:36

MongoDB集群實(shí)戰(zhàn)

2019-09-03 15:45:31

Redis分片集群

2024-12-20 12:12:19

Redis負(fù)載均衡節(jié)點(diǎn)

2023-09-01 10:20:05

數(shù)據(jù)庫解密

2011-07-28 13:24:03

MongoDBAuto-shardi

2020-12-09 08:59:59

MongoDB復(fù)合索事故

2018-01-29 12:39:56

數(shù)據(jù)庫MongoDB集群

2022-06-27 07:33:19

微服務(wù)Loki

2023-10-09 07:31:25

2024-11-19 13:11:19

2011-07-26 16:53:29

MongoDB數(shù)據(jù)庫自動(dòng)分片技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)