1、数据备份概述
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。
数据丢失的场景举例:
人为操作失误造成某些数据被误操作
软件BUG造成部分数据或全部数据丢失
硬件故障造成数据库部分数据或全部数据丢失
安全漏洞被入侵数据恶意破坏
1.1衡量备份恢复重要指标
衡量备份恢复有两个重要的指标:
恢复点目标(RPO)
恢复点目标是指数据能恢复到什么程度
恢复时间目标(RTO)
恢复时间目标是指数据恢复需要多长时间
1.2数据库备份分类
数据库备份方式分很多种,从物理与逻辑的角度来看,备份可分为:
物理备份:指对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)。
冷备份:在关闭数据库时进行的备份操作,能够较好地保证数据库的完整性。
热备份:在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件。
逻辑备份:指对数据库逻辑组件(如"表"等数据库对象)的备份。
数据库的备份从策略角度来看,备份可分为以下几类:
完全备份:每次对数据进行完整的备份。可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,做一次完全备份的周期要长些。
差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库部分的内容。它比最初的完全备份小,因为只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。
增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。
2、MySQL备份工具
2.1mysqldump备份工具
MySQL官方提供了Mysqldump逻辑备份工具,它的备份原理是通过协议连接到MySQL数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert语句,当我们需要还原这些数据时,只要执行这些insert语句,即可将对应的数据还原。
#mysqldump命令语法:mysqldump[选项]数据库名[表名]备份文件名#数据恢复mysql[选项]数据库名[表名]备份文件名source备份文件名
选项列表:
2.2Xtrabackup备份工具
XtraBackup(PXB)工具是Percona公司用perl语言开发的一个用于MySQL数据库物理热备的备份工具,能够非常快速地备份与恢复mysql数据库,且支持在线热备份(备份时不影响数据读写)。
Xtrabackup中包含两个工具:
xtrabackup:用于热备份innodb,xtradb引擎表的工具,不能备份其他表。
innobackupex:提供了用于myisam(会锁表)和innodb引擎,及混合使用引擎备份的能力。
Xtrabackup的优点:
备份速度快,物理备份可靠
备份过程不会打断正在执行的事务(无需锁表)
能够基于压缩等功能节约磁盘空间和流量
自动备份校验
还原速度快
可以流传,将备份传输到另外一台机器上
在不增加服务器负载的情况备份数据
支持增量备份
#语法:xtrabackup
innobackupex[--defaults-file=#][--backup
--prepare
--copy-back
--move-back][OPTIONS]
Xtrabackup工具备份常用选项:
#下载安装Xtrabackup备份工具[root
localhost~]#wget