网站制作素材图片/定制网站和模板建站
执行备份策略前,先做好scp命令的准备
解决思路:
生成SSH公钥/私钥后,您需要将公钥添加到服务器上,从而使服务器可以使用该公钥来验证您的身份。
生成SSH公钥/私钥的命令为
ssh-keygen -t rsa -b 4096
什么都不用输入,直接下一步即可
生成SSH公钥/私钥后,您需要将公钥添加到服务器上,从而使服务器可以使用该公钥来验证您的身份。-p指定端口
ssh-copy-id -p85 root@112.94.31.288
添加成功后,您可以使用以下命令测试身份验证是否成功:
ssh -p85 root@112.94.31.288
出现一下截图表示成功
mysql数据备份
先查看my.cnf是在哪个目录
locate my.cnf
二.mysql数据备份
先查看my.cnf是在哪个目录
locate my.cnf
查看mysql默认读取的my.cnf
mysql --help|grep 'my.cnf'
1.增量备份(本地服务器+正式环境)
1.1 开启二进制并配置my.cnf
查看是否开启二进制日志,输入一下命令
show variables like 'log_bin';
如果出现一下截图的话,表示二进制日志未开启。
vi /etc/my.cnf目录下开启二进制日志
ps:自己定义二进制日志存存放的路径,默认是放在/var/lib/mysql 路径
先新建目录
cd /homemkdir mysqlcd mysqlmkdir binlog#为目录设置mysql权限chown -R mysql.mysql /home/mysql/binlogchown -R mysql.mysql /home/mysql/
在/etc/my.cnf增加配置
#二进制存放的文件格式
log-bin=/home/mysql/binlog/mysql-bin
#当前机器的服务ID
server-id=254
#二进制日志的格式
binlog_format = MIXED
#设置binlog清理时间
expire_logs_days = 30#看到我们写入的sql语句格式
binlog_rows_query_log_events = 1
#binlog缓存大小
binlog_cache_size = 4m
#binlog每个日志文件大小 默认大小,如果超过该值,则产生新的二进制文件,后缀名+1
max_binlog_size = 1024m
二进制日志的格式
A) binlog_format 在mysql5.7默认是row, 不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨
例如:update a < 10 的数据,statement模式会记录这一条sql,而row模式的话,会记录a=1,a=2到a=9所有的记录的更改
B) STATEMENT模式 每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题
C) MIXED模式 以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
重启mysql
systemctl restart mysqld
可能会出现报错
解决方案:
执行一下命令
setenforce 0
然后再进行重启即可
查看mysql状态
systemctl status mysqld
查看日志
tail -2000f /var/log/mysqld.log
去查配置是否生效,可以看出,已经生效了
1.2 bin日志的备份和还原演示
(1) 首先我们先建立一个test数据库,并且里面有temp_test 表
这时候我们执行下命令 可以输出二进制日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v /home/mysql/binlog/mysql-bin.000002
可以看到,对应的sql语句都记录下来了
- 根据时间点增量进行备份还原
然后再把temp_test这张表给删除
然后我们看一下bin日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v /home/mysql/binlog/mysql-bin.000002
根据时间点进行恢复
mysqlbinlog --no-defaults --start-datetime='2023-09-06 09:21:13' --stop-datetime='2023-09-06 09:26:37' mysql-bin.000002 | mysql -u root -p
输入mysql密码
可以看到这段时间范围的数据已恢复,注意,开始时间和结束时间要大于日志记录的时间,比如结束时间记录的是 2023-09-06 09:26:36 你要写成 2023-09-06 09:26:37
1.3 定时执行备份脚本(本地服务器+正式环境)
本地服务器要新建目录脚本,以时间进行命名
在目录/home/backups/mysql/binlogdata 下新建 date.sh(本地服务器)
#!/bin/bash
echo '开始新建binlogdata 目录'
DATE=`date +%Y%m%d` #定义时间的格式,注意需要反引号。
DIR=/home/backups/mysql/binlogdata #这里定义创建文件夹的地址。
mkdir -p $DIR/$DATE #创建文件夹的语句,把上面两个变量引用进来。
echo '新建binlogdata 目录完成'
赋值权限
chmod 777 date.sh
并且也设置脚本执行的时间
crontab -e
输入备份的时间(每天23:59都进行备份作业)
58 23 * * * /home/backups/mysql/binlogdata/date.sh> /tmp/load.log 2>&1
在/home/mysql/binlogdata目录下新建脚本(正式服务器)
新建binlog.sh脚本
touch binlog.sh#并赋予权限
chmod 777 binlog.sh
添加下面脚本内容
#!/bin/bash
DATE=`date +%Y%m%d` #定义时间的格式,注意需要反引号。
REMOTEDIR=/home/backups/mysql/binlogdata #远程本地服务器地址路径localData=/home/mysql/binlog/ #本机数据地址路径
echo "开始进行数据迁移到本地服务器"
expect << EOF
set timeout -1
spawn scp -P 85 -r $localData root@112.94.31.288:$REMOTEDIR/$DATE
expect eof
exit
EOF
echo "数据迁移到本地服务器结束"
执行备份策略
crontab -e
输入备份的时间(每天23:59都进行备份作业)
59 23 * * * /home/mysql/binlog.sh> /tmp/load.log 2>&1
查看任务列表
crontab -l
2.全量备份(只需正式环境部署脚本)
增量备份策略:每周六凌晨1点执行备份策略
在 /home/mysql/allsql 目录下新建脚本
touch backupsql.sh
输入一下内容
#!/bin/bash
echo '开始新建目录'
DATE=`date +%Y%m%d` #定义时间的格式,注意需要反引号。
NYSQLDIR=/home/mysql/allsql #这里定义创建文件夹的地址。
mkdir -p $NYSQLDIR/$DATE #创建文件夹的语句,把上面两个变量引用进来。
REMOTEDIR=/home/backups/mysql/allsql #远程本地服务器配置路径
echo '新建目录完成'echo '开始执行 smkj-pro-backend备份操作'
mysqldump -u dev -pPassword@hwgy01dev --databases smkj-pro-backend > $NYSQLDIR/$DATE/smkj-pro-backend_$(date +%Y%m%d_%H%M).sqlecho '开始执行 smkj-pro-backend备份操作'
echo '=================================='echo '开始执行 smkj-pro-base备份操作'
mysqldump -u dev -pPassword@hwgy01dev --databases smkj-pro-base > $NYSQLDIR/$DATE/smkj-pro-base_$(date +%Y%m%d_%H%M).sql
echo '开始执行 smkj-pro-base备份操作'
echo '=================================='echo '开始执行 smkj-pro-shop备份操作'
mysqldump -u dev -pPassword@hwgy01dev --databases smkj-pro-shop > $NYSQLDIR/$DATE/smkj-pro-shop_$(date +%Y%m%d_%H%M).sql
echo '开始执行 smkj-pro-shop备份操作'
echo '=================================='echo '开始执行 smkj-pro-user备份操作'
mysqldump -u dev -pPassword@hwgy01dev --databases smkj-pro-user > $NYSQLDIR/$DATE/smkj-pro-user_$(date +%Y%m%d_%H%M).sql
echo '开始执行 smkj-pro-user备份操作'
echo '=================================='echo '开始执行 smkj-pro-job备份操作'
mysqldump -u dev -pPassword@hwgy01dev --databases smkj-pro-job > $NYSQLDIR/$DATE/smkj-pro-job_$(date +%Y%m%d_%H%M).sql
echo '开始执行 smkj-pro-job备份操作'echo '======全部备份结束========='echo "开始进行数据迁移到本地服务器"
expect << EOF
set timeout -1
spawn scp -P 85 -r $NYSQLDIR/$DATE root@112.94.31.288:$REMOTEDIR/
expect eof
exit
EOF
echo "数据迁移到本地服务器结束"
执行定时任务启动脚本
crontab -e
输入 (意思是每天凌晨20份执行脚本,考虑到目前数据库数据整体大小不大,后续数据库量大再进行策略调整)
20 0 * * * /home/mysql/allsql/backupsql.sh > /tmp/load.log 2>&1
查看任务列表
crontab -l
相关文章:

linux上mysql数据备份(全量备份策略+增量备份策略)
执行备份策略前,先做好scp命令的准备 解决思路: 生成SSH公钥/私钥后,您需要将公钥添加到服务器上,从而使服务器可以使用该公钥来验证您的身份。 生成SSH公钥/私钥的命令为 ssh-keygen -t rsa -b 4096什么都不用输入,…...

PHP实现DFA算法,查找关键词
# 添加关键词 到全局字典dict里面 protected function addWord($strWord) {$len mb_strlen($strWord,UTF-8);$curNode &$this->dict;for ($index 0; $index < $len; $index) {$word mb_substr($strWord, $index, 1, UTF-8);if (!isset($curNode[$word])) {$curNo…...

JTS:08 JTS图形相交
这里写目录标题 版本JTS disjoint intersects俩个图形不相交俩个图形 边相交俩个图形 内部相交俩个图形 点相交 版本 org.locationtech.jts:jts-core:1.19.0 链接: github JTS disjoint intersects 不相交的 九交模型FF*FF**** 相交的 九交模型 [T********] [*T*******] [**…...

深挖 ThreadLocal 底层原理?它有什么用?学会之后手撕面试官
目录 1. ThreadLocal 的主要功能? 2. ThreadLocal 代码举例 3. ThreadLocal 源码分析 3.1 ThreadLocal 的 get 方法源码解析 3.2 ThreadLocal 的 set 方法源码解析 3.3 ThreadLocal 的 createMap 方法源码解析 3.4 ThreadLocal 的 set 方法总结 4. 为什么En…...

sort()排序函数(c++)
文章目录 sort()排序函数(c)一、原理二、使用方法(一)头文件(二)使用语法1.方式一(默认)2.方式二:定义升序或降序3.方式三:自定义 sort()排序函数(…...

如何评估测试用例的优先级?
评估测试用例的优先级,有助于我们及早发现和解决可能对系统稳定性和功能完整性产生重大影响的问题,助于提高测试质量,提高用户满意度。 如果没有做好测试用例的优先级评估,往往容易造成对系统关键功能和高风险场景测试的忽略&…...

510758-28-8,用于标记蛋白质和酶的配体TBTA
产品简介:Tris(benzyltriazolylmethyl)amine (TBTA)是一种配体,能作为生化工具用于标记蛋白质和酶。 CAS号:510758-28-8 中文名:三[(1-苄基-1H-1,2,3-三唑-4-基)甲基]胺 英文名:TBTA 化学式:C30H30N10…...

Jtti:云服务器ftp不能访问端口如何解决
如果您的云服务器上的FTP服务无法访问端口,可能有多种原因导致这种情况。以下是一些可能的解决方法: 检查FTP服务状态: 首先,请确保您的FTP服务器正在运行。您可以使用以下命令来检查FTP服务器的状态,具体命令可能因FT…...

云服务器租用价格表概览_阿里云腾讯云华为云
云服务器租用价格多少钱一年?阿腾云分享阿里云、腾讯云和华为云的云服务器租用价格表:阿里云2核2G服务器108元一年起、腾讯云2核2G3M带宽轻量服务器95元一年、华为云2核2G3M云耀L实例89元一年起,阿腾云分享更多关于云服务器租用价格明细&…...

E. Iva Pav -前缀和 + 二分 +位运算
题面 分析: 赛时一直纠结于与运算前缀和不可逆,导致没有思路,但是发现行不通并没有及时思考别的解决办法导致一条路走到黑,阻碍了自己的思维,在今年的网络赛赛时也是一样,行不通的时候就没心思去重新想其…...

新手学习:ArcGIS对shp文件裁剪
新手学习:ArcGIS对SHP文件裁剪 新手学习 记录每个步骤,因为有很多控件可能刚开始还不熟悉,根本不知道在哪里,所以写的比较详细。 1.添加要裁剪的shp文件 2.查看shp文件的地理坐标系 双击shp文件,就可以查看shp文件的…...

Java 设计模式——抽象工厂模式
目录 1.概念2.结构3.实现4.优缺点5.使用场景6.模式扩展7.JDK源码解析——Collection.iterator方法 1.概念 (1)Java 设计模式——工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机等。这些工厂只生产同种类产品…...

如何使用ChatGPT构建一个Web应用程序?
围绕ChatGPT的最大卖点之一是它可以成为一种有效的编程工具。其想法是这样的:你用自然语言描述需求,该聊天机器人生成满足该需求的代码。但是ChatGPT在这方面到底有多好呢? 还有什么比亲自测试一下更好的方法呢?我们让ChatGPT从头…...

关闭手机广告的步骤
关闭手机广告的步骤 小米 1.设置→小米账号→声明与条款→系统广告→系统工具广告→关闭 2.设置→应用设置→应用管理→右上角三个点→设置→关闭“应用升级提醒”&“资源推荐” 3.桌面左滑打开负一屏→划到底部→设置→服务管理→选择关闭项目 4.桌面→打开任意文件夹…...

【Verilog 教程】6.6Verilog 仿真激励
关键词:testbench,仿真,文件读写 Verilog 代码设计完成后,还需要进行重要的步骤,即逻辑功能仿真。仿真激励文件称之为 testbench,放在各设计模块的顶层,以便对模块进行系统性的例化调用进行仿真…...

Win/Mac版Scitools Understand教育版申请
这里写目录标题 前言教育版申请流程教育账号申请 前言 上篇文章为大家介绍了Scitools Understand软件,通过领取的反馈来看有很多朋友都想用这个软件,但是我的网盘里只存了windows的pojie版,没有mac版的,我没有去网上找相关的资源…...

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 C: 班级活动
[蓝桥杯 2023 国 B] 班级活动 【问题描述】 小明的老师准备组织一次班级活动。班上一共有 n n n 名( n n n 为偶数)同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n n …...

YOLOv8改进新颖的Gather-and-Distribute机制,低阶高阶新颖融合,增强了多尺度特征融合能力,实现了延迟和准确性的理想平衡
💡本篇内容:YOLOv8改进新颖的Gather-and-Distribute机制,低阶高阶新颖融合,增强了多尺度特征融合能力,实现了延迟和准确性的理想平衡 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOL…...

面试算法13:二维子矩阵的数字之和
题目 输入一个二维矩阵,如何计算给定左上角坐标和右下角坐标的子矩阵的数字之和?对于同一个二维矩阵,计算子矩阵的数字之和的函数可能由于输入不同的坐标而被反复调用多次。例如,输入图2.1中的二维矩阵,以及左上角坐标…...

Vue安装插件时候中遇到冲突依赖解决方案
错误如下: npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin-vue npm ERR! dev eslint-pl…...

realloc函数应用IO泄露体验
本题主要介绍realloc函数,平时我们使用realloc最多便是在打malloc_hook–>onegadget的时候,使用realloc_hook调整onegadget的栈帧,从而getshell。 在realloc函数中,也能像malloc一样创建堆,并且比malloc麻烦一些&a…...

(c语言)野指针
#include<stdio.h> //野指针 int* test() { int a 10; return &a; } int main() { //野指针一: int* p; *p 10; //非法访问内存 //p没有初始化,就意味着没有明确的指向 //一个局部变量不初始化的话ÿ…...

【Git】轻松学会 Git(一):掌握 Git 的基本操作
文章目录 前言一、创建 Git 本地仓库1.1 什么是仓库1.2 创建本地仓库1.3 .git 目录结构 二、配置 Git三、认识 Git 的工作区、暂存区和版本库3.1 什么是 Git 的工作区、暂存区和版本库3.2 工作区、暂存区和版本库之间的关系 四、添加文件4.1 添加文件到暂存区和版本库中的命令4…...

rust trait对象
在拥有继承的语言中,可以定义一个名为shape的基类,该类上有一个draw方法。其他的类比如Button、SelectBox继承shape。它们各自覆盖draw方法。调用这些子类的draw方法时,就可以把它们统一当作shape来使用。不过Rust并没有继承,如果…...

Linux学习第21天:Linux内核定时器驱动开发: 流淌的时间长河
Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 在人类的发展进化中,时间是一个非常重要神秘的物质量。任何事物都是在时间的长河中流淌发生、发展、变化。我们进行驱动开发中对时间的定义和使用也是…...

Centos服务在服务器重启后自启
以Dolphin为例 打开rc.local文件以编辑: sudo vi /etc/rc.d/rc.local在文件中添加您的启动命令。在您的情况下,要添加的命令如下: sh /opt/dolphinscheduler/zookeeper/bin/zkServer.sh start sh /opt/dolphinscheduler/dolphinscheduler/…...

慢性疼痛治疗服务公司Kindly MD申请700万美元纳斯达克IPO上市
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,慢性疼痛治疗服务公司Kindly MD近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(KDLY),Kindly MD计划通过…...

代码随想录 Day6 哈希 LeetcodeT454 四数之和II T383赎金信 T15 三数之和 T18 四数之和
本文代码思路来源于: 代码随想录 前言 希望大家在刷这部分题的时候先熟悉熟悉哈希结构的基本常用api,比较方便理解. LeetCode T454 四数之和 题目链接:454. 四数相加 II - 力扣(LeetCode) 题目思路 暴力解法仍然是遍历四个数组解决此题, 哈希的思路有…...

干货速来|教你如何撰写毕业论文
撰写毕业论文对于正常大学毕业至关重要。毕业论文是对学生在大学期间所学知识的综合运用和深入研究的体现,也是对学术能力和独立思考能力的考验。 撰写毕业论文的过程需要学生投入大量的时间和精力,包括选题、文献综述、研究方法选择、数据收集和分析、…...

【ROS 2】-2 话题通信
飞书原文链接: Docs...