一、备份的目的

做灾难恢复:对损坏的数据进行恢复和还原。

二、备份需要考虑的问题

可以接受丢失多少数据;

恢复数据的时间要多久;

恢复数据时是否持续提供服务;

恢复的对象,是一个库,多个表,单个表,还是整个数据库。

三、备份的类型

1,完全备份 每次对数据库的数据进行完全备份,备份整个数据库。所以完全备份耗时较长。

2,增量备份 在上次备份的基础上,备份更新的数据。

四、如何完全备份

在数据库较小,要备份的库小于(50G)时可以使用mysql 自带的备份工具mysqldump进行数据库或者表的完全备份。

Mysqldump 工具备份

优点:

备份的粒度灵活,既可以备份整个mysql服务也可以备份单个的库或者表。

缺点:

1,当数据浮点数时会出现精度丢失。

2,Mysqldump 备份的过程是串行化的,不会并行的进行备份,当备份的数据量较大时,耗时太长效率太低。

Mysqdump 工具对innodb 的储存引擎支持热备,即在不影响服务使用的情况下备份。

使用语法;

在命令行下 mysqldump -uroot -p‘password’ 数据库名称 > 备份文件的名称以 . sql 结尾.

-B 选项 导出指定的某个/某几个库 用空格 隔开 包含 create database 的语句.

五、如何增量备份

二进制日志,binary log

记录着数据库的所有增、删、改、等操作日志。可以使用 mysqlbinlog 在命令行下查看日志。可利用binlog日志文件进行数据的备份和还原。

查看数据binlog功能是否开启

Show variables like ‘log_bin%’;

要开启binlog功能可以修改 my.cnf文件

在文件尾部添加 log-bin=/data/mysql/log/mysql_bin

server-id=1

重启mysql服务使其生效即可.

Mysqlbinlog 指定binlog 文件 | mysql -uroot -p 密码 即可恢复指定日志文件中所记录的所有操作.

六、备份和恢复数据库实验。

准备实验环境

1,进入mysql到中 ,创建实验数据库 create database shiyan;

Use shiyan; 切换当前数据库为 shiyan

Create table kdata1(id int,name char(200)); 创建表一

2, 修改 my.cnf mysql配置文件. 在最后一行插入

Log-bin=/data/mysql/log/mysql_bin

Server-id=1

重启mysql服务使修改的配置项生效 也就是开启 binlog服务

3,

先对实验数据库做完全备份

Mysqldump -uroot -p密码 --single-transaction --flush-logs -B shiyan > shiyan_data_$(date +%Y%m%d%H%M%S).sql

–single-transaction 是热备份 只有在存储引擎为 innodb 时有效

–flush-logs 是生成新的binlog 文件 刷新二级制日志.

4,

在实验库 的kdata1表中插入数据 insert into shiyan.kdata1 values(1,’zhangsan’);

查看数据是否插入成功 select * from shiyan.kdata1;

可以看到数据成功插入了.

Mysqlbinlog -vv /data/mysql/log/mysql_bin.000001

可以看到刚才插入数据的操作已经记录在日志文件中了.

5 ,

使用flush logs; 生成一个新的日志文件

在实验库中再创建一个新的表二

Create table kdata2(u_id int,b_name char(20));

插入一条数据

Insert into shiyan.kdata2 values(2,’wangwu’);

查看数据

Set sql_log_bin=0 临时关闭binlog功能

6, 模拟一个表的数据丢失

Drop table kdata2; 删除表二

7, 使用binlog 日志来恢复删除的表二.

Mysqlbinlog /data/mysql/log/mysql_bin.000002 | mysql -uroot -p密码 再命令行下

进入到mysql中 use shiyan; 切换到实验库

Show tables; 查看当前库中的表

可以看到表二已经恢复了

查看一下表二的记录

表二中的数据也找回来了.

8,模拟实验数据库丢失了

Drop database shiyan; 删除实验数据库

然后恢复数据库

1, 先利用 完全备份的文件进行恢复

Mysql -uroot -p密码 < /root/shiyan_data_20200112131142.sql 数据还原

然后查看实验库中的表

Show tables;

发现表一恢复回来了但是没有表二

这时想要最大程度的恢复数据需要利用binlog文件尽可能的去恢复数据库丢失前的数据.

Mysqlbinlog /data/mysql/log/mysql_bin.00000.2 | mysql -uroot -p密码

这时再去查看实验库中的表就会看到表二也恢复了

实验总结:

单独的使用完全备份 无疑有很大缺点,当数据越来越多时备份的效率也越来越低. 但是我们使用 完全备份加 增量备份 binlog日志 数据备份的效率不会有太大的影响 而且还原时也可以最大程度还原到数据丢失前的状态,减少数据丢失.

mysql binlog 备份_Mysql数据库的增量备份与还原相关推荐

  1. mysql中数据如何备份_mysql数据库如何进行备份和恢复

    一.确保mysql开启了binlog日志功能 在/etc/my.cnf文件里的[mysqld]区块添加: #这个是存储的位置为mysql配置文件的位置 log-bin=mysql-bin 然后重启my ...

  2. mysql binlog 丢失_mysql数据库binlog丢失引起的问题

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

  3. mysql 本地备份_MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  4. mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)

    (1)备份开始时会开启一个后台检测进程,实时检测mysql redo(已提交的事务)的变化,一旦发现redo中有新日志写入,立刻将日志记入后台日志文件xtrabackup_log中, (2)复制Inn ...

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

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

  6. mysql 不锁表备份_Mysql不锁表备份之Xtrabackup的备份与恢复

    一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...

  7. 【MySQL数据备份与恢复】【安装xtrabackup 备份工具】【完全备份流程】【增量备份流程】【差异备份流程】

    [MySQL数据备份与恢复] 1.为什么要备份 备份:能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 冗余: 数据有多份冗余,但不等备份,只能防止机械故障带来的数 ...

  8. mysql镜像备份和同步备份_mysql 主从同步及备份

    Mysql主从复制搭建 mastermysql server my.cnf配置内容如下 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] s ...

  9. sql数据库自动增量备份_SQL自动增量

    sql数据库自动增量备份 Sometimes we don't have unique identifiers in the table to create a primary key. In thi ...

最新文章

  1. 【HDU 1576】 A/B
  2. Nginx学习之六:Nginx配置操作导航
  3. 应用机器学习进行无人机航拍影像质量评估
  4. 【渝粤教育】国家开放大学2018年春季 0062-21T港台文学专题讲座 参考试题
  5. Qt : 记录一个编译错误
  6. LaTex中“图片引用失败,显示(??)”的解决办法
  7. CouchDB 1.3.0的新特性以及算法的强化
  8. 计算机的冷门知识课件,PPT竟然还能这么玩!7组超实用冷门PPT小技巧
  9. 问题解决:Deepin-TIM版本太低无法登录
  10. 二或四 通道USB数据采集卡如合通过CMI耦合,构成USB高速多通道数据采集卡
  11. Linux 杀毒软件ClamAV离线安装部署
  12. 2021年总结:回顾这不平凡的一年
  13. 低功耗蓝牙中的蓝牙地址和隐私
  14. 更改公众号名称对用户关注的影响
  15. 微信朋友圈得内容可以爬取吗?看完这篇你心里就有底了
  16. excel运行时出现正在等待其他应用程序的OKE操作完了
  17. 【N32G457 】基于RT-Thread和N32G457 数码管时钟
  18. 日本诞生世界首个机器人农场,取代人工劳作
  19. Spring4 对Bean Validation规范的新支持(方法级别验证)
  20. 加州大学伯克利分校计算机科学专业,加州大学伯克利分校计算机科学专业排名第1(2020年USNEWS美国排名)...

热门文章

  1. AndroMDA 4.x架构(2)
  2. Linux基础_合并,归档,压缩,dump,编辑器
  3. 一文搞懂前端对象的深拷贝与浅拷贝
  4. 罗曼股份抢先驶入四万亿智慧城市建设主航道
  5. SSH框架总结(框架分析+环境搭建+实例源码下载) 《转》
  6. 一则 gfs2 集群文件系统无法挂载的解决案例
  7. 代码中(C#)支持动态拼接SQL的参数化查询
  8. 用GibbsLDA做Topic Modeling
  9. Android开发工具集合
  10. 深度学习入门必看的书和论文?有哪些必备的技能需学习?