任务背景
一、真实案例
某天,公司领导安排刚入职不久的小明同学将生产环境中的数据(MySQL数据库)全部导入到测试环境给开发人员使用。当小明去拿数据的时发现,备份数据是1个礼拜前的。原因是之前的运维通过脚本每天对数据库进行备份,根据结果判断应该是脚本的问题导致备份失败。于是乎,领导让小明重新制定备份策略对数据库进行备份,并且把数据导入测试环境。
二、案例背后的核心技术
- 掌握MySQL的备份工具使用及各自特点
- 熟悉shell脚本
-
三、今日任务场景
对于重要数据做好备份,是我们每个运维人员和DBA的重要职责。备份只是 一种手段。我们的最终目的是当数据出现问题时能够及时的通过备份进行恢复。所以,现在需要你对我们现有的MySQL数据库进行备份策略的制定以及实施
任务要求
选择合适的工具和方法对mysql数据库进行备份
- 编写脚本实现自动化备份
课程目标
- 了解MySQL常见的备份方式和类型
- 能够使用mysqldump工具进行数据可的备份。如全库备份,库级备份,表级备份
- 能够使用mysqldump工具+binlog日志实现增量备份
-
理论储备
MySQL备份概述
1、关于备份你要知道的
思考:备份和冗余有什么区别?
备份:能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存到了其他地方
冗余:数据有多份冗余,但不等备份,只能防止机械故障带来的数据丢失,例如主备模式、数据库集群2、备份什么
数据库:一堆物理文件的集合;日志文件(二进制日志)+数据文件+备份文件
DBFILE + BINLOG + my.cnf3、备份过程必须考虑的因素
必须制定详细的备份计划(策略)(备份频率、时间点、周期)
- 备份数据应该放在非数据库本地,并建议有多份副本
- 必须做好数据恢复的演练(每隔一段时间,对备份的数据在测试环境中进行模拟恢复,保证当出现数据灾难的时候能够及时恢复数据)
- 根据数据应用的场合、特点选择正确的备份工具
扩展:MySQL体系结构(MySQL==>DBMS软件到底由哪些层构成的)