任务背景

一、真实案例

  1. 某天,公司领导安排刚入职不久的小明同学将生产环境中的数据(MySQL数据库)全部导入到测试环境给开发人员使用。当小明去拿数据的时发现,备份数据是1个礼拜前的。原因是之前的运维通过脚本每天对数据库进行备份,根据结果判断应该是脚本的问题导致备份失败。于是乎,领导让小明重新制定备份策略对数据库进行备份,并且把数据导入测试环境。

二、案例背后的核心技术

  1. 掌握MySQL的备份工具使用及各自特点
  2. 熟悉shell脚本
  3. 熟悉MySQL数据的导入导出

    三、今日任务场景

    对于重要数据做好备份,是我们每个运维人员和DBA的重要职责。备份只是 一种手段。我们的最终目的是当数据出现问题时能够及时的通过备份进行恢复。所以,现在需要你对我们现有的MySQL数据库进行备份策略的制定以及实施

    任务要求

  4. 选择合适的工具和方法对mysql数据库进行备份

  5. 编写脚本实现自动化备份

    课程目标

  • 了解MySQL常见的备份方式和类型
  • 能够使用mysqldump工具进行数据可的备份。如全库备份,库级备份,表级备份
  • 能够使用mysqldump工具+binlog日志实现增量备份
  • 理解xtrabackup工具对数据库进行全备和增备

    理论储备

    MySQL备份概述

    1、关于备份你要知道的

    思考:备份和冗余有什么区别?
    备份:能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存到了其他地方
    冗余:数据有多份冗余,但不等备份,只能防止机械故障带来的数据丢失,例如主备模式、数据库集群

    2、备份什么

    数据库:一堆物理文件的集合;日志文件(二进制日志)+数据文件+备份文件
    DBFILE + BINLOG + my.cnf

    3、备份过程必须考虑的因素

  • 必须制定详细的备份计划(策略)(备份频率、时间点、周期)

  • 备份数据应该放在非数据库本地,并建议有多份副本
  • 必须做好数据恢复的演练(每隔一段时间,对备份的数据在测试环境中进行模拟恢复,保证当出现数据灾难的时候能够及时恢复数据)
  • 根据数据应用的场合、特点选择正确的备份工具

扩展:MySQL体系结构(MySQL==>DBMS软件到底由哪些层构成的)
image.png