欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    mongodb部署replicasets副本集实现高可用解决方案详细过程.docx

    • 资源ID:14901296       资源大小:59.47KB        全文页数:19页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    mongodb部署replicasets副本集实现高可用解决方案详细过程.docx

    1、mongodb部署replicasets副本集实现高可用解决方案详细过程NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能,先来用用副本集:1,设置yum源安装创建/etc/yum.repos.d/mongodb-enterprise.repo文件,这样就可以使用yum来安装mongodb了。mongodb-org-3.0name=MongoDB Repositorybaseurl=https:/repo.mongodb.org/yum/redhat/$releasever/mo

    2、ngodb-org/3.0/x86_64/gpgcheck=1enabled=1gpgkey=https:/www.mongodb.org/static/pgp/server-3.0.asc每一个release版本的.repo文件可以在repository找到,记住奇数镜像版本(比如e.g.2.5)是开发版本,放在生成环境是不太合适的。2,源码安装2.1 下载安装包在官方网站可以下载到比较新的版本,下载地址:https:/www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.3.tgz/download;我这里

    3、下载的是稳定版本:mongodb-linux-x86_64-3.0.3.tgz,安装也是用的3.0.3; 3.0.3的下载地址为:2.2 解压安装tar -xvf mongodb-linux-x86_64-3.0.3.tgz -C /usr/local/3 启动3个mongodb服务安装mongodb replica sets,至少需要3台linux服务器,而初始化副本集合,本来应该是3台服务器,但是这里只是测试环境,启用了3个mongodb端口进程来来模拟3个mongodb的服务器达到一样的效果,在实际中,可以部署在多台mongodb服务器上,如下表所示:Mongodb 主机服务器端口地址默

    4、认角色mongodb主机 1localhost:27017primarymongodb主机 2localhost:27018secondarymongodb主机 3localhost:27019secondary开始启动3个mongodb服务:# 启动第一个mongodb 27017,默认为primary服务器mkdir -p /data/mongodb/log27017mkdir -p /data/mongodb/data27017/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod -replSet repset -port 27017 -dbp

    5、ath /data/mongodb/data27017 -oplogSize 2048 -logpath /data/mongodb/log27017/mongod.log &# 启动第二个mongodb 27018mkdir -p /data/mongodb/log27018mkdir -p /data/mongodb/data27018/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod -replSet repset -port 27018 -dbpath /data/mongodb/data27018 -oplogSize 2048 -log

    6、path /data/mongodb/log27018/mongod.log &# 启动第三个 mongodb 27019mkdir -p /data/mongodb/log27019mkdir -p /data/mongodb/data27019/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod -replSet repset -port 27019 -dbpath /data/mongodb/data27019 -oplogSize 2048 -logpath /data/mongodb/log27019/mongod.log &4 添加rep

    7、lica sets配置在任何一台mongodb实例上登录,进入admin库,执行config命令: use adminswitched to db admin config = _id:repset, members:. _id:0,host:mongodb_server:27017,. _id:1,host:mongodb_server:27018,. _id:2,host:mongodb_server:27019. ; config = _id:repset, members:. . _id:0,host:mongodb_server:27017,. . _id:1,host:mongod

    8、b_server:27018,. . _id:2,host:mongodb_server:27019. . ; _id : repset, members : _id : 0, host : mongodb_server:27017 , _id : 1, host : mongodb_server:27018 , _id : 2, host : mongodb_server:27019 5 初始化副本集# 初始化副本集配置,使用rs.initiate(config);命令rs.initiate(config); rs.initiate(config); ok : 1 repset:SECOND

    9、ARY6 查看replica sets状态看到config配置里面的第一个默认为primary,后面的都为secondary,然后查看optime : Timestamp(1465641737, 1),如果集合中的mongodb的optime一致,表是集群中各个mongodb数据是保持一致性的:# 随意登录一个mongodb服务rootoracle_master # /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27017MongoDB shell version: 3.0.3connecting to: localhost

    10、:27017/testServer has startup warnings: 2016-06-10T07:56:33.333-0700 I CONTROL initandlisten * WARNING: You are running this process as the root user, which is not recommended.2016-06-10T07:56:33.333-0700 I CONTROL initandlisten repset:PRIMARY use adminswitched to db adminrepset:PRIMARY # 查看状态如下:rep

    11、set:PRIMARY rs.status(); set : repset, date : ISODate(2016-06-10T15:04:54.045Z), myState : 1, members : _id : 0, name : mongodb_server:27017, health : 1, state : 1, stateStr : PRIMARY, uptime : 501, optime : Timestamp(1465571046, 1), optimeDate : ISODate(2016-06-10T15:04:06Z), electionTime : Timesta

    12、mp(1465571050, 1), electionDate : ISODate(2016-06-10T15:04:10Z), configVersion : 1, self : true , _id : 1, name : mongodb_server:27018, health : 1, state : 2, stateStr : SECONDARY, uptime : 47, optime : Timestamp(1465571046, 1), optimeDate : ISODate(2016-06-10T15:04:06Z), lastHeartbeat : ISODate(201

    13、6-06-10T15:04:52.493Z), lastHeartbeatRecv : ISODate(2016-06-10T15:04:52.612Z), pingMs : 1, configVersion : 1 , _id : 2, name : mongodb_server:27019, health : 1, state : 2, stateStr : SECONDARY, uptime : 47, optime : Timestamp(1465571046, 1), optimeDate : ISODate(2016-06-10T15:04:06Z), lastHeartbeat

    14、: ISODate(2016-06-10T15:04:52.642Z), lastHeartbeatRecv : ISODate(2016-06-10T15:04:52.642Z), pingMs : 0, lastHeartbeatMessage : could not find member to sync from, configVersion : 1 , ok : 1repset:PRIMARY7,查看后台日志可以看到27107的mongodb默认成为了primary,而27018和27019的成为了secondary了:rootoracle_master # tail -f /dat

    15、a/mongodb/log27017/mongod.log2016-06-11T03:42:19.664-0700 I REPL ReplicationExecutor replSet election succeeded, assuming primary role2016-06-11T03:42:19.664-0700 I REPL ReplicationExecutor transition to PRIMARY2016-06-11T03:42:19.686-0700 I REPL ReplicationExecutor Member mongodb_server:27019 is no

    16、w in state STARTUP22016-06-11T03:42:19.738-0700 I REPL rsSync transition to primary complete; database writes are now permitted2016-06-11T03:42:22.798-0700 I NETWORK initandlisten connection accepted from 192.168.136.128:18197 #6 (4 connections now open)2016-06-11T03:42:22.812-0700 I NETWORK initand

    17、listen connection accepted from 192.168.136.128:18198 #7 (5 connections now open)2016-06-11T03:42:22.849-0700 I NETWORK conn6 end connection 192.168.136.128:18197 (4 connections now open)2016-06-11T03:42:22.906-0700 I NETWORK conn7 end connection 192.168.136.128:18198 (3 connections now open)2016-06

    18、-11T03:42:23.668-0700 I REPL ReplicationExecutor Member mongodb_server:27018 is now in state SECONDARY2016-06-11T03:42:23.689-0700 I REPL ReplicationExecutor Member mongodb_server:27019 is now in state SECONDARY8,验证replica sets 数据一致性(1)先进去主库primary的mongodb上,录入数据:# 登录primary主库rootoracle_master mongod

    19、b# /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27017MongoDB shell version: 3.0.3connecting to: localhost:27017/testServer has startup warnings: 2016-06-11T03:41:07.938-0700 I CONTROL initandlisten * WARNING: You are running this process as the root user, which is not recommended.2016-0

    20、6-11T03:41:07.938-0700 I CONTROL initandlisten repset:PRIMARY# 录入数据repset:PRIMARY use yes_db;switched to db yes_dbrepset:PRIMARY db.yes_users.insert(uid:20160611_0001,uname:tim.man);WriteResult( nInserted : 1 )repset:PRIMARY(2)去第一个备库27018上,验证数据,有了yes_users表的数据,如下:rootoracle_master mongodb# /usr/loca

    21、l/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27018MongoDB shell version: 3.0.3connecting to: localhost:27018/testServer has startup warnings: 2016-06-11T03:41:14.305-0700 I CONTROL initandlisten * WARNING: You are running this process as the root user, which is not recommended.2016-06-11T03:41:1

    22、4.305-0700 I CONTROL initandlisten repset:SECONDARY use yes_db;switched to db yes_dbrepset:SECONDARY show tables;2016-06-11T04:03:02.088-0700 E QUERY Error: listCollections failed: note : from execCommand, ok : 0, errmsg : not master at Error () at DB._getCollectionInfosCommand (src/mongo/shell/db.j

    23、s:646:15) at DB.getCollectionInfos (src/mongo/shell/db.js:658:20) at DB.getCollectionNames (src/mongo/shell/db.js:669:17) at shellHelper.show (src/mongo/shell/utils.js:625:12) at shellHelper (src/mongo/shell/utils.js:524:36)at (shellhelp2):1:1 at src/mongo/shell/db.js:646# mongodb默认是从主节点读写数据的,副本节点上不

    24、允许读,需要设置副本节点可以读。repset:SECONDARY db.getMongo().setSlaveOk();repset:SECONDARY show tables;system.indexesyes_usersrepset:SECONDARY db.yes_users.find(); # 看到有数据了 _id : ObjectId(575bef8126150b8de92029eb), uid : 20160611_0001 repset:SECONDARY(3)去第二个secondary备库27019上,检查数据是否已经复制过来:rootoracle_master mongodb

    25、# /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27019MongoDB shell version: 3.0.3connecting to: localhost:27019/testServer has startup warnings: 2016-06-11T03:41:20.363-0700 I CONTROL initandlisten * WARNING: You are running this process as the root user, which is not recommended.2016-06

    26、-11T03:41:20.363-0700 I CONTROL initandlisten repset:SECONDARY use yes_dbswitched to db yes_dbrepset:SECONDARY db.getMongo().setSlaveOk();# mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。repset:SECONDARY db.yes_users.find();# 看到有数据了,数据已经复制过来。 _id : ObjectId(575bef8126150b8de92029eb), uid : 20160611_0001

    27、repset:SECONDARY9,验证primary、secondary自动切换9.1 自动切换示意图官方介绍: Replica Set High AvailabilityReplica sets provide high availability using automatic failover. Failover allows a secondary member to become primary if the current primary becomes unavailable.9.2 验证自动切换操作当primary不可用,则自动将合适的secondary成员切换成新的prima

    28、ry,接下来的(1) - (5)就来验证这个:(1) 关闭27017的mongod服务,即停止primary主库:rootoracle_master mongodb# /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27017MongoDB shell version: 3.0.3connecting to: localhost:27017/testServer has startup warnings: 2016-06-11T03:41:07.938-0700 I CONTROL initandlisten * WARNIN

    29、G: You are running this process as the root user, which is not recommended.2016-06-11T03:41:07.938-0700 I CONTROL initandlisten repset:PRIMARY use adminswitched to db adminrepset:PRIMARY db.shutdownServer();2016-06-11T04:18:24.148-0700 I NETWORK DBClientCursor:init call() failedserver should be down.2016-06-11T04:18:24.151-0700 I NETWORK trying reconnect to localhost:27017 (127.0.0.1) failed2016-06-11T04:18:24.152-0700 I NETWORK reconnect localhost:27017 (127.0.0.1


    注意事项

    本文(mongodb部署replicasets副本集实现高可用解决方案详细过程.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开