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
目录
相关文章
|
8月前
|
NoSQL 前端开发 MongoDB
MongoDB应用
初始化路由模板 数据库和前端页面交互 编写注册的后台接口 先连接数据库 和前台进行数据交互 文章的后台接口 先查询所有的文章内容 发文章 一些验证方法 邮箱验证 用户名随机生成
39 0
|
8月前
|
存储 NoSQL 关系型数据库
什么时候选择MongoDB
什么时候选择MongoDB
65 2
|
9月前
|
JSON NoSQL MongoDB
初学mongoDB(一)
初学mongoDB
47 0
|
9月前
|
存储 SQL NoSQL
mongoDB(二)
mongoDB
68 0
|
9月前
|
消息中间件 分布式计算 NoSQL
MongoDB适用场景
MongoDB适用场景
|
10月前
|
存储 SQL 分布式计算
MongoDB的介绍
MongoDB的介绍
56 0
|
12月前
|
SQL JSON NoSQL
老去的MongoDB,未来在哪里?
老去的MongoDB,未来在哪里?
138 0
|
NoSQL Shell Linux
|
存储 分布式计算 NoSQL
MongoDb的主要特点
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易
222 0
|
NoSQL 数据库 MongoDB
mongodb
安装mongodb sudo apt-get install mongodb 启动mongodb服务 service mongodb start 进入mongo mongo 查看数据库 > show dbs 使用school这个数据库(不用创建,直接...
806 0