一、备份介绍
(1)数据丢失的原因:硬件故障
软件故障
自然灾害
黑客攻击
误操作(占比最大)
(2)指定数据备份策略的参考值:能够容忍丢失多少数据
恢复数据需要多长时间
需要恢复哪一些数据
二、备份类型
(1)mysql备份数据的方式:
热备份:当数据库进行备份时,数据库的读写操作不受影响。
温备份:当数据库进行备份时,数据库的读操作可以执行,但是不能执行写操作。
冷备份:当数据库进行备份时,数据库不能进行读写操作,即数据库要下线。
(2)mysql的存储引擎是否支持热备等
MYISAM | InnoDM | |
热备 | × | √ |
温备 | √ | √ |
冷备 | √ | √
|
(3)MYSQL数据库中数据的备份方式
备份方式 | 解释 |
物理备份 | 通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果 |
逻辑备份 | 通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度) |
(4)逻辑备份
①、解释:备份时建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
②、逻辑备份的优点:
备份速度取决于不同的存储引擎。
物理备份的还原速度非常快。但是物理备份的最小粒度只能做到表。
逻辑备份的保存结构通常都是纯ASCII的,所以可以使用文本处理工具来处理
逻辑备份有非常强的兼容性,而物理备份对版本的要求非常高。
逻辑备份对保持数据的安全有保证。
③、逻辑备份的缺点
逻辑备份要对RDBMS产生额外的压力,而裸备份无压力。
逻辑备份的结果可能会比源文件大。
逻辑备份可能会丢失浮点数的精度信息。
(5)物理备份
解释:直接复制数据库文件,适用于大型数据库,不受存储引擎的限制,但不可复制到异构系统中。
(6)MYSQL备份内容
数据库日志文件(比如事务日志,二进制日志)
存储过程、存储函数、触发器、
配置文件(** 各个配置文件都需要备份)
用于实现数据库备份的脚本,数据库自身清理的crontab1等
建议:(/etc/my.cnf)
《1》确认备份内容
一般情况下,需要备份的数据如下:
数据,二进制文件、InnoDB事务日志、代码(存储过程、存储函数、触发器、事件调度器)、服务器配置文件。
《2》明确备份工具
常用的备份工具:
mysqldump:逻辑备份工具,适用于所有的存储引擎,支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备。
cp、tar等归档复制工具,适用于所有存储引擎,冷备,完全备份,部分备份。
lvm2 snapshot:几乎热备,借助文件系统管理工具进行备份。
mysqlhotcopy : 几乎冷备,仅支持MyISAM存储引擎
xtrabackup:热备工具,支持完全备份、增量备份。
《3》设计备份策略
备份方式:(1)直接cp、tar复制数据库文件(数据量较小)
(2)mysqldump + 复制bin logs(数据量还行)
(3)lvm2快照+ 复制bin logs(数据量一般,又不过分影响业务运行)
(4)xtrbackup(数据量一般,又不过分影响业务运行)
三、模拟全量与二进制增量备份数据恢复实例
(1)数据库备份
①、备份
[root@localhost ~]# mysqldump -uroot -pCHUYEchuye@123 --single-transaction --master-data=2 company > /tmp/company_`date +%F-%H-%M`.sql #直接备份
[root@localhost ~]# mysqldump -uroot -pCHUYEchuye@123 --single-transaction --master-data=2 company > /tmp/company_`date +%F-%H-%M`.gz #备份并压缩
[root@localhost ~]# mkdir /backup
[root@localhost ~]# mysqldump -uroot -pCHUYEchuye@123 --routines --events --triggers --master-data=2 --flush-logs --all-databases > /backup/all_`date +%F`.sql #备份所有的数据库
②、数据库恢复
[root@localhost ~]# mysql -uroot -pCHUYEchuye@123 -e 'create database test'
[root@localhost ~]# mysql -uroot -pCHUYEchuye@123 test</tmp/company_2020-06-12-01-36.sql
(2) mysqldump全量备份 + mysqlbinlog二进制日志增量备份
(3)模拟凌晨12:00数据库增量备份
(4)复制数据文件
①、停止服务
②、备份数据文件