mongodb-阿里云开发者社区

开发者社区> megachen> 正文

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)

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

相关文章
小记基于xstate实现携程金服业务流程动态化
小记基于xstate实现携程金服业务流程动态化
5 0
Feed系统架构与Feed缓存模型
Feed系统架构与Feed缓存模型
3 0
场景体验报告——冬季实战营第一期
冬季实战营第一期,通过六个场景,从ECS的登录开始,涵盖了安装并配置Apache、MySQL、PHP环境,Docker的部署、SpringBoot项目的部署,最后还搭建了一个门户网站。
7 0
冬季实战营学习报告 第一期:从零到一上手玩转云服务器
这一期训练营从1月17号开始,为期5天。主要内容是了解学习阿里云的云服务(ECS) 因为提前加入了阿里云社区活动群,管理员每天都会提醒我们登录账号打卡学习,这里感谢管理员对我们的监督😊😊。
11 0
Aerospike在实时竞价广告中的应用
Aerospike在实时竞价广告中的应用
4 0
HH
冬季实战营第一期感受
实战营第一期从17日到21日每日简简单单但依旧有所收获。
6 0
基于阿里云从零到一上手玩转云服务器
基于国内最大的云服务商阿里云,开展几次基础的玩法课程来体验云服务的乐趣。
4 0
什么是软件实施?软件实施前景几何?软件实施的面试题有那些?
事情是这样的,由于自己目前还没有对象,就想着在兰州找一份还不错的工作,于是投了一家在我的家乡还算不错的公司,对方却说有可能是软件实施岗位,于是趁机了解了一下, 什么是软件实施? 软件实施掌握的基础知识有哪些? 软件实施前景几何?
2 0
宝塔面板如何为网站配置SSL证书?
原文链接:https://blog.csdn.net/JunyouYH/article/details/120734870(我的不属于转载) 代码复制不过来请转原文。。代码复制不过来请转原文。。代码复制不过来请转原文
7 0
+关注
megachen
Just for fun
180
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载