《Linux运维实战:使用Percona Backup for MongoDB物理备份与恢复Mongodb数据》

news2024/11/20 14:44:21

一、备份与恢复方案

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/76923.html

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

相关文章

我的博客系统[Servlet]

目录 后端程序 1. 需求分析 2. 概要设计 3. 编写数据库操作的代码 3.1.使用maven,引入依赖 3.2 封装 数据库的 DataSource 3.2.1 使用单例模式,把数据库的 DataSource 和 建立连接 还有 断开连接也给封装进去 3.2.2 创建实体类 3.2.3 针对这两个实体类涉及到的 增删改…

近期Java杂项问题

Data不会为static变量提供get/set。 Data不会为final变量提供set。 ConfigurationProperties加载static静态属性为null的问题 解决:ConfigurationProperties默认是调用非static Setter方法,把静态的Setter方法的static去掉就可以了 Value注入静态属性 解…

RK3568平台开发系列讲解(系统优化篇)排查卡顿的工具介绍

🚀返回专栏总目录 文章目录 一、Traceview二、Nanoscope三、systrace四、Simpleperf沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Android底层基于 Linux 内核,像 systrace、Simpleperf 也是利用 Linux 提供的机制实现,因此学习一些 Linux 的基础知识,对于理解这…

D-Wave最新调研!量子计算商业活动和投资不断增长

(图片来源:网络) 加拿大量子计算公司委托高性能计算分析机构Hyperion Research进行了一项研究,以更好地了解量子计算 (QC) 的商业早期采用者所面临的挑战和机遇。这项研究调查了全球范围内的300家目前接触量子计算的企业&#xff…

计算机组成大题分析(六)

假定计算机的主频为 500MHz ,CPI 为4。现有设备A 和 B,其数据传输率分别为2MB/s 和 40MB/s ,对应 I/O 接口中各有一个 32 位数据缓冲寄存器。请回答下列问题,要求给出计算过程。 (1) 若设备 A 采用定时查询 I/O 方式,每…

为什么说函数组件要比类组件好呢,函数组件和类组件的区别你都清楚吗

一、类组件 类组件,顾名思义,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component 如果想要访问父组件传递过来的参数,可通过this.props的方式去访问 在组件中必须实现render方法,在return中返回…

详解c++---类和对象(四)

这里写目录标题const成员再谈构造函数为什么会有初始化列表第一个问题第二个问题第三个问题初始化列表的使用方式即注意事项explicit关键字static成员static修饰类中的变量一些性质static修饰成员函数友元友元函数友元类内部类匿名对象拷贝对象时的一些编译器优化const成员 在…

【知识图谱】(task2)知识图谱表示

note 知识图谱的符号表示方法: 属性图是工业界最常见的图谱建模方法,属性图数据库充分利用图结构特点做了性能优化,实用度高,但不支持符号推理。RDF是W3C推动的语义数据交换标准与规范,有更严格的语义逻辑基础&#x…

dev_III笔记补充

1.在客户端显示form 思路: 想要在客户端显示form必须先把form放在 menu item中,然后通过url地址的方式打开form 步骤: 1.建立form 2.建立Menu Item (特别注意:是display类型, 不是action类型 不是action类型…

【分布式技术专题】「架构设计方案」盘点和总结秒杀服务的功能设计及注意事项技术体系

秒杀应该考虑哪些问题 超卖问题 分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果超卖将严重影响公司的财产利益,因此首当其冲…

python爱心源代码集锦

python爱心源代码集锦 本文目录: 一、代码效果预览索引图 二、爱心源代码集锦 (1)、爱心图形1(弧线型)(显示的文字写在代码里) (2)、爱心图形2(直线型&am…

MySQL 如何优化慢查询?

一、前言 在日常开发中,我们往往会给表加各种索引,来提高 MySQL 的检索效率。 但我们有时会遇到明明给字段加了索引,并没有走索引的Case。 进而导致 MySQL 产生慢查询。 严重场景下,甚至出现主从延迟、数据库拖垮的极端事故。 本…

微服务框架 SpringCloud微服务架构 28 数据同步 28.4 发送mq 消息

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.4 发送mq 消息28.4.1 直接开干28 数据同步 28.4 发送mq 消…

《Linux运维实战:使用Percona Backup for MongoDB逻辑备份与恢复Mongodb数据》

一、备份与恢复方案 Percona Backup for MongoDB 是一个开源、分布式和低影响的解决方案,用于MongoDB分片集群和副本集的一致备份。从版本1.7.0开始,Percona Backup for MongoDB支持物理和逻辑备份和恢复,仅支持对逻辑备份进行时间点恢复。 …

UIAutomator测试框架介绍

uiautomator简介 UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,基于Accessibility服务。功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点…

软件测试面试笔试习题参考,你都会了吗?

目录 一、 简答题和应用题: 二、 填空题: 三、 判断题: 四、 选择题: 总结 重点:配套学习资料和视频教学 一、 简答题和应用题: 1. 什么是软件测试? 2. 比较软件测试过程和软件开发过程&a…

基于JavaScript中AES和MD5加密,以及简单二维码的生成

一、加密技术 1、对称加密:单密钥加密。一个密钥可以用来加密也可以用来解密 —- AES 2、非对称加密:有两把密码,公钥(用于加密),私钥(用于解密) 3、摘要算法:把任意长度的输入,根据算法生成一串固定长度…

有环链表入口问题

有环链表入口问题 当快慢指针相遇时,我们可以判断到链表中有环,这时重新设定一个新指针指向链表的起点,且步长与慢指针一样为1,则慢指针与“新”指针相遇的地方就是环的入口。 图片来源:黑马程序员 证明: 设a为起点位置&#xff…

百变郁锦香,开创新典范,深化全球战略布局成就国际高端酒店品质之选

随着消费需求的不断升级,酒店消费场景也进行着多元化的发展,城市高端度假品牌正积极溯源消费需求,寻得品牌文化延伸的可靠路径。同时,各大酒店品牌也加快在市场布局的脚步,希望通过布局城市核心区域获得可持续发展的更…

Python绘制正二十面体

文章目录正二十面体的顶点绘制棱绘制面正二十面体的顶点 正20面体的12个顶点刚好可以分为三组,每一组都是一个符合黄金分割比例的长方形,而且这三个长方形是互相正交的。 所以,想绘制一个正二十面体是比较容易的 import numpy as np from …