zoukankan      html  css  js  c++  java
  • 十、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)业务需求容忍度,可量化的目标,选择停库,根据需求选择停库或者锁表或者容忍丢失部分数据。

  • 相关阅读:
    JS制作图表
    把图片存入数据库
    .NET各种小问题
    JS各种小问题
    JS操作cookie
    JS处理Json数据
    git与svn的区别
    关于java中的一些循环
    java基础面试(上)
    Spring事务
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/11508749.html
Copyright © 2011-2022 走看看