Welcome 微信登录

首页 / 数据库 / MySQL / MongoDB配置Master和Slave模式

MongoDB是一个可扩展,高性能、开源、模式自由、面向文档的数据库它并不是我们通常用的RDBMS,属于最近比较热门的"NoSql"的数据库范畴它和一般的基于key-value的db还是不大一样的,因为它本身的功能很强大它已经实现了类似于SQL的很多功能,如index,limit,skip,group….当应用的数据量达到海量级,传统的Mysql,Oracle不能满足我们的性能要求而对于数据还有一定的查询需求时,也许可以考虑一下使用MongoDB安装很简单:
  1. wget "http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.2.4.tgz"
  2. tar zxvf mongodb-linux-x86_64-1.2.4.tz
  3. ln -s /opt/mongodb-linux-x86_64-1.2.4/ /usr/local/mongodb
  4. mkdir /opt/mongodb_data
MongoDB有2个版本的,官方推荐使用mongodb-linux-x86_64-1.2.4.tgz,只有在linux是老系统,mongodb无法启动时,才使用"legacy static“版MongoDB里提供了简单的Auth功能,如果要开启认证,则在启动之前,需要首先增加用户
  1. /usr/local/mongodb/bin/mongo admin
  2. db.addUser("admin","manager")
  3. db.auth("admin","manager")
  4. show dbs
  5. use address
  6. db.addUser("mongodb","test")
其中,admin是一个特殊的数据库,只有在admin上db.auth通过后,才能给其它的数据库增加权限如上,我们为address数据库增加了一个mongodb的用户另外,如果我们要启用Master/Slave模式,而且开启了Auth功能,则需要同时在Master和Slave上的local数据库上增加一个repl的用户
  1. use local
  2. db.addUser("repl","replication")
否则,当我们启动slave时,会报错:replauthenticate: no user in local.system.users to use for authentication replauthenticate: can"t authenticate to master server, user:repl然后,我们使用如下脚本来分别启动Master和Slave即可,注意–oplogSize选项,它指定了master往slave同步时,更新日志保存的最大大小,默认64位机器,最大1G,如果太小,slave没有及时跟上的话,有可能会数据不一致
  1. nohup /usr/local/mongodb/bin/mongod run –dbpath=/data/mongodb_data/ –logpath=/data/mongodb_data/mongodb.log –oplogSize=10000M –logappend –auth –master &
  2. nohup /usr/local/mongodb/bin/mongod run –dbpath=/opt/mongodb_data/ –logpath=/opt/mongodb_data/mongodb.log –logappend –auth –slave –source=192.168.10.10:27017 &
在python中,可以使用pymongo模块
  1. from pymongo.connection import Connection
  2. connection = Connection("127.0.0.1",27017)
  3. db = connection.mail_addr
  4. db.authenticate("mongodb","test")
  5. ……
  6. db.address.save(user_addr,safe=True)
使用save来保存某个记录,如果我们已经使用find()查处了某个记录,则修改后也可以使用save来进行update操作如果要实现某条记录不存在就insert,存在就update,则可以使用
    1. db.foo.update({"yy"}:5,{"$set":{"xx":2}},upsert=true)
  • MongoDB的功能很强大,可以像Mysql那样建立索引,且支持多字段索引、支持unique索引…MongoDB常用的操作命令HBase之数据模型(DataModel)相关资讯      MongoDB 
    • MongoDB 3.3.0 发布下载  (01月14日)
    • 使用MongoDB C#官方驱动操作  (12/31/2015 16:27:56)
    • CentOS 6.6下安装MongoDB 3.0.1  (12/21/2015 19:29:02)
    • MongoDB 3.2版WiredTiger存储引擎  (01月02日)
    • 进程监控工具Supervisor 启动  (12/26/2015 10:49:57)
    • MongoDB 3.2.1 RC0 发布下载  (12/18/2015 11:32:29)
    本文评论 查看全部评论 (0)
    表情: 姓名: 字数