目录
一、概述
二、数据备份的重要性
1. 数据保护
2. 灾难恢复
3. 数据完整性
4. 合规性要求
三、造成数据丢失的原因
1. 硬件故障
2. 人为错误
3. 黑客攻击
4. 自然灾害
5. 软件故障
四、备份类型
1.物理与逻辑角度
1.1 概念
1.2 物理备份
1.2.1 冷备份
1.2.2 热备份
1.3 逻辑备份
2.数据库备份策略角度
2.1 完整备份
2.2 增量备份
五、常见备份方法
1.物理备份工具
2.使用专用备份工具
3.通过使用二进制日志增量备份
4.第三方工具备份
5.注意事项
六、备份
1.完整备份
1.1 打包数据库文件备份
1.1.1 位置
1.1.2 备份
1.1.3 还原
1.2 备份工具备份
1.2.1 备份
1.2.1.1 工具
1.2.1.2 对单个库进行完全备份
1.2.1.3 对多个库进行完全备份
1.2.1.4 对所有库进行完全备份
1.2.1.5 对表进行完全备份
1.2.1.6 对表的结构进行备份
1.2.2 还原
1.2.2.1 source
1.2.2.2 mysql
2.增量备份
2.1 简述
2.2 特点
2.3 MySQL二进制日志对备份的意义
2.4 开启二进制日志备份功能
2.5 增量恢复
2.5.1 应用场景
2.5.2 方法
2.5.2.1 一般恢复
2.5.2.2 基于时间点的恢复
2.5.2.3 从某个时间点到日志结尾的恢复
2.5.2.4 从某个时间点到某个时间点的恢复
2.5.2.5 基于位置的恢复
备份数据可以提供保护机制,以防止由于硬件故障、人为错误、恶意攻击等原因导致的数据丢失。
当发生自然灾害、系统崩溃、黑客攻击等灾难性事件时,备份数据可以用于快速恢复业务和数据,减少停机时间和损失。
有时数据可能会被意外修改、删除或被恶意篡改。备份数据可以用于验证或还原数据的完整性,确保业务的可靠性和准确性。
许多行业和法规对数据备份和保留有严格的要求,例如金融、医疗等领域。备份数据可以帮助机构满足合规性要求。
磁盘故障、服务器故障等硬件故障可能导致数据丢失。
误删除、误格式化、错误操作等人为因素可能导致数据不可恢复。
恶意攻击者可能通过病毒、勒索软件、数据泄露等方式导致数据丢失或遭到破坏。
火灾、水灾、地震等自然灾害可能导致数据中心设备损坏或无法访问。
操作系统崩溃、应用程序故障等软件故障可能导致数据丢失。
对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。
是在关闭数据库的时候进行的
数据库处于运行状态,这种备份方法依赖于数据库的日志文件
对数据库逻辑组件(如表等数据库对象)的备份,表时为逻辑数据库结构(create database、 create table等语句)和内容(insert语句或分割文本文件)的信息
完整备份指的是备份整个数据库的所有信息,包括数据库文件中所有的数据、表、视图、存储过程、触发器等。一般来说,完整备份是备份最全面、可靠的方式,但备份文件体积较大,备份时间也相对较长。
增量备份指的是在完整备份的基础上,每隔一定时间备份新增的数据或修改的数据。这种备份方式可以节省备份时间和备份文件的空间,但需要配合特定软件或命令进行
物理冷备份时需要在数据库处于关闭状态下,能够较好的保证数据库的完整性。物理冷备份以用于非核心业务,这类业务都允许中断,物理冷备份的特点就是速度快,恢复时也是最为简单的,通过直接打包数据库文件夹(/usr/local/mysql/data)来实现备份。
mysqldump
mysqlhotcopy
MySQL支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制。对执行备份点后进行的数据库更改所需的信息进行备份。如果进行增量备份(包含上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志。
Percona XtraBackup是一个免费的MySQL热备份软件,支持在线备份innodb和XtraDB,也可以支持MySQL表备份。
tar czf mysql_all-$(date +%F).tar.gz /var/lib/mysql/*
mysqldump
mysqldump -u用户名 -p[密码] [选项] --databases [数据库名] > /备份路径/备份文件名
mysqldump -u用户名 -p[密码] [选项] --databases 库名1 [库名2]…… > /备份路径/备份文件名
mysqldump -u用户名 -p[密码] [选项] --opt --all-databases > /备份路径/备份文件名
mysqldump -u用户名 -p[密码] [选项] 数据库名 表名 > /备份路径/备份文件名
mysqldump -u用户名 -p[密码] -d 数据库名 表名 > /备份路径/备份文件名
登录mysql 数据库执行source 备份sql脚本路径
mysql -u用户名 -p[密码] < 库备份脚本的路径
mysql -u用户名 -p[密码] 库名 < 表备份脚本的路径
注:备份文件后缀名是.sql
mysqladmin -u用户 -p[密码] flush-logs
从日志开头截止到某个时间点的恢复:
mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码