采用binlog日志的好处

掌控所有更改操作,必要时可用于恢复数据

数据库主从复制的必要条件

[linyouyi@localhost~]# vim /etc/my.cnf

[mysqld]

.. ..

log-bin=mysql-bin //启用二进制日志,并指定前缀

.. ..

[linyouyi@dbsvr1 ~]# service mysqld restart

确认binlog日志文件

新启用binlog后,每次启动MySQl服务都会新生成一份日志文件:

[linyouyi@localhost~]# ls /var/lib/mysql/mysql-bin.*

/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index

清除binlog日志

删除早前指定版本的binlog日志

RURGE MASTER LOGS TO "binlog日志"

删除所有binlog日志,重新新建日志

RESET MASTETR

分析binlog日志

使用mysqlbinlog工具

格式:mysqlbinlog [选项] 日志文件

常用选项

--start-datatime="YYYY-mm-dd HH:MM:SS"

--stop-datatime="YYYY-mm-dd HH:MM:SS"

--start-position=起止位置

--stop-positon=结束位置

[linyouyi@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002[linyouyi@localhost~]# mysqlbinlog --start-datetime="2018-10-20 23:30" /var/lib/mysql/mysql-bin.000002

利用binlog恢复数据

基本方法

使用mysqlbinlog提取历史SQL操作

通过管道交给mysql命令重做

案例

重做第一份binlog所记录的更改操作

执行指定Pos节点范围内的sql命令恢复数据

根据上述日志分析,只要恢复从2018-10-12 20:40:50到2018-10-20 23:15:50之间的操作即可。可通过mysqlbinlog指定时间范围输出,结合管道交给msyql命令执行导入重做:

[linyouyi@loclahost ~]# mysqlbinlog \--start-datetime="2018-10-12 20:40:50"\--stop-datetime="2018-10-20 23:15:50"\/var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p

Enter password:

若是全部重做

[linyouyi@loclahost~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002 | mysql -u linyouyi -p

Enter password:

mysql备份工具

mysqlhotcopy不足

仅适用于MyISAM引擎的数据库

备份过程中,数据插入和更新操作都会被挂起

mysqldump不足

效率较低,备份和还原速度慢

备份过程中,数据插入和更新操作会被挂起

XtraBackup工具

在线热备份工具

备份过程中不锁表,适合生产环境适用

支持整体备份和增量备份

组件一xtrabackup:C程序,支持InnoDB和XtraDB,不能备份数据表结构

组件二innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM,能备份数据表结构

xtrabackup基本选项

基本选项

解释

--backup

执行备份操作

--target-dir

备份到目标文件夹

--datadir

备份的原始文件夹(Mysql库的位置)

--prepare

准备恢复数据

--increamental-basedir

增量备份时,指定参照的完整备份路径

--incremental-dir

准备恢复目录时,指定增量备份的路径

1)使用XtraBackup执行数据库备份

[linyouyi@localhost~]# mkdir -p /backup/mysql

[linyouyi@localhost~]# xtrabackup_56 –backup --datadir=/var/lib/mysql/ --target-dir=/backup/mysql/

2)确认备份好的文件数据:

[linyouyi@loclahost~]# ls /backup/mysql/

3)做一个增量备份(基于前一步的完整备份)

[linyouyi@localhost ~]# xtrabackup_56 --backup \ #xtrabackup_55 是5.5版本,xtrabackup_56是5.6版本--datadir=/var/lib/mysql/\--target-dir=/backup/inc01/\--incremental-basedir=/backup/mysql/

确认备份好的文件数据:

[linyouyi@localhost~]# ls /backup/inc01/

对比完整备份、增量备份的大小:

[linyouyi@localhost~]# du -sh /backup/mysql/ /backup/inc01/11M/backup/mysql/ //完整备份的大小

264K /backup/inc01/

准备用于恢复的数据库目录

以/backup/mysql/可用来重建MySQL服务器。这种情况下,官方建议连做两次--prepare,以确保数据一致性:

[linyouyi@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/[linyouyi@localhost~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/

准备恢复“完整备份+增量备份”

以/backup/mysql/用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据:

先准备完整备份目录,添加--apply-log-only仅应用日志:

[linyouyi@loclahost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql --apply-log-only

然后整合增量备份的数据,通过--incremental-dir选项指定增量位置:

[linyouyi@localhost ~]# xtrabackup_56 --prepare \--target-dir=/backup/mysql --apply-log-only \--incremental-dir=/backup/inc01

至此,已经把全量备份和增量备份合并了

接着停止数据库,删除/var/lib/mysql/下的内容,拷贝数据

[linyouyi@localhost home]# systemctl stop mariadb//删除/var/lib/mysql/下的内容

[linyouyi@localhost home]# rm -rf /var/lib/mysql/*#[linyouyi@hadoop01 home]# innobackupex --defaults-file=/etc/my.cnf --copy-back /home/mysql --user=linyouyi --password=123456

[linyouyi@localhost home]# xtrabackup --copy-back --target-dir=/home/mysql

[linyouyi@localhost home]# chown -R mysql:mysql /var/lib/mysql/

[linyouyi@localhost home]# systemctl start mariadb

至此,数据已经恢复成功

mysql增量_mysql实时增量备份相关推荐

  1. mysql dump 增量_mysql mysqldump数据备份和增量备份

    本篇文章主要讲如何使用shell实现MysqL全量,增量备份.增量备份在周一-周六凌晨3点,会复制MysqL-bin.00000*到指定目录:而全量备份则使用MysqLdump将所有的数据库导出,每周 ...

  2. mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步

    题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...

  3. 增量同步_实战 | canal 实现Mysql到Elasticsearch实时增量同步

    题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...

  4. mysql 实时恢复_MySQL实时在线备份恢复方案:Replication+LVM Snapsho

    快照和复制技术的结合可以保证我们得到一个实时的在线MySQL备份解决方案,当主库发生误操作时,只需要恢复备库上的快照,然后再根据binlog执行point-in-time的恢复即可. 下面假定一个场景 ...

  5. 刘子佼 mysql 下载_MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战 视频教程...

    课程名称:MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战课程简介: 课程独家解析MySQL 5.6最新特性,课程讲师刘子佼讲课风格幽默,善于与人沟通,善于组建和协调团队攻克技术难 ...

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

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

  7. mysql系列之5--完全备份和增量备份

    一.利用系统自带的工具实现完全备份:mysqldump 数据备份方式: 物理备份:直接拷贝库或表对应的文件.限于myisam,跨平台性差 逻辑备份:执行备份时,根据已有的数据,生成对应的sql命令,把 ...

  8. MySQL利用xtrabackup进行增量备份详细过程汇总

    1,创建mysql备份用户 mysql -uroot --password="" -e"CREATE USER 'backup'@'192.168.%' IDENTIFI ...

  9. mysql增量同步kafka_MySQL数据实时增量同步到Kafka - Flume

    写在前面的话 需求,将MySQL里的数据实时增量同步到Kafka.接到活儿的时候,第一个想法就是通过读取MySQL的binlog日志,将数据写到Kafka.不过对比了一些工具,例如:Canel,Dat ...

最新文章

  1. 南昌推进“互联网+”智慧城市建设
  2. 前端知识点总结---面试专用
  3. 快速打造一个MINI自动发布系统
  4. rest和rest ful_还有更多REST技巧
  5. windows server 2008安装桌面风格(桌面体验)
  6. 4复数与复变函数(四)
  7. android sqlite数据库死锁,SQLite也可能出现死锁。
  8. 微软社区大课堂 - Transform the Datacenter (数据迁移与Windows Server )社区巡讲- 北京站...
  9. 墨者学院 - IIS写权限漏洞分析溯源
  10. Unity3D模型轻量化探索之CATIA
  11. 汽车CAN诊断——报文数据篇
  12. golangci-lint timeout
  13. Java对象转为Json格式的String
  14. 纯CSS+CSS3右上角倾斜四十五度封页角效果
  15. 【Matlab】蒙特卡罗法模拟圆周率+对应解析的GIF生成【超详细的注释和解释】
  16. 【工业大数据】大数据时代,计量服务将何去何从?
  17. python怎么实现直播_Python实现直播推流效果
  18. Excel_VBA开发2048游戏教程——Einsphoton
  19. 华为M-LAG跨设备链路聚合技术理论讲解
  20. 台大机器学习基石上_lesson 2

热门文章

  1. icom对讲机写频线定义_小米对讲机Lite体验:小米全新5公里无网络免费通话神器...
  2. Matlab查看数组大小的命令——size、length、numel和ndims
  3. python 对象锁_也许你对 Python GIL 锁的理解是 错的。
  4. pandas整表写入excel指定位置_当Python遇到Excel,一个能打的都没有~
  5. python最短路径例子_Python实现的多叉树寻找最短路径算法示例
  6. 时钟在微型计算机中作用,微型计算机系统中的实时时钟
  7. charles抓取手机APP,配置正确却抓不到数据
  8. Vue路由开启keep-alive缓存页面
  9. Oracle学习笔记(三)----------执行计划
  10. Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器