mongodb

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongodbinstallationmongodb-orgmongodb-org-shellmongodb-org-toolsmongodb-org-serverconfig 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数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL 安全 数据库连接
MongoDB 常见使用
MongoDB 常见使用
410 0
MongoDB 常见使用
|
3月前
|
NoSQL 关系型数据库 MongoDB
MongoDB
本小节笔者将带领大家学习非关系型数据库MongoDB,理论学习预计45min,侧重于快速上手实战。
MongoDB
|
7月前
|
存储 NoSQL MongoDB
|
8月前
|
存储 NoSQL 关系型数据库
什么时候选择MongoDB
什么时候选择MongoDB
65 2
|
9月前
|
消息中间件 分布式计算 NoSQL
MongoDB适用场景
MongoDB适用场景
|
存储 缓存 NoSQL
MongoDB 使用介绍
MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的非关系型开源数据库系统。其优势在于可以存放海量数据,具备强大的查询功能,是一个独立的面向集合文档形式的。
293 0
MongoDB 使用介绍
|
存储 分布式计算 NoSQL
MongoDb的主要特点
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易
222 0
|
NoSQL JavaScript 关系型数据库
MongoDB使用实际很简单
MongoDB是个文档型数据库,虽然前有CouchDB夹击,后有MySQL 8.x文档支持的追赶,但是丝毫不影响它在市场中占据的份额。
|
存储 缓存 NoSQL
初探MongoDB
MongoDB 日志 存储引擎
1252 0
|
NoSQL MongoDB 索引
mongodb的限制
知道一个产品的限制所在,就可以更好的使用它。目前已知的mongodb限制如下: BSON Document Size:最大为16M 数据库:大小写敏感、数据库名称必须少于64个字符 集合名称不能包含如下信息:contain the $.
2202 0

热门文章

最新文章