一、确保mysql开启了binlog日志功能

在/etc/my.cnf文件里的[mysqld]区块添加:

#这个是存储的位置为mysql配置文件的位置

log-bin=mysql-bin

然后重启mysql服务生效

二、创建数据库

先创建一个ops数据库

create database ops;

use ops;

创建一个customers表并写上表结构

create table customers(

id int not null auto_increment,

name char(20) not null,

age int not null,

primary key(id)

)engine=InnoDB;

查看创建好的表

desc customers;

表中插入数据:

insert into customers values(1,"wangbo","24");

insert into customers values(2,"guohui","22");

insert into customers values(3,"zhangheng","27");

检查插入数据:

select * from customers;

三、进行数据库全量备份

mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/alidata/mysql_bakcup/ops_$(date +%F).sql.gz

ls /alidata/mysql_bakup

参数说明:

-B: 指定数据库

-F:刷新日志

-R:备份存储过程等

-x:锁表

--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置信息

四、再次插入数据

insert into customers values(4,"liupeng","21");

insert into customers values(5,"xiaoda","31");

insert into customers values(6,"fuaiai","26");

查看最新插入的数据

select * from customers;

五、模拟误操作、删除ops数据库

drop database ops;

此时,全备之后到误操作时刻之间,用户写入的数据在binlog中,需要恢复出来!

查看全备之后新增的binlog文件

cd /alidata/mysql_bakcup

#解压出已经备份好的数据库

gzip -d ops_2019-04-23.sql.gz

ls

查看数据库变化的时刻

grep CHANGE ops_2019-04-23.sql

这是全备时候的binlog文件位置 mysql-bin.000006的第106行

因此在该文件之前的binlog文件中的数据都已经包含在这个全备的sql文件中了

移动到binlog文件,并导出sql文件,提出其中的drop语句

查看mysql数据存放目录,由如下信息可知在/var/lib/mysql目录下

ps -ef |grep mysql

cd /var/lib/mysql

cp mysql-bin.000006 /alidata/mysql_bakcup/

cd /alidata/mysql_bakcup/

mysqlbinlog mysql-bin.000006 >006bin.sql #即将binlog日志转化为可正常导入的sql文件

vim 006bin.sql 删除里面drop语句

注意:在恢复全备数据之前必须将binlog文件移出,否则恢复过程中,会继续写入语句到binlog,最终导致增量恢复数据部分变的比较混乱

六、恢复数据

mysql -uroot -p

查看数据库,看看ops库在不在

show databases

use ops;

select * from customers;

#此时恢复了全备时刻时候的数据

接着,使用006bin.sql文件恢复全备时刻到删除ops数据库之前,新增的数据

mysql -uroot -p ops <006bin.sql

再次查看数据库,发现备份到删除数据库之前的那部分数据也恢复了!

select * from customers;

以上就是mysql数据库增量数据恢复的实例过程!

最后总结几点:

1)本案例适合认为SQL语句造成的误操作或者没有主从复制等热备情况宕机时的修复

2)恢复条件为mysql要开启binlog日志功能,并且要全备和增量所有数据

3)恢复时建议对外定制更新,即禁止更新数据库

4)先恢复全量,然后把全备时刻点以后增量日志,按顺序恢复成SQL文件,然后把文件中有问题的SQL语句删除,在恢复到数据库

mysql中数据如何备份_mysql数据库如何进行备份和恢复相关推荐

  1. mysql 修复数据表 批量_MySQL数据库迁移与MySQL数据库批量恢复

    一.MySQL数据库迁移或备份 将相关数据库数据文件直接迁移方式 1. 了解使用InnoDB引擎创建数据库所产生的文件 使用MySQL InnoDB引擎所产生的文件(三个文件都很重要) .ibd:包含 ...

  2. mysql binlog 备份_Mysql数据库的增量备份与还原

    一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原. 二.备份需要考虑的问题 可以接受丢失多少数据: 恢复数据的时间要多久: 恢复数据时是否持续提供服务: 恢复的对象,是一个库,多个表,单个表,还 ...

  3. mysql中关系怎么弄_mysql数据库关系操作

    ### mysql数据库 #### 知识要点: 1. 数据操作增.删.改 2. 外键约束要求 3. 一对多表关系 4. 一对一表关系 5. 多对多表关系 6. 外键约束的参照操作 ### 数据操作 # ...

  4. mysql中unsigned怎么用_mysql 数据库unsigned的用法

    在mysql数据库中,unsigned表面含义是 '无符号'的意思,unsigned既为非负数,用此类型可以增加数据长度. 例如,如果 int最大是2147683647,那    tint  unsi ...

  5. mysql录数据总是错误_MySQL数据库出错

    在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000): 恢复到从库: 启动复制. 这里的问题是复制起始位点是 aaaa:101,从库上表 t 的数据状态是领先其他表的.aaaa ...

  6. mysql中sql语句使用_mysql数据库中用到sql语句

    一.删除mysql表中的的索引 alter table DM_Equipment_Fixed drop index name ; 添加索引:ALTER TABLE table_name ADD IND ...

  7. mysql中输入没反应_mysql数据库插入无反应问题

    情景再现: 页面点击插入数据操作无反应 问题追溯: 查看日志,sql执行语句输出,sql语句无错,报异常Lock wait timeout exceeded; try restarting trans ...

  8. mysql中数据加减_mysql日期加减

    一.MySQL 为日期增加一个时间间隔:date_add(). 1.  示例: set @dt = now(); select date_add(@dt, interval 1 day);       ...

  9. mysql 备份_MySQL数据库备份实操

    本文基于mysql(8.0.20)及xtrabackup(8.0.13)最新版本,实现了完整的mysqldump逻辑备份.binlog增量备份.xtrabackup物理备份恢复,帮你快速掌握操作要点 ...

最新文章

  1. mac安装mysql修改密码_Mac下安装MySQL 5.7.28并且修改root密码-Go语言中文社区
  2. 32 vs 开发wince_“激光大炮”上央视了!秒射气球 一键启动32响
  3. jdk 1.8 不可变常量_在JDK 10中不可变与不可修改
  4. 条款一:尽量使用const、inline而不是#define
  5. python必背100源代码-python 100例 (持续更新)
  6. 基于STM32移植UCGUI图形界面框架(3.9.0源码版本)
  7. kvaser在linux下的二次开发
  8. 车载以太网测试之实锤-基于电阻噪声和高斯噪声的SQI测试对比
  9. VS2015导出带文件的项目模板
  10. 【性能监测】前端性能监测方法总结(非监测平台)
  11. 手机游戏连接计算机屏幕,手机怎么投屏到电脑?简单几个步骤就能实现,看电影玩游戏爽爆了...
  12. itmo大学计算机专业,【俄罗斯圣光机大学访学】计算机学院ITMO交流访学团
  13. Python生成透明背景图片
  14. 其实软件测试工程师也是程序员,很多人不知道
  15. WifiManager详解
  16. Flutter成都开发者线下交流会实录
  17. npm安装私有指定路径的依赖包
  18. 2023年科普新书大盘点:重磅新书,值得期待!
  19. OpenCORE原理和核心代码破解,增加AVI格式。
  20. C程序括号匹配检查(带详细注释)

热门文章

  1. Ubuntu18 USB网卡驱动安装踩坑记录
  2. 如何安装和配置DB2的ODBC驱动及数据源
  3. 英伟达正式启用GPU虚拟机显卡直通功能,Linux也能玩Windows游戏
  4. Python+Vue计算机毕业设计高考填报志愿综合参考系统1kc8i(源码+程序+LW+部署)
  5. 1-10-RHEL6.3-linux启动原理及各种故障案例分析(Red Hat Enterprise Linux Server6.3)@树袋飘零...
  6. FLV Binder下载
  7. ubuntu 修改开机启动项默认值
  8. 工业物联 成就智能制造 IIoT未来布局!OFweek 2019工业物联网技术与应用峰会4月即将来袭
  9. QMS-云质-质量管理软件-如何助力质量人员提高工作效率与绩效—供应商质量评审
  10. 远程答题的稳定与速度