启用binlog日志实现对数据的增量备份:

日志存储位置: /var/lib/mysql/

日志名称:主机名-bin.000001 或mysqld-bin.000001

binlog日志概述:二进制日志,记录所有更改数据的操作;默认超过500M自动生成新的日志;

修改主配置文件启用binlog日志

vim /etc/my.cnf

[mysqld]

log-bin  (或指定日志名log-bin=x.000001或者指定目录和文件名log-bin=/logdir/X.000001)

max-binlog-size=200m   (设置日志最大200m,默认为500m)

:wq

重启mysql服务,/var/lib/mysql/下会多出一个日志文件1个日志索引文件:

x-bin.000001    mysql的binlog日志文件

x-bin.index     记录当前已有的binlog日志名

mysqlbinlog是mysql日志查看专属命令

查看binlog日志文件内容: mysqlbinlog  日志文件名

binlog日志记录sql语句的方式:

1 根据字符偏移量(pos)

起始字符偏移量  --start-positon=数字

结束字符偏移量  --stop-position=数字

2 根据时间点(time)

起始时间   --start-datetime="yyyy-mm-dd hh:mm:ss"

结束时间   --stop-datetime="yyyy-mm-dd hh:mm:ss"

执行binlog日志里的sql语句恢复数据:

mysqlbinlog 选项  x-bin.000001 | mysql -uroot -p123456 [数据库名]

手动生成新的binlog日志文件方式:

1:重启mysql服务   (很少用)

2:mysql> flush logs;

3: [root@A mysql]# mysql -uroot -p123456 -e "flush logs"  (引号里可以执行任意sql语句)

4: mysqldump -uroot -p123456 --flush-logs  数据名 > xxx.sql

清理binlog日志

删除已有binlog日志

1 删除指定版本的binlog日志

(1)方式一:mysql> purge master logs to "x-bin.000004";    (删除000004之前的日志,x-bin.index同步更新)

(2)方式二: rm -rf x-bin.000001 (x-bin.index不同步更新)

2 删除所有binlog日志,重建日志;  mysql> reset master;

编写脚本allbak.sh每周一对数据做完全备份:00 18 * * 1 /shell/allbak.sh

vim allbak.sh

#!/bin/bash

bakdir=/datadir

dbname=haha

day=$(date +%F)

if [ ! -e $bakdir ]

then mkdir $bakdir

fi

mysqldump -uroot -p123456 --flush-logs $dbname > $bakdir/allbak-$day.sql

编写脚本newbak.sh每周二~日做增量备份(只备份新生成的和没备份过的binlog日志且正在使用的不备份):不备份最后一个binlog日志   00 18 * * 2-7 /shell/newbak.sh

vim newbak.sh

#!/bin/bash

if [ ! -e /backdir ];then

mkdir /backdir

fi

cd  /var/lib/mysql

for file in `sed '$d' /var/lib/mysql/A-bin.index`

do name=`echo $file | awk -F "/" '{print $2}'`

if [ ! -e /backdir/$name ];then

cp $name /backdir

fi

done

转载于:https://blog.51cto.com/liangzai818/1740079

mysql实时增量备份相关推荐

  1. kafka对接mysql_【Canal】利用canal实现mysql实时增量备份并对接kafka

    简介 canal 1.1.1版本之后, 默认支持将canal server接收到的binlog数据直接投递到MQ, 目前默认支持的MQ系统有: kafka: https://github.com/ap ...

  2. linux mysql定时增量备份_Mysql 日常备份和增量备份脚本(Linux)

    适合对象 本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本. 本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采 ...

  3. mysql定时增量备份_Mysql日常自动备份和增量备份脚本

    序 你是否在寻找一个MySQL备份脚本? 适合对象 本文是在Linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本. 本文适合于没有启动复制功能 ...

  4. 实验——MySQL数据库增量备份恢复

    目录 一.MySQL数据库增量备份恢复 1.1 物理冷备份,开启服务 1.2 开启二进制日志文件 1.3 创建库和表,进行完全备份和增量备份 1.4 进行正常操作和误操作,进行增量备份 1.5 查看增 ...

  5. MySQL 数据增量备份

    目录 MySQL 数据增量备份 binlog日志 日志概述 启用日志 自定义日志存储目录和日志文件名 手动生成新的日志文件 清理日志(删除已有的日志文件) 查看日志文件内容 使用binlog日志恢复数 ...

  6. 实战-MySQL定时增量备份(2)

    阅读本文大约需要 9 分钟 实战-MySQL定时全量备份(1) 实战-MySQL定时增量备份(2) 实战-将MySQL备份上传到私有云(3) 概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品 ...

  7. mysql增量_mysql实时增量备份

    采用binlog日志的好处 掌控所有更改操作,必要时可用于恢复数据 数据库主从复制的必要条件 [linyouyi@localhost~]# vim /etc/my.cnf [mysqld] .. .. ...

  8. python比较数据库表今天跟前一天数据增量,Python 生产环境Mysql数据库增量备份脚本...

    Mysql数据库常用的办法是通过mysqldump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍blog介绍xtrabackup的热备工具.下面的脚本是基于 ...

  9. C 实现Mysql增量备份_window下mysql数据库增量备份实现教程

    mysql增量备份(mysql5.1 之后),linux下mysql增量备份 网上资料很多.这里只说明window下mysql增量备份. 定义: mysql数据库会以二进制的形式,自动把用户对mysq ...

最新文章

  1. 美国康普SYSTIMAX iPatch智能配线系统介绍
  2. JavaScript时间日期格式转化
  3. 基于MATLAB的Okumura-Hata模型的仿真
  4. paramiko在windows上的安装和使用
  5. Python机器学习:多项式回归与模型泛化004为什么需要训练数据集和测试数据集
  6. 等差数列java_Java实现 LeetCode 413 等差数列划分
  7. 查找算法(一)顺序查找
  8. .net开发常用工具备忘录
  9. Virtual Serial Port Driver虚拟串口vspd v7.2 下载及破解方法
  10. 面向数据科学家的 Docker 最佳实践
  11. Oracle Decode()函数和CASE语句的比较
  12. Azure database
  13. 【图像融合】基于matlab GUI拉普拉斯金字塔+小波变换+NSCT图像融合【含Matlab源码 870期】
  14. python写刷课脚本_python opencv 知到 刷课 脚本
  15. Java获取图片大小 及 尺寸 图片压缩 jpg压缩
  16. 校园多媒体直播系统方案
  17. springboot优缺点
  18. mac中手动切换go版本
  19. [学科总结] 《矩阵论》
  20. 【NOI模拟赛】黑色大桥(DP优化,李超树)

热门文章

  1. 查看MySQL数据库表的命令介绍
  2. CodeSmith实体类模板
  3. react-router5.x 的配置及其页面跳转方法和js跳转方法
  4. 12306春节高速抢票
  5. $\mathfrak {reputation}$
  6. 转:WEB前端性能优化规则
  7. 《jQuery知识点总结》(一)
  8. 边工作边刷题:70天一遍leetcode: day 92
  9. Delphi Math里的基本函数,以及浮点数比较函数(转)
  10. POJ_1151 Atlantis(线段树)