1、增量备份:

增量数据是从上次全量备份之后,更新的新数据,对于mysql来说,binlog日志就是mysql的增量数据;

(1)按天进行备份:

周一00点全量备份

周二00点全量备份

......

01.sql.gz

02.sql.gz

......

周一增量备份

周二增量备份

......

mysql-bin.000001

mysql-bin.000002

mysql-bin.000003

mysql-bin.index

mysql-bin.000004

mysql-bin.000005

mysql-bin.000006

mysql-bin.index

......

1)优点:恢复时间短,维护成本低;

2)缺点:占用空间多,占用系统资源多,经常锁表影响用户的体验;

(2)按周进行备份:

周六00全量备份

01.sql.gz

01.sql.gz

01.sql.gz

周一增量备份

周二增量备份

周三增量备份

mysql-bin.000001

mysql-bin.000002

mysql-bin.000003

mysql-bin.index

mysql-bin.000004

mysql-bin.000005

mysql-bin.000006

mysql-bin.index

mysql-bin.000007

mysql-bin.000008

mysql-bin.000009

mysql-bin.index

1)优点:节省备份时间,减小本分压力;

2)缺点:增量的binlog文件副本太多,还原会比较的麻烦;

(3)企业场景全量和增量的频率是怎么做的:

1)中小公司,全量一般是一天一次,业务流量低谷时执行全被,备份时会锁表;

2)大公司周备,每周六00点一次全量备份,下周日到周六前都是增量;

3)如何增量:

使用rsync+inotify(rsync+sersync)把所有的binlog备份到远程服务器上;

(4)企业的备份什么时候会派上用场:

1)迁移或者升级数据库时;

2)增加从从库的时候;

3)人为的ddl,dml语句,主从库都没有办法了,因为所有的库都会还行,此时需要备份;

4)跨机房灾备,需要备份到异地;

(5)小结:

我们在生产工作中一般常用一主多从数据库架构,常见的备份方案是在某一个不对外服务的从库上

开启binlog,然后实施定时全备和实时增量备份,保存的周期大于备份的周期;

2、增量恢复:

利用二进制日志和全备进行的恢复过程,被称为增量恢复:

(1)主库或者从库宕机(硬件损坏)是否需要增量恢复:

不需要增量恢复;

主库宕机,只需要把其中一个同步最快的从库切换为主库即可;

从库宕机,直接不用就好了;

(2)人为操作数据库sql语句破坏主库是否需要增量恢复:

需要增量恢复;

在数据库主库内部命令行误操作,会导致所有的数据库(包括主从库)数据的丢失。

列如:在主库执行了'drop database test;'这样的删除语句,这时所有的从库也

会执行这哥'drop database test;'语句,从而导致所有数据库上的test库数据丢失。

(3)只有一个主库是否需要进行增量恢复:

如果公司只有一个主库的情况,首先应该做定一天一次的全量备份及时时的增量

备份。

(4)小结:

1)一般由人为或程序逻辑的方式在数据库执行的sql语句等误操作,才需要增量恢复,因为

此时所有的从库也执行了误操作语句;

2)增量恢复的条件是:存在一份全备加上全备之后的时刻到出现问题的所有增量binlog文件备份;

3)恢复时建议对外停止更新;

4)恢复全量备份,然后把增量日志中有问题的sql语句删除,恢复到数据库;

5)增量恢复的核心思想:

流程制度控制,如果不做,就会面临数据和服务出现故障;

业务需求容忍度,可量化的目标,根据需求选择停库或锁表或者容忍丢失部分数据;

3、备份注意:

备份保存的周期要大于备份的周期;

最新文章

  1. resin实现域名访问
  2. WPF入门教程系列二十——ListView示例(二)
  3. Qt 文件处理
  4. 安装android studio
  5. 【CodeForces 625C】K-special Tables
  6. css中textarea去掉边框和选中后的蓝色边框问题的解决方法
  7. 用Python脚本做一些网页游戏中力所能及的自动化任务
  8. Jmeter 快速入门教程(二)--创建简单web测试
  9. 超实用js代码段一
  10. mysql - 初探
  11. DEDECMS批量修改默认文章和列表命名规则的方法
  12. C++----练习--整型赋值时的溢出
  13. Keli Linux与网络安全(2)——初探Keli
  14. 使用sqlnet.ora限制IP访问
  15. Linux上rpm方式安装JDK1.7
  16. 【BZOJ2190】仪仗队(数论)
  17. [转]koa 实现 jwt 认证
  18. spring学习总结——装配Bean学习二(JavaConfig装配bean)
  19. hbase.client.keyvalue.maxsize的默认值
  20. CentOS7 搭建LVS+keepalived负载均衡

热门文章

  1. [bug]Flask:KeyError: 'A secret key is required to use CSRF.'
  2. QT发布 - 动态编译,删减以来dll
  3. openstack创建vlan网络并配置网络设备
  4. 面试官问:ZooKeeper 有几种节点类型?别再说 4 种啦!
  5. 解决mysql无法远程连接的问题
  6. leetcode中Java关于Json处理的依赖
  7. .net core 使用阿里云分布式日志
  8. THINKPHP_(1)_修改TP源码,支持对中文字符串按拼音进行排序。
  9. GPU自动调度卷积层
  10. 使用PCAST检测散度以比较GPU和CPU结果