Heim >Datenbank >MySQL-Tutorial >MongoDB配置Master和Slave模式

MongoDB配置Master和Slave模式

WBOY
WBOYOriginal
2016-06-07 17:10:11998Durchsuche

MongoDB是一个可扩展,高性能、开源、模式自由、面向文档的数据库它并不是我们通常用的RDBMS,属于最近比较热门的quot;NoSqlqu

MongoDB是一个可扩展,高性能、开源、模式自由、面向文档的数据库

它并不是我们通常用的RDBMS,属于最近比较热门的"NoSql"的数据库范畴

它和一般的基于key-value的db还是不大一样的,因为它本身的功能很强大

它已经实现了类似于SQL的很多功能,如index,limit,skip,group….

当应用的数据量达到海量级,传统的Mysql,Oracle不能满足我们的性能要求

而对于数据还有一定的查询需求时,也许可以考虑一下使用MongoDB

安装很简单:

  • wget "http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.2.4.tgz"
  • tar zxvf mongodb-linux-x86_64-1.2.4.tz
  • ln -s /opt/mongodb-linux-x86_64-1.2.4/ /usr/local/mongodb
  • mkdir /opt/mongodb_data
  • MongoDB有2个版本的,官方推荐使用mongodb-linux-x86_64-1.2.4.tgz,只有在linux是老系统,mongodb无法启动时,才使用"legacy static“版

    MongoDB里提供了简单的Auth功能,如果要开启认证,则在启动之前,需要首先增加用户

  • /usr/local/mongodb/bin/mongo admin
  • db.addUser('admin','manager')
  • db.auth('admin','manager')
  • show dbs
  • use address
  • db.addUser('mongodb','test')
  • 其中,admin是一个特殊的数据库,只有在admin上db.auth通过后,,才能给其它的数据库增加权限

    如上,我们为address数据库增加了一个mongodb的用户

    另外,如果我们要启用Master/Slave模式,而且开启了Auth功能,则需要同时在Master和Slave上的local数据库上增加一个repl的用户

  • use local
  • 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没有及时跟上的话,有可能会数据不一致

  • –oplogSize=10000M –logappend –auth –master &
  • 在python中,可以使用pymongo模块

  • db = connection.mail_addr
  • ……
  • db.address.save(user_addr,safe=True)
  • 使用save来保存某个记录,如果我们已经使用find()查处了某个记录,则修改后也可以使用save来进行update操作

    如果要实现某条记录不存在就insert,存在就update,则可以使用

  • MongoDB的功能很强大,可以像Mysql那样建立索引,且支持多字段索引、支持unique索引…

    linux

  • Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn