开发者社区> megachen> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mongodb

简介: mongodb installation mongodb-org mongodb-org-shell mongodb-org-tools mongodb-org-server config mongodb.
+关注继续查看

mongodb

installation

  • mongodb-org
  • mongodb-org-shell
  • mongodb-org-tools
  • mongodb-org-server

config mongodb.conf to connect mongodb

  • comment bind
  • uncomment httpinterface

connect to mongodb from localhost

  • export LC_ALL=C
  • mongodb

常用shell

  • use dbname 内置数据库: local, 使用use dbname是会自动创建一个数据库
  • db.help()
  • db.mycoll.help(), mycoll相当于表
  • cls clear screen
  • for(i = 0; i < 10000; i++) {
    db.mycollection.insert({"name": "demo" + i});
    }
  • show dbs
  • show collections

索引(b+tree, b-tree)

  • db.mycoll.ensureIndex
  • db.mycoll.dropIndex
  • db.mycoll.dropIndexes
  • db.mycoll.getIndexes

管理

  • fork=true | false 是否在后台
  • bind_ip=ip 监听地址
  • log_path
  • auth

mongo replication

  • oplog and heartbeat
  • 仲裁节点
  • 至少三个节点
  • 初始化同步

    1. clone 所有的 db
    2. 应用 dataset 的所有改变, copy oplog 并应用到本地
    3. 为所有的 collection 构建索引

复制指令

  • --replSet=rs0
  • rs.initialize()
  • rs.config()
  • rs.add("192.168.1.10"27012")
  • rs.status()
  • rs.isMaster()

配置

  • 配置好DNS主机名称解析
  • node1: 使用replSet=rs0启动作为主的
  • node2: 使用replSet=rs0启动作为从的
  • 主从如何分配的, 之后主的才会只用rs.add()添加从节点, 这里再node1中使用rs.add添加node2进来
  • 这样master节点中的数据就会被sync到slave上了
  • 但是mongodb默认master可读, slave不可以, 所以要在slave中执行db.setSlaveOk(), 这样就可以了
  • rs.addArb()添加仲裁节点, 用于选举的, 不会存放数据和同步数据

选举

  • 主节点down
  • 0优先级节点不能参与选举和被选举为master
  • 新副本集初始化
  • 从节点的优先级高时
  • 主节点联系不到多数的从节点

将master切换为从

使用rs.stepDown()模拟master节点down, 不提倡
修改master的优先级或者从节点的优先级
  • cnf = rs.config() # 使用cnf变量保存config()函数返回的对象
  • cnf.members[n].priority=10 # 修改需要节点的优先级
  • rs.reconfig(cnf)

mongodb sharding(build-in)

  • 方便CPU, IO
  • 将数据切割成多个数据片

分配的方式(写分散, 读集中)

  • 范围分片
  • 离散分片
  • hash分片

配置

  • config server: 存放元数据, /etc/mongod.conf --> configserver=true, 运行mongod实例的节点
  • mongos: 就是代理节点, 类似于mogilefs的tracker节点, 安装mongodb-org-mongos包即可, mongos --configdb=ip:port --fork --logpath=/path/to/logfile
  • shard1: 数据节点
  • shard2
  • shard3
  • 在other节点上使用mongo --host mongos_name 连接到mongos节点
  • 在shard中创建数据库, 注意, shard节点是不能replSet的, shard就是要节点上的数据不同的
  • sh.addShard()
  • sh.enableSharding(dbname)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
走进 MongoDB
了解MongoDB相关概念和基本操作。
984 0
mongoDB总结
版本3.6.x 配置 windows建议安装service方式,省的每次通过命令行启动server端。 对比mysql 大部分人都有mysql的使用经验,对比着学习也是种不错的方法。
738 0
MongoDB
一:MongoDB简介        MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。属于NoSQL(非关系型数据库)。
1094 0
mongodb
安装mongodb sudo apt-get install mongodb 启动mongodb服务 service mongodb start 进入mongo mongo 查看数据库 > show dbs 使用school这个数据库(不用创建,直接...
714 0
C# MongoDB
一、搭建Mongodb 副本集 副本集中有三个角色: 主节点:所有副节点的数据均来自于主节点,并且只能对主节点进行读写操作。副节点:数据来自于主节点,可以进行读取操作,但是不能进行写操作。仲裁者:不含数据也不与客户端交流,只在选举主节点的时候进行投票。
1297 0
MongoDB命令
1,获取当前数据库下的所有集合,返回的是一个列表(搞python的应该熟悉python的4个核心数据库类型及其特性dict{},list[],数组(),集合(目的仅仅是去重)) 2,显示当前db下的所有collections stats 3,数据库db,集合collection stat...
860 0
+关注
megachen
Just for fun
文章
问答
文章排行榜
最热
最新
相关电子书
更多
ApsaraDB for MongoDB
立即下载
《阿里云数据库 MongoDB 专属集群版》
立即下载
ApsaraDB for MongoDB—产品介绍
立即下载