mysql全量备份与增量备份_Mysql增量备份与全量备份
mysqldump备份及binlog日志恢复
详情: http://blog.51cto.com/hongge/1862214
1.首先确保已开启binlog日志功能。在my.cnf中包含下面的配置以启用二进制日志:
[mysqld]
log-bin=mysql-bin
2.创建两份脚本文件,一份为增量备份的脚本文件,另一份为全量备份的脚本文件。
//脚本文件放这里
//全量备份脚本start
#!/bin/bash
# Program
# use mysqldump to Fully backup mysql data per week!# History
# Path
BakDir=/home/mysql/backup
LogFile=/home/mysql/backup/bak.log
Date=`date +%Y%m%d`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz/usr/bin/mysqldump -uroot -proot --quick --events --all-databases --flush-logs --delete-master-logs --single-transaction >$DumpFile
#↑这边放置你的 mysqldump所在地址并加上你连接数据库的账号密码/bin/tar -zvcf $GZDumpFile $DumpFile/bin/rm$DumpFile
Last=`date +"%Y年%m月%d日 %H:%M:%S"`echo 开始:$Begin 结束:$Last $GZDumpFile succ >>$LogFile
cd $BakDir/daily/bin/rm -f *
//全量备份脚本end
//增量备份脚本start
#!/bin/bash
# Program
# usecp to backup mysql data everyday!# History
# Path
#//增量备份时复制mysql-bin.00000*的目标目录,提前手动创建这个目录
BakDir=/home/mysql/backup/daily #备份地址
BinDir=/var/lib/mysql
LogFile=/home/mysql/backup/bak.log #日志地址
BinFile=/var/lib/mysql/mysql-bin.index 获取mysql里的 mysql-bin.index/usr/bin/mysqladmin -uroot -proot flush-logs
#↑获取mysql里的mysqladmin,并填写数据库账户名和密码。(mysqladmin跟全量备份的mysqldump位置一样)
#这个是用于产生新的mysql-bin.00000*文件
Counter=`wc -l $BinFile |awk '{print $1}'`
NextNum=0#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的for file in `cat$BinFile`dobase=`basename $file`
#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./NextNum=`expr $NextNum + 1`if [ $NextNum -eq $Counter ]then
echo $base skip! >>$LogFileelsedest=$BakDir/$baseif(test -e $dest)
#test-e用于检测目标文件是否存在,存在就写exist!到$LogFile去then
echo $base exist! >>$LogFileelse
cp $BinDir/$base $BakDirecho $base copying >>$LogFilefi
fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ! >> $LogFile
//增量备份脚本end
3.将脚本保存到任意位置,比如root文件中
4.设置crontab任务,执行备份脚本。先执行的是增量备份脚本,然后执行的是全量备份脚本:
[root@test-huanqiu ~]# crontab -e
#每个星期日凌晨3:00执行完全备份脚本
0 3 * * 0 /bin/bash -x /root/Mysql-FullyBak.sh >/dev/null 2>&1
#周一到周六凌晨3:00做增量备份
0 3 * * 1-6 /bin/bash -x /root/Mysql-DailyBak.sh >/dev/null 2>&1
#↑脚本路径必须填对
5.测试增量备份与全量备份脚本
先执行增量备份脚本
[root@test-huanqiu backup]# sh /root/Mysql-DailyBak.sh
[root@test-huanqiu backup]# ll
total 8
-rw-r--r--. 1 root root 121 Nov 29 11:29 bak.log
drwxr-xr-x. 2 root root 4096 Nov 29 11:29 daily
[root@test-huanqiu backup]# ll daily/
total 8
-rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000030
-rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000031
[root@test-huanqiu backup]# cat bak.log
mysql-binlog.000030 copying
mysql-binlog.000031 copying
mysql-binlog.000032 skip!
2016年11月29日 11:29:32 Bakup succ!
然后执行全量备份脚本
[root@test-huanqiu backup]# sh /root/Mysql-FullyBak.sh
20161129.sql
[root@test-huanqiu backup]# ll
total 152
-rw-r--r--. 1 root root 145742 Nov 29 11:30 20161129.sql.tgz
-rw-r--r--. 1 root root 211 Nov 29 11:30 bak.log
drwxr-xr-x. 2 root root 4096 Nov 29 11:30 daily
[root@test-huanqiu backup]# ll daily/
total 0
[root@test-huanqiu backup]# cat bak.log
mysql-binlog.000030 copying
mysql-binlog.000031 copying
mysql-binlog.000032 skip!
2016年11月29日 11:29:32 Bakup succ!
开始:2016年11月29日 11:30:38 结束:2016年11月29日 11:30:38 20161129.sql.tgz succ
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据。
转自: https://blog.csdn.net/u011746446/article/details/79468977
mysql全量备份与增量备份_Mysql增量备份与全量备份相关推荐
- mysql备份去掉一个库_MySQL备份与恢复(3)mysqldump备份多个库
一.mysqldump的工作原理. 利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库以逻辑的sql语句的形式直接输出或生成备份的文件的过程 利用这个备份文件恢复的时候的原理?就 ...
- MySQL8增量备份1008无标题_mysql增量备份
一.环境描述(使用rsync进行mysql的增量备份) 192.168.0.2为备份服务器 192.168.0.3为需要经常备份的mysql数据库 二.主要配置 1.备份服务器配置 useradd m ...
- mysql备份耗时太长_Mysql数据不算大,备份却非常慢
环境 硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram 软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x 现象 2个库,其中1个业务库下 ...
- MySQL自动备份到本地数据库_MYSQL数据库自动本地/异地双备份/MYSQL增量备份
构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...
- mysql 每天增量备份_mysql增量备份
小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整 备份,每天一次增量备份类似这样的备份策略.增量备份的原理就是 ...
- MySQL 数据库备份(二)(增量备份与恢复)
文章目录 引言 1.增量备份的特点 2.二进制日志对备份的意义 2.1增量备份示例 二.MySQL增量恢复 1.增量恢复的场景 2. 丢失完全备份之后更改的数据的恢复 3. 完全备份之后丢失所有数据 ...
- MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)
xtrabackup Percona 官网:www.percona.com percona-server InnoDB --> XtraDB Xtrabackup percona提供的mysql ...
- mysql备份要注意哪些_MySQL数据库备份过程的注意事项
今天看了看数据备份相关的东西,总结了几个MySQL数据备份的注意事项,简单分享一下吧. 对于MySQL备份,每个DBA的理解可能都不一样,备份可以分为下面几个维度: 文件种类划分: 1.物理备份,以x ...
- mysql如何备份一个表单_Mysql亿级数据大表单表备份
上一篇Mysql已有亿级数据大表按时间分区,介绍了亿级数据大表如何按时间分区,也留下了一个问题:备份亿级数据大表要耗时多久.本篇将就如何备份亿级数据大表展开讨论. 注意:我这里所说的备份指的是数据从一 ...
- mysql备份到带库_MySQL数据备份
MySQL数据备份 一. MySQL数据损坏类型 1.1.物理损坏 磁盘损坏: 硬件,磁道坏,dd,格式化 文件损坏: 数据文件损坏,redo损坏 1.2.逻辑损坏 drop delete trunc ...
最新文章
- 如何设计电桥传感器驱动电路?
- tableau必知必会之如何将 Tableau Server 从 Windows 迁移到 Linux 的方法
- 多角度对比数据中心常见的三种走线方式
- spring集成redis(ehcache缓存改成redis)
- 计算机行业就业前景局限性,市场缺口很大的3个大学专业,一毕业就很吃香,就业前景很光明!...
- layuiAdmin打开新窗口、新标签页
- 莫比乌斯反演/容斥 +2020ICPC 江西省大学生程序设计竞赛 	A Simple Math Problem
- P5341-[TJOI2019]甲苯先生和大中锋的字符串【SAM】
- oracle迁移mysql_从自建Oracle迁移至RDS MySQL
- Python手写神经网络实现3层感知机
- 软件行业大牛告诉你何谓成功?
- firfox 和 chrome 移动端Web开发页面调试
- 什么是 XDoclet?
- mysql事件类型_MySQL binlog中的事件类型
- shell 参数,shell与Java 交互参数
- 企业思想家:专家详解元宇宙逻辑和产业机会 (5000余字)
- vue聊天功能模块(十二)消息转发
- 阿里云新购服务器磁盘disk挂载完整教程
- 个人注册PowerBI账号申请
- 微信扫描登录(生成二维码)
热门文章
- 利用Python绘制 3D 体素色温图
- 2021年人工神经网络第四次作业-第一题:LeNet对于水果与动物进行分类
- 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
- 允许自行设计赛道之后,参赛同学都想到了什么呢?
- ATMEGA8 DIP-28面包板实验
- java 取不同的随机数_Java实现获取指定个数的不同随机数
- linux nfs 配置_NFS服务器
- rbac 一个用户对应多个账号_电商后台系统:管理后台之账号管理(一)
- centos lamp 连接mysql_centOS下lamp安装
- @override代表什么意思_混凝土中C20、HZS180都代表什么意思?