《Linux运维实战:MongoDB数据库逻辑备份恢复(方案四)》

news2025/1/12 4:09:23

一、备份与恢复方案

Percona Server for MongoDB Percona Server for MongoDB是一个免费的、增强的、完全兼容的、源代码可用的、带有企业级功能的MongoDB Community Edition的替代品。它不需要对MongoDB应用程序或代码进行更改。

参考官方:Percona Backup for MongoDB版本

Percona Backup for MongoDB兼容以下版本的MongoDB:

1、对于逻辑备份- Percona Server For MongoDB和MongoDB Community v4.0及更高版本,并启用了MongoDB Replication。
2、对于物理备份—Percona Server For MongoDB,从4.2.15-16、4.4.6-8、5.0及更高版本开始,启用MongoDB Replication并配置WiredTiger作为存储引擎。


二、安装PBM工具

参考官方:Installing Percona Backup for MongoDB


2.1、环境信息

《Linux运维总结:Centos7.6部署二进制mongodb4.2.23三节点副本集群》

主机IP操作系统服务名称版本号其它说明
192.168.1.191(主节点)Centos7.6mongodb4.2.23副本集群
192.168.1.192(从节点)Centos7.6mongodb4.2.23副本集群
192.168.1.193(仲裁节点)Centos7.6mongodb4.2.23副本集群

2.2、安装percona-backup-mongodb

说明:当前安装的percona-backup-mongodb版本为2.0.2。

[root@localhost ~]# yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@localhost ~]# percona-release enable pbm release
[root@localhost ~]# yum install percona-backup-mongodb -y

2.3、在MongoDB中配置身份验证

1、创建允许对任何资源执行任何操作的角色

db.getSiblingDB("admin").createRole({ "role": "pbmAnyAction",
      "privileges": [
         { "resource": { "anyResource": true },
           "actions": [ "anyAction" ]
         }
      ],
      "roles": []
   });

说明:角色名称可任意设置,如下图所示,即可表示pbmAnyAction角色创建成功。
在这里插入图片描述

2、创建用户并将创建的角色分配给该用户

#2、Create the user and assign the role you created to it
db.getSiblingDB("admin").createUser({user: "pbmuser",
       "pwd": "secretpwd",
       "roles" : [
          { "db" : "admin", "role" : "readWrite", "collection": "" },
          { "db" : "admin", "role" : "backup" },
          { "db" : "admin", "role" : "clusterMonitor" },
          { "db" : "admin", "role" : "restore" },
          { "db" : "admin", "role" : "pbmAnyAction" }
       ]
    });

说明:用户名和密码可任意设置。如下图所示,即可表示pbmuser用户创建成功。
在这里插入图片描述

3、为pbm-agent设置MongoDB连接URL

# 说明:replicaSet=mongodb_cluster为副本集的名称
#1、修改变量文件
[root@localhost ~]# cat /etc/sysconfig/pbm-agent 
PBM_MONGODB_URI="mongodb://pbmuser:secretpwd@192.168.1.191:27017/?authSource=admin&replicaSet=mongodb_cluster"

#2、添加环境变量
[root@localhost ~]# vim /etc/profile
export PBM_MONGODB_URI="mongodb://pbmuser:secretpwd@192.168.1.191:27017/?authSource=admin&replicaSet=mongodb_cluster"
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PBM_MONGODB_URI
mongodb://pbmuser:secretpwd@192.168.1.191:27017/?authSource=admin&replicaSet=mongodb_cluster

2.4、开启备份监听的agent

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start pbm-agent
[root@localhost ~]# systemctl status pbm-agent

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


2.5、配置备份目的地

说明:pbm备份支持AWS s3存储类型、Microsoft Azure Blob存储类型、和本地文件系统。如下图所示:

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


1、创建配置文件

#1、创建配置文件
[root@localhost ~]# touch /etc/pbm_config.yaml
[root@localhost ~]# cat  /etc/pbm_config.yaml 
storage:
  type: filesystem
  filesystem:
    path: /data/backup

2、创建备份目录

[root@localhost ~]# mkdir -p /data/backup
[root@localhost ~]# chown mongod.mongod /data/backup -R    

3、插入配置文件

[root@localhost pkgs]# pbm config --file=/etc/pbm_config.yaml

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


三、备份操作

3.1、开始备份

[root@localhost ~]# pbm backup

3.2、查看备份情况

[root@localhost ~]# pbm list

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

3.3、查看备份日志

[root@localhost ~]# --event=backup

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

说明:其它操作请参考帮助命令。
在这里插入图片描述


四、恢复操作

3.1、查看备份情况

[root@localhost ~]# pbm list

如下图所示:
在这里插入图片描述
3.2、开始恢复

[root@localhost ~]# pbm restore 2022-12-09T11:55:43Z

3.3、查看恢复日志

[root@localhost ~]# pbm logs --event=restore

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


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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】Docker runC 容器逃逸漏洞(CVE-2019-5736)

文章目录声明一、漏洞描述二、漏洞原理三、漏洞分析四、POC分析五、利用方式六、影响版本七、环境搭建八、漏洞复现九、修复建议声明 本篇文章仅用于技术研究和漏洞复现,切勿将文中涉及攻击手法用于非授权下渗透攻击行为,操作有风险,出现任何…

初识mysql

文章目录为什么要学习数据库什么是数据库数据库的分类MySQL简介连接数据库为什么要学习数据库 ①岗位需求 ②现在的世界,大数据时代,得数据者得天下 ③被迫需求:存数据 ④数据库是所有软件体系中最核心的存在 什么是数据库 数据库&…

java设计模式(2):UML图

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图…

kerberos环境下Flink on Yarn集群部署 基于flink1.15.3 hadoop 3.0CDH6.3.2

1.1 概要介绍 Flink on Yarn的HA高可用模式,首先依赖于Yarn自身的高可用机制(ResourceManager高可用),并通过Yarn对JobManager进行管理,当JobManager失效时,Yarn将重新启动JobManager。其次Flink Job在恢复…

微服务框架 SpringCloud微服务架构 29 ES 集群 29.2 搭建集群

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构29 ES 集群29.2 搭建集群29.2.1 搭建ES 集群29 ES 集群 29.2 搭建集群 2…

kubernets 实践

文章目录kubernets 部署v1.25.5flink on k8sflink version 1.14.6kubernets 部署 v1.25.5 这里我选择的是kubeadm方式部署 虚拟机数量:4 centos发行版本:CentOS Linux release 7.9.2009 (Core) 内核版本:Linux hadoop101 5.4.225-1.el7.el…

简单又好用的5款小工具软件

人类与99%的动物之间最大差别在于是否会运用工具,借助好的工具,能提升几倍的工作效率。 1.软件卸载删除——UninstallTools UninstallTool 是一个小巧、安全、快速、强大的软件卸载删除工具,它支持在使用软件本身的卸载程序卸载完毕后&…

CMake中set_target_properties/get_target_property的使用

CMake中的set_target_properties命令用于为targets设置属性(targets can have properties that affect how they are built),其格式如下: set_target_properties(target1 target2 ...PROPERTIES prop1 value1prop2 value2 ...) 该命令的语法是列出要更改…

浅析安科瑞无线测温装置在香港科技大学配电系统中的设计应用

摘要: 随着变电站自动化技术的推广和应用,无人值班的变电站越来越多,变电站的高压开关柜采用全密封结构,在长期运行过程中,开关的触点和母线连接等部位因老化或接触电阻过大而发热,由于这些发热部位的温度…

四种基于MQ的分布式事务解决方案

在微服务的时代,分布式事务是绕不开的话题,尽管在大多数场景下,我们并不需要使用分布式事务,但是 不需要使用 不代表 可以不会使用,万一哪天真需要用到了呢?分布式事务是一个比较大的话题,今天我…

1426827-79-3,endo-BCN-NHS ester,endo-BCN-NHS 活性酯

endo-BCN-NHS ester试剂反应原理: BCN基团与叠氮化物标记的生物分子反应,NHS酯可用于标记蛋白质的伯胺(-NH2)、胺修饰的寡核苷酸和其他含胺分子,西安凯新生物科技有限公司下面为大家整理分享。​endo-BCN-NHS ester物理…

Python学习基础笔记三十二——正则表达式

官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合,组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑。 1、在Linux运维中,vi、grep、awk…

fiddler使用的作用与常见应用场景

Fiddler工具的工作原理 1.本地应用与服务器之间所有的Request 和Response都将经过Fiddler,由Fiddler进行转发,此时Fiddler以代理服务器的方式存在。 2.由于所有的网络数据都会经过Fiddler,因此Fiddler能够截获这些数据,实现网络…

美团四面 Java 岗,终获 offer,我是这么回答面试官的

前言 经历了 10 月的疫情挣扎与 11 月失业的煎熬,终于来到了春末的 12 月,内心的压力也稍稍的松懈了一些,终于可以放心找个工作了,可是随着的等待面试的机会的越来越少,这份焦虑反而越来越大,也偶尔会想&a…

稳定性建设之JavaScript代码不能被阻断

稳定性建设之JavaScript代码不能被阻断 背景 js代码可能会因为某些原因,导致出错,进而整个后续代码有可能都被阻断。直接影响线上的稳定性 最常见的js被阻断的情况 console.log(111) // 预期 a {} // 结果 a undefined a.a 1 console.log(222) // …

Pycharm的简单介绍以及api的使用

一、什么是Pycharm? Pycharm是一种python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、脚本控制。此外,该IDE提供了一些高级功…

MyBatis-Plus中自动填充功能的用法

系列文章目录 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus之ActiveRecord[基础增删改查操作]_心态还需努力呀的博客-CSDN博客 MyBatis-Plus分页查询(快速上…

【JavaWeb开发-Servlet】day06-学生成绩管理系统-实现分页功能

目录 一、前端设计 二、分页功能 ①创建实体层 ②在DAO层新建两个方法 ③编写业务层 ④实现Servlet层 ⑤修改前端页面 ⑥测试 ⑦思路 ⑧扩展 一、前端设计 原来的前端非常简陋,没有明显的突出其功能,下面将对前端页面进行新的完善。 写一个标题…

HPPH-DSPE-PEG/NH2/MAL光克洛-磷脂-聚乙二醇/光克洛-聚乙二醇-氨基/马来酰亚胺

小编今天和大家一起来学习HPPH-DSPE-PEG/NH2/MAL光克洛-磷脂-聚乙二醇/光克洛-聚乙二醇-氨基/马来酰亚胺相关研究内容! 光克洛,第二代的光敏剂,可用于光动力疗法 (PDT),基本结构为二氢卟吩类化合物。美国研究人员从绿色植物中提取、纯化&…

nginx笔记

作者:ThinkStu 文章目录一、简介二、常用配置1、listen2、server_name3、location4、sendfile5、nodelay/push6、add_header7、set 变量8、if9、return10、keepalive三、常用操作1、Gzip压缩2、正则表达式3、rewrite重写4、rewrite范例5、跨域6、防盗链7、适配移动设…