Linux学习笔记--MySQL完全备份与恢复

1>>>>:首先我们要知道数据备份的重要性;备份的主要目的是灾难恢复,备份还可以测试应用 ,查询历史记录,回滚数据修改等。
在工作中一般造成数据丢失的原因一般有:
(1):程序错误 (2):人为错误 (3):运算错误 (4):磁盘故障 (5):灾难盗窃
2>>>>>:数据库备份类型:
1:可分为物理备份与逻辑备份,
物理备份是对数据库操作系统的物理文件(如:数据文件日志
文件等)
物理备份又可以分为冷备份(脱机备份)在数据库关闭的状态下进行。
热备份(联机备份)在数据库处于运行状态时进行备份
温备份:对数据锁定表格的状态下进行 备份。
2:逻辑备份:是对数据库逻辑组件(如表 等数据库对象)的备份。
3>>>>>:数据库的备份策略角度可分为
完全备份:每次对数据进行完整的备份,即对整个数据库的备份。 当恢复时数据存在大量的重复,并且占用大量的磁盘空间,备份的时间也很长。
差异备份:备份那些自从上次完全备份之后被修改过的所有文件。 恢复数据时,只需要回复上次的完全备份与最近的一次差异备份。
在这里插入图片描述
3>>>>>>:常见的备份方法:
MySQL数据库的备份可以采用多种方式如:物理冷备份,专用备份工具(Mysqldump),二进制日志增量备份,第三方工具等。

小结:
完全备份:占用大量磁盘空间,备份时间长
差异备份:备份数据会越来越大
增量备份:备份数据量小,占用空间小,备份速度快。恢复时需要从上一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复, 如果中间的某次备份数据损坏,将导致数据的丢失。

小编以为:要看公司的服务器数据每天的流量大小而选择备份方式,如果每天的数据少且不重要则每周一次完整即可,像TX ;AL大公司每天一次增量。

以下是一些简单备份的事例:
实验一:
数据库的完全备份与恢复:
1、创建数据库和表
(1)、创建一个数据库,名叫benet
(2)在benet数据库中,创建一个表student,表中有四个字段,分别是xingming(字符长度16),xingbie(字符长度4),nianling(int)
(3)在student的表中,分别插入两行数据
Zhangsan,nan,25
Lisi,nv,30
(4)查询student表中有哪些数据,是否与上面输入的数据一致。
2、使用冷备份方法备份所有数据库,模拟故障,最后恢复。
3、使用mysqldump备份所有的数据库,删除benet数据库,最后恢复。

实验二:
数据库的增量备份与恢复:
(企业备份案例)
一, 创建数据库和表

  1. 开服务 systemctl start mysqld
    2,进入mysql
    Linux学习笔记--MySQL完全备份与恢复_第1张图片
    3,创建数据库 benet。
    在这里插入图片描述
    4,创建表。
    在这里插入图片描述
    5,插入数据。
    Linux学习笔记--MySQL完全备份与恢复_第2张图片
    6,查数据。
    Linux学习笔记--MySQL完全备份与恢复_第3张图片
    二, 使用冷备份。
    1, 先停止服务(冷备份需要停止服务)。
    在这里插入图片描述
    2, 备份
    在这里插入图片描述
    3, 模拟数据库坏掉
    Linux学习笔记--MySQL完全备份与恢复_第4张图片
    这里面存放的数据库文件
    4, 回复 需要提前建 /123
    Linux学习笔记--MySQL完全备份与恢复_第5张图片
    5, 重启服务看一下
    在这里插入图片描述
    三, 使用mysqldump 备份
    1,备份
    在这里插入图片描述
    2,删掉数据库benet
    Linux学习笔记--MySQL完全备份与恢复_第6张图片
    3,回复数据库
    Linux学习笔记--MySQL完全备份与恢复_第7张图片

四, 增量备份
1, 启用2进制日志:修改mysql主配文件
在这里插入图片描述
随便找一行写重启服务
在这里插入图片描述
2, 查看日志的位置
在这里插入图片描述
3, 到表里遍写入数据
在这里插入图片描述
Linux学习笔记--MySQL完全备份与恢复_第8张图片
4, 刷新一下
在这里插入图片描述
5, 查看日志内容
在这里插入图片描述
Linux学习笔记--MySQL完全备份与恢复_第9张图片
6.删除库
在这里插入图片描述
7恢复数据库
首先回复完整
mysql -u root -p < /backup/mysql_benet.sql
再回复日志
mysqlbinlog --no-defaults --stop-position=’326’ mysql-bin.00001 | mysql -uroot -p
8,验证

完毕!!!!

你可能感兴趣的:(Linux)