数据库备份
一、备份
- 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程为了保障数据的安全,需要定期对数据进行备份。备份的方式有很多种,效果也不一样。一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复。从而将损失降到最低。
1.备份技术
1.1冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将要害性文件拷贝到另外的位置的一种说法。冷备份的优点是:
- 是非常快速的备份方法(只需拷文件)
- 轻易归档(简单拷贝即可)
- 轻易恢复到某个时间点上(只需将文件再拷贝回去)
- 能与归档方法相结合,做数据库“最佳状态”的恢复。
- 低度维护,高度安全。
1.2热备份
优点:在服务器运行时可以进行备份
2.备份种类
2.1完全备份
对数据进行完完全全备份
2.2增量备份
特点:因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。
2.3差异备份
特点:占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。
二、利用Precona-xtrabackup备份
1、完整备份及其恢复
-
准备一个新的数据库 向其中创建库,表 并插入内容
-
开始进行完整备份,创建备份文件
-
完成
-
查看二进制日志
-
接着进行模拟损坏(此操作为虚拟机中模拟,请勿模仿!)
-
指定备份点
-
生成回滚日志 ,恢复文件
-
查看mysql文件,被恢复
-
尝试登陆数据库,结果出现错误
-
这个是因为 由于刚刚恢复备份的一系列操作都是root完成的 mysql没有权限进入到 /var/lib/mysql 文件夹下进行操作,所以我们将 此文件夹下的属组、属主都改为 mysql
-
紧接着重启服务,完成!
2、增量备份及其恢复
创建一个新的表 并添加数据
- 更改时间 进行一次完整备份
备份文件生成
- 紧接着 修改时间 模拟第二天对数据进行操作
(题外话)由于修改了时间,IP租约问题可能导致xshell连接虚拟机会频频掉线
那么我们可以再网络配置文件中更改为手动配置IP,具体方法大家可以在我之前的博客中进行查看 : https://blog.csdn.net/Andrew__feng/article/details/107919622.
-
接下来回归正题
模拟修改数据
-
进行第二次增量备份
-
模拟损坏
-
恢复
回滚至周一
-
回滚至周二
-
恢复
- 授权 并登录
3、差异备份及其恢复
差异备份是在完整备份的基础上,和增量备份基本类似
三、利用MySQLdump备份
mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
-
准备一个新的库 并创建表 添加文件
-
进行备份
-
观察备份文件
将二进制文件
-
清理环境
-
登录数据库 更改密码
恢复成功!!
- 刷新权限
- 再次尝试登录 发现无法登录 这里是因为 备份前使用的密码为***123 而使用后的变为了 ****1234
然后执行了刷新权限命令 所以 *****1234 无法使用 密码又变为了之前的 ****123
四、利用二进制日志恢复
以下操做与上面的不冲突 可直接进行
- 查看备份文件中的 二进制日志点
- 查看二进制日志
- 找到 二进制日志中的154 位置
从这里开始以下的都为 上一次备份完之后 所进行的 操作(查询操作除外)
查看下一个文件00003
成功!!!