【赵渝强老师】执行MySQL的冷备份与冷恢复

冷备份是指发生在数据库已经正常关闭的情况下进行的备份。由于此时数据库已经关闭,通过冷备份可以将数据库的关键性文件拷贝到另外存储位置。冷备份因为只是拷贝文件,因此备份的速度非常快。在执行恢复时,只需将文件再拷贝回去就可以很容易恢复到某个时间点上。冷备份的最大缺点在于在冷备份过程中,数据库必须是关闭状态,不能提供外部的访问。

在了解到了基础的知识以后,这里将通过一个简单的示例来演示如何操作MySQL数据库完成数据的冷备份与冷恢复。

视频讲解如下:

执行MySQL的冷备份与冷恢复
【赵渝强老师】执行MySQL的冷备份与冷恢复

提示:下面的示例演示的是MySQL的冷备份与恢复,并以员工表(emp)中的员工数据为例。

(1)确定员工表的数据条数。

sql 复制代码
mysql> select count(*) from emp;
输出的信息如下:
+----------+
| count(*) |
+----------+
|       14 |
+----------+

(2)退出MySQL命令行工具,再执行下面的语句停止MySQL

powershell 复制代码
mysqladmin -uroot -pWelcome_1 shutdown

(3)创建MySQL备份目录

powershell 复制代码
mkdir -p /databackup/cold/

(4)使用tar命令执行冷备份将整个MySQL的目录进行备份。

powershell 复制代码
cd /usr/local
tar -cvzf /databackup/cold/mysql.tar.gz mysql/

输出的信息如下:
mysql/
mysql/bin/
mysql/bin/mysql
......
mysql/lib/
mysql/lib/libmysqlclient.a
mysql/lib/libmysqlservices.a
mysql/lib/pkgconfig/
......
mysql/data/demo1/
......
mysql/data/demo1/emp.ibd
mysql/data/demo1/indextable1.ibd
......
mysql/data/binlog.000017
mysql/data/binlog.000011
mysql/data/binlog.000013

提示:从tar命令输出的信息可以看出,该命令将整个mysql目录进行了打包并将打包后的文件放到了/databackup/cold/目录下。

(5)模拟数据库出现错误,以测试冷备的数据是否能够进行恢复。

powershell 复制代码
rm -rf /usr/local/mysql/

(6)重新启动MySQL,会发现MySQL服务可以正常启动。

powershell 复制代码
systemctl start mysqld

输出的信息如下:
mysqld.service - LSB: start and stop MySQL
 Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
 Active: active (exited) since Sat 2022-02-26 22:30:47 CST;
   Docs: man:systemd-sysv-generator(8)

(7)尝试登录MySQL。

powershell 复制代码
mysql -uroot -pWelcome_1

将出现下面的错误信息:
-bash: /usr/local/mysql/bin/mysql: No such file or directory

(8)停止MySQL服务,并尝试使用文件/databackup/cold/mysql.tar.gz来进行恢复。

powershell 复制代码
systemctl stop mysqld
tar -zxvf /databackup/cold/mysql.tar.gz -C /usr/local/
systemctl start mysqld

(9)登录MySQL,检查数据是否恢复。

sql 复制代码
mysql -uroot -pWelcome_1
mysql> use demo1;
mysql> select count(*) from emp;

输出的信息如下:
+----------+
| count(*) |
+----------+
|       14 |
+----------+
相关推荐
GUIQU.1 分钟前
【node.js】数据库与存储
数据库·node.js
一勺菠萝丶1 小时前
Redis实现分布式锁的进阶版:Redisson实战指南
数据库·redis·分布式
Lucifer三思而后行1 小时前
OGGMA 21c 微服务 (MySQL) 安装避坑指南
mysql·adb·微服务
星辰离彬2 小时前
线上 Linux 环境 MySQL 磁盘 IO 高负载深度排查与性能优化实战
linux·运维·服务器·数据库·mysql·性能优化
Lao A(zhou liang)的菜园2 小时前
Oracle BUFFER CACHE内存不足的优化思路
数据库·oracle
伍六星2 小时前
基于JDBC的信息管理系统,那么什么是JDBC呢?
java·数据库·后端·jdbc·数据库连接
嘵奇3 小时前
AliSQL:阿里巴巴开源数据库的技术革新与应用实践
数据库·开源
声声codeGrandMaster6 小时前
Django之验证码功能
数据库·后端·python·django
好想有猫猫7 小时前
【Redis】List 列表
数据库·c++·redis·分布式·缓存·list
日日行不惧千万里9 小时前
数据库故障排查指南
网络·数据库·oracle