深入浅出MongoDB(三)

深入浅出MongoDB(三)

文章目录

    • 深入浅出MongoDB(三)
      • 复制
      • 副本集设置
      • 分片
      • 分片实例
      • 备份与恢复
      • 监控
      • ObjectId

复制

  1. 复制时将数据同步在多个服务器的过程,提供了数据的冗余备份,在多个服务器上存储数据副本,提高了数据的高可用,可以保证数据的安全性,可以从硬件故障和服务中断中恢复数据。

  2. 复制报站个数据的安全性、高可用、灾难恢复、无需停机维护、分布式读取数据。

  3. 复制原理是复制至少需要两个节点,一个主节点处理客户端请求,其余的是从节点复制主节点上的数据。主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证主从数据一致。

  4. 副本集的特征是N个节点的集群,任意节点都可以作为主节点,所有写入操作都在主节点上,自动故障转移和恢复。

副本集设置

使用同一个mongodb实现主从配置。

  1. 关闭正在运行的mongodb服务器,通过--replSet选项启动mongodb。
# 启动实例rs0
mongod --port 27017 --dbpath 'D:\mongodb\data' --replSet rs0
# 启动新的副本集
rs.initiate()
# 查看副本及配置
rs.conf()
# 查看副本集状态
rs.status()
  1. 添加成员
# 把已经启动的mongodb服务添加到副本集
rs.add("mongod1.net:27017")
# 只能通过主节点把mongo服务添加到副本集中,判断当前是否为主节点
db.isMaster()

分片

  1. 由于复制所有的写入操作到主节点,延迟的敏感数据会在主节点查询,单个副本集限制在12个节点,当请求量巨大时会出现内存不足,本地磁盘不足等,所以需要使用分片。
  2. 分片集群由以下组件构成
    在这里插入图片描述
  • sharded:每个分片包含分片数据的一个子集。每个分片必须作为副本集部署。
  • mongos:充当查询路由,为客户端应用和分片集群之间提供了接口,采用对冲读取以最小化延迟。
  • config servers:配置服务器为集群存储元数据和配置设置。配置服务器必须作为副本集部署。

分片实例

  1. 分片结构
shard server 1:27015
shard server 2:27016
shard server 3:27017
shard server 4:27018
config server: 27100
Router: 40000
  1. 启动shard server,以shard server 1为例
mkdir -p /mongodb/shard/s0
mkdir -p /mongodb/shard/log
mongod --port 27015 --dbpath=/mongodb/shard/s0 
--logpath=/mongodb/shard/log/s0.log --logappend --fork
  1. 启动config server
mkdir -p /mongodb/shard/config
mongod --port 27100 --dbpath=/mongodb/shard/config 
--logpath=/mongodb/shard/log/config.log --logappend --fork
  1. 启动router
# chunkSize用来指定chunk大小,单位是MB,默认200MB
mongos --port 40000 --configdb localhost;27100 --fork --logpath=/mongodb/shard/log/router.log --chunkSize 500
  1. 配置分片,登录到mongos,添加shard
mongo admin --port 40000
db.runCommand({addshard:"localhost:27015"})
......
# 设置分片存储的数据库
db.runCommand({enablesharding:"test"})
db.runCommand({shardcollection:"test.log", key:{id:1, time:1}})

备份与恢复

  1. 使用mongodump命令来备份数据,可以导出所有数据到指定目录中,能通过参数指定导出的数据量级转存的服务器。
# -h指定服务器地址,-d指定备份的数据库实例,-o指定备份的数据存放目录
> mongodump -h dbhost -d dbname -o dbdirectory [-port port_number --dbpath DB_PATH --out BACKUP_DIRECTORY --collection COLLECTION]
  1. 使用mongorestore命令来恢复备份的数据。
# -h指定服务器地址,-d需要回复的数据库实例,--directoryperdb备份数据所在位置,--drop先删除当前数据然后恢复备份数据
> mongorestore -h dbhost -d dbname --directoryperdb dbdirectory

监控

  1. mongodb提供了mongostat和mongotop两个命令来监控mongodb的运行情况。
  2. mongostat是自带的命令行状态监测工具,会间隔固定时间获取mongodb的运行状态并输出。如果我们发现数据库突然变慢或者有其他问题,可以通过该工具查看mongodb的状态。
  3. mongotop也是内置工具,提供了方法用来跟踪一个mongodb实例,提供每个集合的水平的统计数据。

ObjectId

  1. ObjectId对象Id是一个12字节的BSON类型数据,前4个字节表示时间戳,接下来的3个字节是机器标识码,紧接的两个字节由进程id(PID)组成,最后三个字节是随机数。
  2. mongodb中存储的文档必须有一个"_id"键,这个键的值可以使任何类型的,默认是一个ObjectId对象。在一个集合里面中每个文档都有唯一的"_id"值,来确保集合里面每个文档都能被唯一标识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/884762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频压缩怎么压缩更小?分享释放视频占用空间的小技巧

想问问同样在做视频自媒体博主的你,都是怎么解决占满内存的视频素材的? 是有听说有一部分博主会把录制好的,还未使用的视频素材,用工具压缩他们的体积,以减少占用内存空间。 小编也有试过,发现视频的体积是…

oracle解决关联查询报invalid number问题

出现问题的原因和背景 oracle进行关联查询的时候因为字段存在多个用逗号切割的id,导致查询的过程中报无效数字或非法数字 问题复现 新建表A CREATE TABLE "A" (id NUMBER NOT NULL,name VARCHAR2(255 BYTE) )INSERT INTO "A" VALUES (1, 上海…

【Spring】lombok、dbUtil插件应用

一、lombok插件 1. 功能:对实体类自动,动态生成get、set方法,无参、有参构造..... 2. 步骤: (1)idea安装插件(只做一次) (2)添加坐标 (3)编写注解 NoArgsCo…

Codeforces Round 975 (Div. 2) A-C 题解

这次看到 C 题分数 1750 就开始害怕了,用小号打的比赛,一直觉得做不出来,最后才想到 A. Max Plus Size 题意 给你一些整数,选择一些涂成红色,两两不能相邻,你的得分为: [ 红色元素的个数 ] …

Tableau数据可视化入门

目录 一、实验名称 二、实验目的 三、实验原理 四、实验环境 五、实验步骤 1、Tableau界面引导 2、数据来源 3、数据预处理操作 4、制作中国各个地区的利润图表 4.1条形图 4.2气泡图 5、制作填充地球图 一、实验名称: 实验一:Tableau数据可视…

PyCharm 的安装和配置

环境要求: OS:Windows / macOS / Linux (此处使用 Windows 10 进行演示)Python:包括但不限于 Anaconda,miniconda,Python。在 Windows 下只要能找到 python.exe 即可 Download 进入 PyCharm 官网,选择对…

gitlab修改访问端口

目录 1.找到gitlab.rb文件,一般在/etc/gitlab/路径下 2.打开配置文件,加上代码 3.重新配置 4.重启gitlab 1.找到gitlab.rb文件,一般在/etc/gitlab/路径下 2.打开配置文件,加上代码 打开文件 sudo vi gitlab.rb 加上默认端口配…

上交所服务器崩溃:金融交易背后的技术隐患暴露杭州BGP高防服务器43.228.71.X

一、上交所宕机事件始末 2024 年 9 月 27 日,上交所交易系统突发崩溃,这一事件犹如一颗巨石投入平静的湖面,引起了轩然大波。当天上午,众多投资者反馈券商交易出现延迟问题,随后上交所发布了《关于股票竞价交易出现异常…

OJ在线评测系统 前端创建题目(增) 更新题目(改) 题目列表(查) 以及做题页面的开发 基于VUECLI脚手架画界面

目录 前端创建页面的开发一 创建一个路由 用acro design写 前端创建页面的开发二 题目管理页面 搜索 最終效果 题目更新页面的开发 携带参数的那种 修改路由 页码更新细节 我们先处理菜单项的权限控制和权限隐藏 在这里改 属性绑定一个函数 可以参考聚合搜索项目…

某客户Oracle RAC无法启动故障快速解决

某日,9:50左右接到好友协助需求,某个客户Oracle RAC无法启动,并发过来一个报错截图,如下: 和客户维护人员对接后,远程登录服务端进行故障分析。 查看hosts信息,首先进行心跳测试,测…

RK3568的型号区分

RK3568是瑞芯微公司设计开发和生产的MPU芯片产品。RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,集成4核ARM架构A55处理器和Mali G52 2EE图形处理器,支持4K解码和1080P编码。内置独立的NPU,0.8Tops算力,可…

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档: 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ,目前阿里云支持4.x和5.x版本 项目集成思路&…

巨控协议转换网关GRM321GRM322GRM323应用场景

巨控工业协议网关GRM321,GRM322,GRM323是网口型网关,支持各种PLC的TCP协议,具备多路RS485,RS232和三个TCP网口。能实现RS485,RS232和TCP的工业协议的零代码无缝转换,能极大节约工程师编程时间,保障数据采集的可靠性。 …

无人机侦测:频谱无线电侦测设备技术详解

无人机侦测中的频谱无线电侦测设备技术是一项复杂而关键的技术,它主要通过分析无线电频谱中的信号来探测和识别无人机。以下是该技术的详细解析: 一、技术原理 频谱探测技术:该技术通过分析信号在频域上的分布和特性,来识别、测…

[大语言模型-论文精读] ACL2024-长尾知识在检索增强型大型语言模型中的作用

ACL2024-长尾知识在检索增强型大型语言模型中的作用 On the Role of Long-tail Knowledge in Retrieval Augmented Large Language Models Authors: Dongyang Li, Junbing Yan, Taolin Zhang, Chengyu Wang, Xiaofeng He, Longtao Huang, Hui Xue, Jun Huang 1.概览 问题解决&…

荣业食品销售费用每年上亿元:主要产品收入大降,电商占比过低

《港湾商业观察》黄懿 今年3月,广东荣业食品有限公司的控股公司Wing Yip Food Holdings Group Limited(下称“荣业食品”)向美国SEC递交了纳斯达克上市申请。 据悉,2023年11月,商务部宣布移除了一批共计55家因长期经…

AI大模型的基本流程

这篇文章主要是记录自己的问题,虽然说AI大数据模型已经出现了很久,但是一直找不到它与企业的关系,因为有ghat gpt,只要应用这个人工智能就可以了,所以思想一直没有转变过来。 昨天梳理了一下AI大数据的模型,解答了我的…

VMware 虚拟机配置固定 IP

相关链接: SSH 服务配置与 Network error: Connection refused 解决 1. 查看 VMware 网络配置 点击【编辑】 -> 【虚拟网络编辑器】 选择【更改设置】查看 VMnet8 配置信息 选择【NAT设置】 查看当前虚拟机的网关是 192.168.17.2(也可以进行修改…

Tpflow:提升开发效率的PHP工作流引擎

Tpflow:提升开发效率的PHP工作流引擎 今天要跟大家介绍的是一款能够显著提升开发效率的工具——Tpflow!它是一个专门为PHP开发者设计的工作流引擎,致力于帮助你减少80%以上的代码量,轻松管理复杂的业务流程。让我们一起来看看它的…

java计算机毕设课设—超级玛丽游戏(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—超级玛丽游戏(附源码、文章、相关截图、部署视频) 超级玛丽游戏是一款经典的平台游戏,自1985年推出以来,已成为全球玩家心目中的经典之作。玩家操控玛丽奥在多样化的关卡中进行冒…