增量备份依赖于全量备份,因此首先要有全量备份,在全量备份的基础上,添加增量备份。

为了方便操作,我们先来做些准备工作。在客户端直接输入mysql、mysqldump、mysqladmin、mysqlbinlog。看是否能直接出来。

[root@develop mysqlbackup]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection idis 15Server version:5.7.20-log MySQL Community Server (GPL)**********mysql>

[root@develop mysqlbackup]# mysqldump

Usage: mysqldump [OPTIONS] database [tables]

OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

OR mysqldump [OPTIONS] --all-databases [OPTIONS]

如果提示 :未找到命令,我们可以创建软链接

# /usr/local/mysql/ 为mysql的安装路径

[root@develop ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin

[root@develop ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

好了,接下来,我们将正式进入话题。

第一步 :修改my.cnf

(1)添加如下配置

# log_bin为增量备份位置,我这里设置为/var/mysqlbackup/,binlog是它的文件名

log_bin=/var/mysqlbackup/binlog

# server-id 必须要有,可以任意赋值。如果缺失,则无法启动服务。

server-id=127

(2)修改完之后,重启服务,使其生效,生效后,会有下列两个初始化文件

第二步:建立全量备份

mysqldump -uroot -p --all-databases --flush-logs --delete-master-logs --single-transaction -R > /data/mysqlfullbackup/prm1.sql -- 数据全量备份

说明:

/data/mysql/backups/prm1.sql  存放路径,自定义

-u 账户             -p 密码

--all-databases, -A    转储所有数据库中的所有表。会带有CREATE DATABASE 语句。

--databases   -B           第一个名称参数视为数据库名称

--tables                        表名

--add-drop-database  在每个CREATE DATABASE语句之前添加DROP DATABASE语句

--flush-logs, -F          在开始转储之前刷新MySQL服务器日志文件。

--delete-master-logs   删除前面二进制日志。此选项自动启用 --master-data。此参数可加可不加

--single-transaction    此选项将事务隔离模式设置为, REPEATABLE READ并START TRANSACTION在转储数据之前将SQL语句发送到服务器。它仅对事务表有用,例如InnoDB

--routines, -R           在输出中包含转储数据库的存储例程(过程和函数)

-E,  --events              任务

下面开始测试

第三步,往一个表里面增加数据、删除数据

(1)先建一个测试表,有以下原始数据

(2)先添加一些记录

(3)删除一些记录

第四步:刷新日志

由于恢复全量备份的操作会存在日志里,所以先刷新日志,这样恢复全量备份的操作会存在新的日志里,有利于跟前面的增量备份区分开来

使用以下语句

mysqladmin -uroot -p flush-logs;

或者

[root@develop ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection idis 42.....................mysql>flush logs;

Query OK,0 rows affected (0.14 sec)

第五步:恢复全量备份

mysql -uroot -p < /data/mysql/backups/prm1.sql

此步操作有点慢,耐心等候,完成后,我们查看表,已经还原到初始状态

第六步:增量备份还原

(1)查看日志

①将其转化为sql文件

mysqlbinlog --base64-output=decode-rows -vv binlog.000002 > temp.sql

--base64-output使用base-64编码打印二进制日志条目,decode-rows

--verbose重建行事件并将其显示为注释的SQL语句。如果给出此选项两次(通过传入“-vv”或“--verbose --verbose”),则输出包括用于指示列数据类型和一些元数据的注释,以及如果已配置的行查询日志事件。

②找位置和时间节点

找自己想恢复的某个点,我这里找到最后一个插入语句节点

③恢复节点

mysqlbinlog --stop-datetime="2019-01-11 11:10:54" binlog.000002 | mysql -uroot -p

mysqlbinlog--stop-position=1449 binlog.000002 | mysql -uroot -p

--start-datetime 在时间戳等于或晚于datetime参数的第一个事件处开始读取二进制日志

--start-position 在位置等于或大于的第一个事件处开始读取二进制日志

--stop-datetime 在时间戳等于或晚于datetime参数的第一个事件处停止读取二进制日志

--stop-position 在位置等于或大于的第一个事件处停止读取二进制日志

恢复后面的

mysqlbinlog --start-position=1449 binlog.000002 | mysql -uroot -p

最后一步:flush logs 刷新日志,开始新的操作

知识点:

要查看所有二进制日志文件的列表,请使用以下语句:

mysql> SHOW BINARYLOGS;

要确定当前二进制日志文件的名称,请发出以下语句:

mysql> SHOW MASTER STATUS;

mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程相关推荐

  1. hive增量表和全量表_你需要了解的全量表,增量表及拉链表

    mysql测试数据准备第一天 9月10号数据 1 2 31,待支付,2020-09-10 12:20:11,2020-09-10 12:20:11 2,待支付,2020-09-10 14:20:11, ...

  2. mysql删库后恢复_记一次MySQL删库的数据恢复

    昨天因为不可描述的原因,数据库直接被 drop database删除.在第一时间停止数据库服务和Web服务,备份MySQL数据目录下的所有文件之后,开始走上数据恢复之路. 第一次干这种事,各种不得法. ...

  3. mysql binlog更新记录缺失_记一次mysql数据库binlog丢失引起的故障

    线上某业务需要对日志信息入库并进行分析最后呈现在管理后台上.某天突然发现后台没有前一天的分析数据.首先认为是java程序问题,于是查看应用程序日志,发现数 线上某业务需要对日志信息入库并进行分析最后呈 ...

  4. mysql数据库连接被拒绝访问_记一次MySQL数据库拒绝访问的解决过程

    问题背景 用wordpress搭博客,数据库采用MySQL.为了调试方便,创建账户my_account ,允许它从任意主机访问数据库.CREATE USER `my_account`@'%' IDEN ...

  5. xtrabackup全量、增量备份恢复mysql数据库

    一. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------+--- ...

  6. Linux随笔19-MySQL主从复制、Percona XtraBackup实现全量和增量备份、ProxySQL实现读写分离

    Contents 1. MySQL5.7实现主从复制 1.1 基础环境 1.2. 配置主从复制 1.2.1. master节点上的配置 1.2.2. slave节点上的配置 1.2.3. 中继日志问题 ...

  7. mysql 热备份 数据一致性_MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]

    背景 最近一直涉猎 MySQL 数据库的操作.集群部署 注意到,为保证数据安全,掌握数据备份是极为重要的 相比小型服务的冷备份而言 在此推荐并整理更受推崇的 XtraBackup 下的热备份技巧 ☞ ...

  8. MySQL数据库全量、增量备份与恢复

    MySQL数据库全量.增量备份与恢复 数据库备份的重要性 在生产的环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果. 造成数据丢失的原因 程序错误 人为商店 计算机失败 磁盘失败 ...

  9. DataX oracle同步mysql(全量和增量)

    本篇博客说说DataX如何进行全量和增量数据同步,虽然用演示oracle同步到mysql,但其他数据库之间的同步都差不多 1.DataX介绍 DataX 是一个异构数据源离线同步工具,致力于实现包括关 ...

最新文章

  1. Android开发--Spinner控件的使用
  2. preambleTransMax
  3. 工作总结的写作方法与要领
  4. [常用类]Scanner 类
  5. Think in AngularJS :对比 jQuery 和 AngularJS 的不同思维模式
  6. python行业缺口_根据缺口的模式选股买股票,python 学习代码
  7. 编写一个Java程序,在程序中包含一个Employee类,Employee类包含name、age、salary三个成员变量
  8. HDU-3072-IntelligenceSystem(tarjan,贪心)
  9. 我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比
  10. windows电脑记事本怎么自由排序?
  11. 关于NX UG11.0在visual studio中不能创建模板的问题
  12. C - Alphabetic Removals
  13. 怎么查看自己网站的访问量
  14. 老域名及用户行为习惯.
  15. JAVA的stream流操作详细解析
  16. 【Neo4j × 知识图谱】图形化数据库基本操作: 创建节点与关系、添加属性、查询节点 | 附:可视化 构建四大名著 知识图谱(含源代码)| word2vec实战: 构造斗罗大陆人物关系
  17. 【征稿】第三届电子、信息与计算技术前沿国际会议(ICFEICT 2023)
  18. 一文读懂低成本的软件对接方式,数据接口生成器应用于医疗软件全解析
  19. 「解决方案」预付费水电及宿舍预付费云平台解决方案
  20. STM32红外寻迹小车

热门文章

  1. 都说雪花ID不能做MySQL的主键,你确定?
  2. jsp判断disable按钮不可选_选电子琴五部曲
  3. python 3.5 3.6 3.7_选择 Python3.6 还是 Python 3.7
  4. 220v正反转电机接线法_电压为220/380V电动机如何接线,380V电机如何转接成220V详解...
  5. PyTorch基础-Tensor的属性,数据,运算-01
  6. U盘制作linux启动盘
  7. 92. Reverse Linked List II
  8. rsync命令使用方法
  9. 如何用chrome查看post get及返回的数据
  10. C# 基础知识-02----强数据类型