当前位置: 首页 > news >正文

《Linux运维总结:使用 MongoDB工具备份和恢复mongodb 7.0.14分片集群(方案一)》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、备份说明

1、要使用mongodump备份分片集群,您必须 停止负载均衡器 停止写入,避免备份的数据出现状态不一致问题。
2、从MongoDB7.0.2开始(也可以从6.0.11和5.0.22开始使用),fsync和fsyncUnlock命令可以在mongos上运行,以锁定和解锁分片集群。


二、备份步骤

2.1、查找备份窗口(路由节点)

说明、要找到执行备份的好时机,请监控应用程序和数据库的使用情况,以找到不太可能发生数据块迁移、重分片和模式转换操作的时间。

负载均衡默认是开启的,为了避免chunk迁移影响线上业务,可以通过设置迁移执行窗口,例如只允许凌晨02:00~06:00期间进行迁移。

# 连接其中一个路由节点
use config
db.settings.updateOne({ _id : "balancer" },{ $set : { activeWindow : { start : "02:00", stop : "06:00" } } },true
)
db.settings.find({ _id: "balancer" })

如下图所示:
在这里插入图片描述

总结、此操作将负载均衡器配置为在服务器时间上午02:00到晚上06:00之间运行。 安排备份操作在此时间之外运行和完成。 确保当负载均衡器正在运行时,备份可以在窗口外完成,并且负载均衡器可以在分配给每个分片的窗口中有效地平衡分片之间的集合。


2、假设你希望恢复到默认的活动窗口设置(例如,不启用活动窗口限制),你可以再次使用updateOne命令:

use config
db.settings.updateOne({ _id : "balancer" },{ $unset : { activeWindow : "" } },{ upsert: true }
)
db.settings.find({ _id: "balancer" })

2.2、停止负载均衡器(路由节点)

为防止数据块迁移干扰备份,请连接到其中一个路由节点并使用 sh.stopBalancer() 方法停止负载均衡器:

[direct: mongos] test> sh.isBalancerRunning().mode
[direct: mongos] test> sh.stopBalancer()
[direct: mongos] test> sh.isBalancerRunning().mode
off

如果返回值为off,则表示已经关闭,如下图所示:
在这里插入图片描述


2.3、锁定集群(分片节点)

说明:路由节点、配置节点不需要锁定,分片节点需要锁定。分片节点通过主节点进行锁定,锁定完成后,需要在路由节点确认锁定集群。

1、未锁定集群前,路由节点查看锁定情况

[direct: mongos] test> db.getSiblingDB("admin").aggregate( [{  $currentOp: { } },{</

相关文章:

  • yolov8环境安装
  • GPT+AI技术实战:构建多端智能虚拟数字人的创新与突破
  • WebRTC中的维纳滤波器实现详解:基于决策导向的SNR估计
  • 0基础学习CSS(六)字体
  • C++中的lower_bound函数详解
  • 孙论文——定标
  • 牛顿迭代法求解x 的平方根
  • lombok详细教程(详解)
  • windows系统中后台运行java程序
  • UnityShader 一种RGB分离效果
  • 【matlab画多纵坐标图像】
  • 【反素数】
  • UE4_Niagara基础实例—4、静态网格体表面生成粒子
  • 【网络安全】公钥基础设施
  • DAY17||654.最大二叉树 |617.合并二叉树 |700.二叉搜索树中的搜索 |
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 78. Subsets
  • CAP理论的例子讲解
  • hadoop集群管理系统搭建规划说明
  • iOS 颜色设置看我就够了
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java精华积累:初学者都应该搞懂的问题
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • vue的全局变量和全局拦截请求器
  • webpack项目中使用grunt监听文件变动自动打包编译
  • yii2中session跨域名的问题
  • 高性能JavaScript阅读简记(三)
  • 批量截取pdf文件
  • 手机端车牌号码键盘的vue组件
  • 双管齐下,VMware的容器新战略
  • 通过几道题目学习二叉搜索树
  • 从如何停掉 Promise 链说起
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #define 用法
  • (06)金属布线——为半导体注入生命的连接
  • (2020)Java后端开发----(面试题和笔试题)
  • (javaweb)Http协议
  • (PADS学习)第二章:原理图绘制 第一部分
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (第27天)Oracle 数据泵转换分区表
  • (分布式缓存)Redis分片集群
  • (十三)Flask之特殊装饰器详解
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (顺序)容器的好伴侣 --- 容器适配器
  • (学习日记)2024.02.29:UCOSIII第二节
  • ***通过什么方式***网吧
  • *2 echo、printf、mkdir命令的应用
  • .Mobi域名介绍
  • .NET Core WebAPI中封装Swagger配置
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃