linux数据备份与恢复

目录

前言

1、数据备份和恢复中的两个关键性指标

2、linux系统的定时任务

1)本地定时任务crontab

在实验测试过程中,遇到多次crontab任务不执行问题 ,总结下来主要有几个方面原因:

2)分布式定时任务系统Jenkins

3、备份存储位置的选择

1)本地

2)远程

3)离线*

4、数据备份

1)文件备份

2)数据库的备份(周期性测试备份结果的有效性)


前言

只要发生数据传输,数据存储,和数据交换,就有可能发生数据故障。,如果没有数据备份和数据恢复措施,就有可能发生数据丢失。

1、数据备份和恢复中的两个关键性指标

指标概念解释
恢复时间目标(RTO)表示业务从中断到恢复正常所需要的最短时间。通常通过建设冗余的灾备系统可以有效减少恢复所用时间,但是这种方式可能会极大增加支出成本。另外一种方法是依赖与 数据备份来进行业务恢复。这种方式在数据量较大或者是业务关联较复杂的情况喜爱,花费的恢复时间可能会比较长。
恢复点目标(RPO)表示业务系统所能承受的最大数据丢失量。

2、linux系统的定时任务

1)本地定时任务crontab

crond在下面位置来搜索定时任务

目录作用
/var/spool/cron存放每个用户包括root的定时任务,每个任务以创建者的名字命令。一般一个用户最多只有一个定时任务。
/etc/crontab这个文件负责安排由系统管理员制定的维护系统以及其他任务
/etc/cron.d这个目录用来存系统要执行的定时任务文件或者脚本
/etc/cron.hourly这个目录用来存放每个小时执行的定时任务
/etc/cron.daily这个目录用来存放每天执行的定时任务
/etc/cron.weekly这个目录用来存放每周执行的定时任务
/etc/cron.monthly这个目录用来存放每月执行的定时任务

在实验测试过程中,遇到多次crontab任务不执行问题 ,总结下来主要有几个方面原因:

1、crond服务未运行

2、环境变量PATH不完全导致命令找不到。默认情况下,Crond给与的定时任务的PATH环境变量为/usr/bin:/bin  ,所以如果定时命令或者脚本中调用的使用程序没有在这个路径下的话会无法调用到。因此,需要在定时任务脚本中把PATH环境变量做控制或者使用绝对路径。

PATH=/usr/local/sbin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
这个PATH环境变量的值,当操作系统在执行命令时应该查找的目录路径。放在脚本中,执行命令时,操作系统会在这些路径中查找该命令的可执行文件。如果路径中没有指定命令,就会返回命令不存在的错误信息。

3、权限问题。比如,脚本没有执行权限。可能定时用户所属的用户对某个目录没有读写权限,也会失败。

另外:

定时任务的日志位于/var/log/cron。在使用定时任务执行备份作业的过程中有异常的话,参考这个日志的输出来辅助查找定位问题。

2)分布式定时任务系统Jenkins

当需要大规模使用本地定时任务crontab的情况下,上面的方法会遇到很多问题。

将JenKin作为分布式定时任务来使用是个很好的选择。

3、备份存储位置的选择

1)本地

DAS、NAS、SAN、DFS

2)远程

使用wput进行远程备份。wput是一个像wget那样的,可移植的FTP客户端命令行工具。和wget不同是,wget用于下载文件,wput用于上传文件。

#以使用ftp用户名ftpuser,密码为admin123上传本地备份文件/opt/mybackup.zip到FTP服务器192.168.81.1为例,使用的命令如下wput /opt/mybackup.zip ftp://frpuser:admin123@191.168.81.1/backup

3)离线*

离线存储备份一般由磁带和磁带机来组成。

在线备份和离线备份的区别对比

在线备份缺点离线备份优点
在线备份是基于网络提供服务的,可能会被入侵而导致备份丢失磁带备份技术成熟
在线备份存储系统底层所使用的硬盘等硬件资源会老化,进而导致故障率增加,进而不适合长期保存磁带容量大,成本低
用磁带对数据进行离线保存更加安全
磁带保存时间长(一般可以稳定存储10年以上),是长期数据归档及数据长期保存的理想介质

4、数据备份

1)文件备份

定期对重要系统文件和应用配置文件进行备份。可以使用tar来打包和压缩备份。

文件备份脚本:

#! /bin/bash
#这是一个文件备份脚本#在备份脚本中定义行的PATH环境变量,以避免出现crontab中找不到命令的情况
PATH=/usr/local/sbin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/binbackup_work_dir='/app/backup'
cd $backup_work_dir
#将脚本中的标准输入和标准输出错误输出到文件中,以便在文件中查看脚本的输出和错误信息
echo "------------------------------START---------------------------------"
date "+%Y-%m-%d %H:%M:%S"44444444444
#备份root用户的定时任务
crontab -l -u root > root.cron.txt 
#备份ami用户的定时任务
crontab -l -u ami > ami.cron.txt#备份当前的进程列表
ps aux > ps.txt 
dt=$(date +%Y-%m-%d)
ipaddr=$(grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth* | awk -F"=" '{ print $2 }')
filetargz="backup_${ipaddr}_${dt}.tar.gz"
tar --exclude='log/' --exclude='logs/' --exclude='log.' --exclude='.log' -czf ${filetargz} openapi.cron.txt root.cron.txt ps.txt /etc/supervisord.conf /usr/local/apache/conf /app/www/app/scripts /usr/local/sphinx/etc /usr/local/sphinx/scripts
/usr/local/bin/wput ${filetargz} ftp://backup:w3eL4tVHaM@10.128.79.40/ #使用 wput上传备份后的文件到10.128.79.40这个FTP服务器上find ${backup_work_dir} -type f -name 'backup_*.tar.gz' -mtime +30 -exec rm {} \; #删除本地30天以上的备份文件,以避免磁盘空间满的问题
echo "----------------------------END------------------------------------"



 

2)数据库的备份(周期性测试备份结果的有效性)

mysql数据备份工具描述
mysqldump

mysql自带工具,目录在bin目录下面

/usr/local/mysql/bin/mysqldump支持基于innodb的热备份,但是由于是逻辑备份,速度不是很快,适合备份比较小的场景。mysqldump+二进制日志可以实现基于焊点回复

基于LVM快照备份在物理备份中,有基于文件系统的物理备份(LNM快照)
tar包支持完全备份和增量备份,而且备份速度非常快

传送门:数据库的备份和恢复-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【报错处理】ib_write_bw执行遇到Found Incompatibility issue with GID types.原因与解决办法

文章目录 拓扑现象根因解决办法解决后效果 拓扑 #mermaid-svg-zheSkw17IeCpjnVA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-zheSkw17IeCpjnVA .error-icon{fill:#552222;}#mermaid-svg-zheSkw17IeCpjnVA .error…

企业邮箱系统搭建的流程方案

随着互联网、5G、物联网等新技术的发展,数字化办公已经成为现代企业工作方式的重要组成部分。作为数字化办公的重要组成部分之一,企业邮箱在日常办公中已经得到了广泛的应用。但是传统的租用企业邮箱已经不能满足企业对于数据的安全性、收发的稳定性、系…

大模型微调之 在亚马逊AWS上实战LlaMA案例(三)

大模型微调之 在亚马逊AWS上实战LlaMA案例(三) 使用 QLoRA 增强语言模型:Amazon SageMaker 上 LLaMA 2 的高效微调 语言模型在自然语言处理任务中发挥着关键作用,但训练和微调大型模型可能会占用大量内存且耗时。在本文中&…

汽车 - 什么是车轮抱死

车轮抱死分为两种情况,一种是车辆故障层面,另一种是驾驶过程中的物理现象。我们先来说最通俗的刹车车轮抱死吧。 刹车制动车轮抱死 车轮停止轴向转动就是抱死,有速度的情况下抱死车轮,如果车辆的惯性动能大于轮胎抓地力&#xff0…

软件测试基础理论复习

什么是软件? 软件是计算机系统中与硬件相互依存的另一部分, 软件包括程序文档 什么是软件测试? (1)软件测试是在现有软件(程序文档)中寻找缺陷的过程; (2&#xff0…

Linux——socket编程之tcp通信

前言 前面我们学习socket的udp通信,了解到了socket的概念与udp的实现方法,今天我们来学习一下面向连接的tcp通信。 一、tcp套接字创建 UDP和TCP都是通过套接字(socket)来实现通信的,因此TCP也得使用socket()接口创建…

练习题(2024/5/9)

1删除二叉搜索树中的节点 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为…

Redis(安装及配置)

1.什么是redis Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。 2.优势 性能极高&#xff…

快速排序(java细节实现)

目录 快速排序: Hoare版: 挖坑法 快速排序的优化 快速排序的非递归实现 小结 从小到大排序 快速排序: 基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值&…

python代码自动生成器原理 python 生成器原理

python生成器原理剖析 函数的调用满足“后进先出”的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子。显然,内存中以“后进先出”"方式处理数据的栈段是最适合用于实现函数调用的载体&…

51单片机入门:DS1302时钟

51单片机内部含有晶振,可以实现定时/计数功能。但是其缺点有:精度往往不高、不能掉电使用等。 我们可以通过DS1302时钟芯片来解决以上的缺点。 DS1302时钟芯片 功能:DS1302是一种低功耗实时时钟芯片,内部有自动的计时功能&#x…

技术分享 | 京东商品API接口|京东零售数据可视化平台产品实践与思考

导读 本次分享题目为京东零售数据可视化平台产品实践与思考。 主要包括以下四个部分: 1.京东API接口介绍 2. 平台产品能力介绍 3. 业务赋能案例分享 01 京东API接口介绍 02 平台产品能力介绍 1. 产品矩阵 数据可视化产品是一种利用数据分析和可视化技术&…

Ti雷达常用工具

Ti雷达常用工具 名称网站功能雷达开箱界面mmWave Demo Visualizer (ti.com)显示距离谱、RD谱图雷达参数估计mmWaveSensingEstimator根据性能设计估计参数雷达项目资料Embedded Software (ti.com)Ti雷达示例及说明书官方论坛Sensors forum - Sensors - TI E2E support forumsTi…

php傻瓜式搭建tcp及websocket服务

网络编程 随着互联网的快速发展,网络应用程序的需求也越来越高。为了使网页更加丰富有趣,许多网站都开始使用套接字(socket)实现网络的实时通信。而 tcp/ip 协议则常常用于实现此类应用程序。 TCP/IP协议是一种工业标准协议,是互联网使用最…

Cheetah3D for Mac - 轻松打造专业级3D作品

对于追求专业级3D作品的设计师来说,Cheetah3D for Mac无疑是一款不可多得的工具。 这款软件拥有强大的建模、渲染和动画功能,能够满足您在3D设计方面的各种需求。通过简单的操作,您可以轻松构建出复杂的3D模型,并为其添加逼真的材…

QT中的容器

Qt中的容器 关于Qt中的容器类,下面我们来进行一个总结: Qt的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且他们进行了速度和存储的优化,因此可以减少可…

# 从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(4)

从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(4) 一、hystrix:使用 turbine 聚合所有的 hytrix 的监控数据测试。创建父工程 spring_cloud_hystrix_demo,导入相关依赖坐标。并在父工程 spring_cloud_…

牛客NC97 字符串出现次数的TopK问题【中等 哈希+优先级队列 Java/Go】

题目 题目链接: https://www.nowcoder.com/practice/fd711bdfa0e840b381d7e1b82183b3ee 核心 哈希,优先级队列Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返…

AI智能对话系统源码 内置所有支付接口 功能强大 带完整的安装代码包以及安装部署教程

在数字化日益普及的今天,AI智能对话系统已经成为企业与客户沟通的重要桥梁。为了满足市场的需求,罗峰给大家分享一款全新的AI智能对话系统源码,它集成了所有必要的支付接口,功能强大且易于部署。 以下是部分代码示例:…

vue3创建响应式数据ref和reactive的区别

reactive和ref在Vue.js中都是用于创建响应式数据的,但它们之间存在一些区别 定义数据类型不同。ref主要用于定义基本数据类型,如字符串、数字、布尔值等;reactive主要用于定义对象(或数组)类型的数据,但re…