十、linux-mysql下的mysql数据库增量恢复

1.全量备份

   全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份。

  备份所有库:

   mysqldump -uroot -ppoldboy -S /data/3306/mysql.sock -F -B -A|gzip >/server/backup/mysqlbak_$(date+%F).sql.gz

   备份一个库:

   mysqldump -uroot -ppoldboy -S /data/3306/mysql.sock -F -B  |gzip >/server/backup/mysqlbak_$(date+%F).sql.gz

2.增量备份

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

3.企业场景,增量或者全量备份

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

   2)单台数据库,如何增量。用rsync(配合定时任务频率大点或者inotify,主从复制)把所有binlog备份到远程服务器,尽量做主从复制。

   3)大公司周备,每周六00点一次全量,下周日-下周六00点前都是增量。

     优点:节省备份时间,减少备份压力。

     缺点:增量的binlog文件副本太多,还原会很麻烦。

   4)一主多从,会有一个从库做备份,延迟同步

        1.迁移或者升级数据库时

        2.增加从库

        3.人为的DDL,DML语句,主从库没办法,所有库都会执行,此时需要备份

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

一般由人为或者程序误操作导致的变化,需要增量恢复,因为其他从库都进行了误操作。

4.重新刷新一个binlog日志:

    mysqladmin  -uroot -p'oldboy124' -S /data/3306/mysql.sock flush-logs

5.增量恢复小结

   1)人为sql造成的误操作

   2)全备和增量

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

   4)  恢复全量,然后把增量日志中由问题的sql删除,进行恢复

其核心思想

   1)流程制度控制,防止问题发生,如果不做,面临服务和数据,鱼和熊掌不可兼得         

   2)延迟备份来解决。监控,黑名单,白名单机制。

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

 

posted @ 2019-09-11 21:01  小熊尤里  阅读(293)  评论(0编辑  收藏  举报