mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程
增量备份依赖于全量备份,因此首先要有全量备份,在全量备份的基础上,添加增量备份。
为了方便操作,我们先来做些准备工作。在客户端直接输入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全量备份、增量备份的学习过程相关推荐
- 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, ...
- mysql删库后恢复_记一次MySQL删库的数据恢复
昨天因为不可描述的原因,数据库直接被 drop database删除.在第一时间停止数据库服务和Web服务,备份MySQL数据目录下的所有文件之后,开始走上数据恢复之路. 第一次干这种事,各种不得法. ...
- mysql binlog更新记录缺失_记一次mysql数据库binlog丢失引起的故障
线上某业务需要对日志信息入库并进行分析最后呈现在管理后台上.某天突然发现后台没有前一天的分析数据.首先认为是java程序问题,于是查看应用程序日志,发现数 线上某业务需要对日志信息入库并进行分析最后呈 ...
- mysql数据库连接被拒绝访问_记一次MySQL数据库拒绝访问的解决过程
问题背景 用wordpress搭博客,数据库采用MySQL.为了调试方便,创建账户my_account ,允许它从任意主机访问数据库.CREATE USER `my_account`@'%' IDEN ...
- xtrabackup全量、增量备份恢复mysql数据库
一. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------+--- ...
- 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. 中继日志问题 ...
- mysql 热备份 数据一致性_MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]
背景 最近一直涉猎 MySQL 数据库的操作.集群部署 注意到,为保证数据安全,掌握数据备份是极为重要的 相比小型服务的冷备份而言 在此推荐并整理更受推崇的 XtraBackup 下的热备份技巧 ☞ ...
- MySQL数据库全量、增量备份与恢复
MySQL数据库全量.增量备份与恢复 数据库备份的重要性 在生产的环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果. 造成数据丢失的原因 程序错误 人为商店 计算机失败 磁盘失败 ...
- DataX oracle同步mysql(全量和增量)
本篇博客说说DataX如何进行全量和增量数据同步,虽然用演示oracle同步到mysql,但其他数据库之间的同步都差不多 1.DataX介绍 DataX 是一个异构数据源离线同步工具,致力于实现包括关 ...
最新文章
- Android开发--Spinner控件的使用
- preambleTransMax
- 工作总结的写作方法与要领
- [常用类]Scanner 类
- Think in AngularJS :对比 jQuery 和 AngularJS 的不同思维模式
- python行业缺口_根据缺口的模式选股买股票,python 学习代码
- 编写一个Java程序,在程序中包含一个Employee类,Employee类包含name、age、salary三个成员变量
- HDU-3072-IntelligenceSystem(tarjan,贪心)
- 我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比
- windows电脑记事本怎么自由排序?
- 关于NX UG11.0在visual studio中不能创建模板的问题
- C - Alphabetic Removals
- 怎么查看自己网站的访问量
- 老域名及用户行为习惯.
- JAVA的stream流操作详细解析
- 【Neo4j × 知识图谱】图形化数据库基本操作: 创建节点与关系、添加属性、查询节点 | 附:可视化 构建四大名著 知识图谱(含源代码)| word2vec实战: 构造斗罗大陆人物关系
- 【征稿】第三届电子、信息与计算技术前沿国际会议(ICFEICT 2023)
- 一文读懂低成本的软件对接方式,数据接口生成器应用于医疗软件全解析
- 「解决方案」预付费水电及宿舍预付费云平台解决方案
- STM32红外寻迹小车
热门文章
- 都说雪花ID不能做MySQL的主键,你确定?
- jsp判断disable按钮不可选_选电子琴五部曲
- python 3.5 3.6 3.7_选择 Python3.6 还是 Python 3.7
- 220v正反转电机接线法_电压为220/380V电动机如何接线,380V电机如何转接成220V详解...
- PyTorch基础-Tensor的属性,数据,运算-01
- U盘制作linux启动盘
- 92. Reverse Linked List II
- rsync命令使用方法
- 如何用chrome查看post get及返回的数据
- C# 基础知识-02----强数据类型