设为首页 收藏本站
查看: 1231|回复: 0

[经验分享] mongoDB配置主从同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-18 12:49:30 | 显示全部楼层 |阅读模式
官方网站:
http://www.mongodb.org/

MongoDB 安裝,主从配置

一 MongoDB 安装
  • [iyunv@zabbix_server src]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz

  • [iyunv@zabbix_server src]# tar xzvf mongodb-linux-x86_64-2.0.0.tgz

  • [iyunv@zabbix_server src]# mv mongodb-linux-x86_64-2.0.0 /usr/local/mongodb


  • [iyunv@zabbix_server src]# mkdir /usr/local/mongodb/data

  • [iyunv@zabbix_server src]# touch /usr/local/mongodb/logs


  • [iyunv@zabbix_server bin]# /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork




  • [iyunv@zabbix_server bin]#./mongo

  • MongoDB shell version: 2.0.0

  • connecting to:test

  • > use test;

  • switched to db test

  • > exit

  • bye



  • [iyunv@zabbix_server bin]# netstat -anlpt | grep mongo

  • tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 11504/mongod

  • tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN 11504/mongod


注意:
如果报错
-bash: /usr/local/mongodb/bin/mongod: cannot execute binary file
说明你的服务器和mongodb 的版本不对应, 如果服务器是64位,下载x86_64的mongodb ,如果服务器是32位的, 下载i686的mongodb/


二 MongoDB 主从配置

1)实验环境
主:192.168.0.14
从:192.168.0.64

2)时间同步
两台机器做时间同步
[iyunv@zabbix_server src]# ntpdate time.windows.com

3)启动服务
master:192.168.0.14
启动命令
/usr/local/mongodb/bin/mongod --master --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork

slave:192.168.0.64
启动命令
/usr/local/mongodb/bin/mongod --slave --source 192.168.0.14:27017 --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork


4)测试主从
在主上插入数据
测试1:
  • 测试1:

  • 1 在主库上插入数据

  • [iyunv@cacti bin]#./mongo

  • MongoDB shell version: 2.0.0

  • connecting to:test

  • > db.foo.save({"id":123456,"name":'lizonggang'})

  • > db.foo.find({"id":123456})

  • { "_id": ObjectId("51c3f4b21399022afd992f39"),"id": 123456,"name":"lizonggang" }

  • >


  • 2 在从上查看数据(已有在主上插入的数据,说明主从成功)

  • [iyunv@zabbix_server bin]#./mongo

  • MongoDB shell version: 2.0.0

  • connecting to:test

  • > db.foo.find({"id":123456})

  • { "_id": ObjectId("51c3f4b21399022afd992f39"),"id": 123456,"name":"lizonggang" }

  • >


测试2:
  • 1 在主库上插入数据

  • > use elaindb

  • switched to db elaindb

  • > db.test.save({title:"This is a test!"})

  • > db.test.find();

  • { "_id": ObjectId("51c3f8f11a90c8da157c7f64"),"title":"This is a test!" }

  • >


  • 2 在从库上验证数据

  • [iyunv@zabbix_server bin]#./mongo

  • MongoDB shell version: 2.0.0

  • connecting to:test

  • > use elaindb

  • switched to db elaindb

  • > db.test.find();

  • { "_id": ObjectId("51c3f8f11a90c8da157c7f64"),"title":"This is a test!" }

  • > db.printReplicationInfo();

  • this is a slave, printing slave replication info.

  • source: 192.168.0.14:27017

  •      syncedTo: Fri Jun 21 2013 14:59:10 GMT+0800 (CST)

  • = 9 secs ago (0hrs)

  • >

  • > db.printSlaveReplicationInfo();

  • source: 192.168.0.14:27017

  •      syncedTo: Fri Jun 21 2013 14:59:30 GMT+0800 (CST)

  • = 16 secs ago (0hrs)

  • >



测试3:
  • 在这个状态下,slave 下是不可以插入数据的

  • > db.test.save({title:"This is slave test!"})

  • not master


5) 一些查询状态的语句

1)查询库
  • > show dbs;

  • elaindb 0.0625GB

  • local 0.125GB

  • test 0.0625GB


2)在从库上查询主库的地址
  • > use local;

  • switched to db local

  • > db.sources.find()

  • { "_id": ObjectId("51c3f5dd568d10529950b10d"),"host":"192.168.0.14:27017","source":"main","syncedTo": { "t": 1371797300000,"i": 1 } }

  • >


3)查看主从复制状态
  • > db.printReplicationInfo();

  • configured oplog size: 47.6837158203125MB

  • log length start to end: 1375secs (0.38hrs)

  • oplog first event time: Fri Jun 21 2013 14:30:35 GMT+0800 (CST)

  • oplog last event time: Fri Jun 21 2013 14:53:30 GMT+0800 (CST)

  • now: Fri Jun 21 2013 14:53:32 GMT+0800 (CST)

  • >


4)查看Collection状态
  • > db.printCollectionStats();

  • foo

  • {

  • "ns":"test.foo",

  • "count": 1,

  • "size": 56,

  • "avgObjSize": 56,

  • "storageSize": 4096,

  • "numExtents": 1,

  • "nindexes": 1,

  • "lastExtentSize": 4096,

  • "paddingFactor": 1,

  • "flags": 1,

  • "totalIndexSize": 8176,

  • "indexSizes": {

  • "_id_": 8176

  •     },

  • "ok": 1

  • }

  • ---

  • system.indexes

  • {

  • "ns":"test.system.indexes",

  • "count": 1,

  • "size": 64,

  • "avgObjSize": 64,

  • "storageSize": 4096,

  • "numExtents": 1,

  • "nindexes": 0,

  • "lastExtentSize": 4096,

  • "paddingFactor": 1,

  • "flags": 0,

  • "totalIndexSize": 0,

  • "indexSizes": {


  •     },

  • "ok": 1

  • }

  • ---

  • >



6)应急
如果在应用中主挂掉了怎么办?
这个情况就需要,停止从库, 把从库以主库的启动命令起来就可以了。

1)停掉从库

kill -9 进程号

2)删除locat下文件

  • rm mongodb/db/locat.*-rf


3)启动从库

  • /usr/local/mongodb/bin/mongod --master --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork


7) MongoDB 增,删,改,查

  • [iyunv@cacti bin]#./mongo

  • MongoDB shell version: 2.0.0

  • connecting to:test

  • > db.test.insert({"Name":"ymind","age": 8 }); #在test数据库里插入数据

  • >

  • > db.test.find({"Name":"ymind" } ); #查询数据

  • { "_id": ObjectId("51c4187090db4e4751a3cd05"),"Name":"ymind","age": 8 }

  • > db.test.find({"age": 8} ); #查询数据

  • { "_id": ObjectId("51c4187090db4e4751a3cd05"),"Name":"ymind","age": 8 }

  • >

  • >

  • > db.test.update({"Name":"ymind"}, { "$set": { "age":"5" } } ); #修改数据

  • > db.test.find({"Name":"ymind" } );

  • { "Name":"ymind","_id": ObjectId("51c4187090db4e4751a3cd05"),"age":"5" }

  • >

  • > db.test.remove({"Name":"ymind" } ); #删除数据

  • > db.test.find({"Name":"ymind" } );

  • >

  • >



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302132-1-1.html 上篇帖子: golang解析mongodb中的ISODate类型 下篇帖子: mongodb配置主从(官方已经不建议使用)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表