为什么需要备份数据?
在生产环境中,我们的数据库可能会遇到各种意外,导致数据丢失,大致可以分为以下几类。
硬件故障软件故障自然灾害黑客攻击误操作 (占比最大)
因此,为了在数据丢失后恢复数据,我们需要定期对数据进行备份,并根据不同的应用场景定制数据备份策略。大致有几个参考值,我们可以根据这些值定制特定环境下的数据备份策略。
能够容忍丢失多少数据恢复数据需要多长时间需要恢复哪一些数据
数据的备份类型
的数据备份类型根据各自的特点主要分为以下几组。
完全备份部分备份完全备份指的是
备份整个数据集( 即整个数据库 )
、部分备份指的是
备份部分数据集(例如: 只备份一个表)
部分备份分为以下两种类型
增量备份差异备份增量备份指的是
备份自上一次备份以来(增量或完全)以来变化的数据
; 特点: 节约空间、还原麻烦差异备份指的是
备份自上一次完全备份以来变化的数据
特点: 浪费空间、还原比增量备份简单
示意图
MySQL备份数据的方式
在MySQl中,我们通常以几种方式备份数据。
热备份温备份冷备份热备份指的是当数据库进行备份时,
数据库的读写操作均不是受影响
温备份指的是当数据库进行备份时,
数据库的读操作可以执行, 但是不能执行写操作
冷备份指的是当数据库进行备份时,
数据库不能进行读写操作, 即数据库要下线
MySQL中不同的备份方式也要考虑存储引擎是否支持。
MyISAM热备 ×温备 √冷备 √InnoDB热备 √温备 √冷备 √我们在考虑完数据在备份时, 数据库的运行状态之后还需要考虑对于MySQL数据库中数据的备份方式物理备份一般就是
通过tar,cp等命令直接打包***数据库的数据文件
达到备份的效果逻辑备份一般就是
通过特定工具从数据库中导出数据并另存备份
(逻辑备份会丢失数据精度)物理备份逻辑备份
备份中要考虑的问题
在定制备份策略之前,我们仍然需要考虑一些问题。
我们要备份什么?
通常,我们需要备份的数据分为以下几种类型
数据二进制日志, InnoDB事务日志代码(存储过程、存储函数、触发器、事件调度器)服务器配置文件
备份工具
以下是一些常用的备份工具。
Mysqldump:逻辑备份工具,适用于所有存储引擎,支持InnoDB存储引擎的热备份、完全备份、部分备份、热备。
Cp、tar等归档和***工具:物理备份工具,适用于所有存储引擎,如冷备份、完全备份、部分备份等。
Lvm2快照:近乎热备,文件系统管理工具备份。
Mysqlhotcopy:名副其实的工具,几乎冷待机,只支持MyISAM存储引擎。
Xtrabackup:一个非常强大的InnoDB/XtraDB热备工具,支持完全备份和增量备份,由percona提供。
设计适当的备份策略
根据不同的场景,我们应该制定不同的备份策略来备份数据库。通常,备份策略如下
直接cp,tar***数据库文件
mysqldump+***BIN LOGS
lvm2快照+***BIN LOGS
xtrabackup
上述解决方案针对不同的场景。
如果数据量较小, 可以使用第一种方式, 直接***数据库文件如果数据量还行, 可以使用第二种方式, 先使用mysqldump对数据库进行完全备份, 然后定期备份BINARY LOG达到增量备份的效果如果数据量一般, 而又不过分影响业务运行, 可以使用第三种方式, 使用lvm2的快照对数据文件进行备份, 而后定期备份BINARY LOG达到增量备份的效果如果数据量很大, 而又不过分影响业务运行, 可以使用第四种方式, 使用xtrabackup进行完全备份后, 定期使用xtrabackup进行增量备份或差异备份
本文来自少年我念你投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/486550.html