数据库备份策略
数据库备份策略
每周的周日进行一次全备;周一到周六每天做上一天增量,每周轮询一次。
备份方案: xtrabackup全备+增量
备份策略(crontab):
crontab -e
00 03 1 /root/allbak.sh &>/dev/null //每周一的凌晨3点执行完全备份
vim /root/allbak.sh #!/bin/bash [ ! -e /backup ]&& mkdir /backup #新建个文件夹专门放备份文件的 day=date +%F #定义日期是时间 user=root pass=123456 innobackupex --user $user --password $pass /backup/allbak${day} --no-timestamp #用innobackupex做完全备份 mysql -u$user -p$pass -e "flush logs" #启用binlog日志,每次完全备份之后,每周刷新一遍binlog日志
00 0 2-7 /root/newbak.sh & >/dev/null //每周二到周7的凌晨3点执行增量备份
#周一全备,如果是周二执行,判断dir1 存在,则增量备份,如果不存在,则判断昨天的增量,存在则执行周三的增量,如果都没有,则全备执行一次吧
vim /root/newbak.sh #!/bin/bash d1=date +%F #定义时间,用日期来区分 d2=date +%F -d "-1 days" #找到昨天的日期,好指明上一次备份的备份文件 dir1=/backup/allbak${d2} #昨天做的完全备份文件 dir2=/backup/newbak${d2} #昨天做的增量备份文件 user=root pass=123456 [ ! -e /backup ]&& mkdir /backup #如果文件不存在,则创建文件夹 if [ -e ${dir1} ];then #判断昨天做的是完全备份 Y指定昨天备份的完全备份文件 innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir1} --no-timestamp elif [ -e ${dir2} ];then#判断昨天做的是增量备份 Y指定昨天备份的增量备份文件 innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir2} --no-timestamp else #昨天既没有做增量备份,又没有做完全备份,则做一次完全备份。 innobackupex --user $user --password $pass /backup/allbak${d1} --no-timestamp fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下