目录
引言
无论你是IT专业人士还是初次接触数据库管理的初学者,理解并掌握数据库备份技术都是非常关键的。备份不仅能够防止因硬件故障、软件错误、人为误操作等因素造成的损失,也是灾难恢复计划中的基石。
一、MySQL数据库备份的重要性
(一)数据丢失的原因
在生产环境中造成数据丢失的原因可能有很多种:
人为操作:在输入数据是命令错误导致数据丢失。
磁盘故障:比如由于物理磨损,导致磁盘出现坏道,造成数据丢失
服务BUG:由于数据量过大,导致MySQL服务出现逻辑错误,造成数据丢失
物理损坏:硬盘被盗、服务器物理损毁等
(二)数据丢失的后果
数据是企业的核心资产,一次意外的数据丢失可能导致业务停滞、客户信任度下降甚至法律纠纷。MySQL数据库备份就像是给企业数据买了一份保险,能够在危机时刻快速恢复业务运行。
二、MySQL备份类型
数据备份的类型可根据不同的标准进行分类
(一)根据数据库状态
根据备份时数据库的状态分为:
热备份:在数据库仍在运行的情况下进行备份,不影响正常的业务操作,适用于支持在线备份的数据库系统。
冷备份:在数据库完全关闭状态下进行的备份,这时的数据是静态的,不会发生变化,但会导致业务中断。
温备份:介于热备份与冷备份之间,数据库可能只允许读操作而不允许写操作,或者部分数据库实例处于待机模式。
(二)根据数据的完整性
根据备份数据时,数据的完整性,即备份策略可分为:
完整备份:顾名思义,就是备份数据库的全部数据。这是最直观也最全面的备份方式,适合数据量不大或者初期备份时使用。
增量备份:只备份自上次备份以来发生改变的数据。这种方式节省空间,但恢复时需要依次恢复所有增量备份。
差异备份:备份自上次完整备份以来所有变化的数据。相比增量备份,恢复时只需要最后一次完整备份和最后一次差异备份即可。
(三)根据存储介质
磁盘备份:传统的备份方式,用于大规模数据备份,现在依然在大型企业中有应用。
可移动存储备份:如U盘、光盘等。
本机多硬盘备份:利用计算机内部的多个硬盘进行备份
网络备份:通过网络将数据备份至远程服务器或其他网络存储设备。
(四)常见的备份方式
1.冷备份
数据库处于关闭状态,数据不会发生改变,从而保证数据的一致性,备份速度快,且不会存在任何中间状态,方法比较简单,虽然简单,但它只能用于数据库完全关闭时的状态恢复,无法做到实时备份
2.专用备份工具
mysqldump是MySQL自带的一个命令行工具,它可以生成数据库的SQL脚本,其中包括了创建表结构、插入数据等内容。
3.二进制日志备份
二进制日志记录了数据库的所有更改,可用于进行基于时间点的恢复或主从复制。启用二进制日志并在进行完整备份后,定期备份二进制日志文件,可以实现增量备份的效果。
4.第三方工具备份
对于InnoDB存储引擎的大规模数据库,可以使用Percona Xtrabackup工具进行热备份,它能实现在线备份,不影响数据库的正常使用。
MEB是Oracle官方提供的付费备份工具,支持在线热备份,适合大规模、高负载的生产环境。
三、数据的备份与恢复
(一)物理冷备份
首先关闭MySQL服务:systemctl stop mysqld.service
使用tar命令将文件压缩,而后进行解压恢复
使用tar命令将数据库文件进行压缩保存
将该数据库删除,模拟数据文件丢失
使用命令解压置MySQL的data目录下进行恢复
开启服务进行查看数据库文件
对于整个数据库系统同理,将mysql目录下的data目录进行压缩打包备份,而后进行恢复
删除数据库文件,模拟系统损坏
数据恢复后启动服务登录
(二)mysqldump工具备份与恢复
mysqldump工具备份与恢复严格意义上来说属于温备份,它可以在数据库服务运行的状态下进行备份,通过将备份文件中的SQL语句导入MySQL服务中来重新执行SQL语句,达到备份效果
首先使用mysql -u username -p [password] -e 'SQL语句'来查看数据库的信息
-e:指令作用是在shell环境下不进入mysql服务,直接执行SQL语句,一般用于脚本文件
查看所有数据库名称
查看work库下的所有表