【赵渝强老师】执行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 |
+----------+
相关推荐
这个DBA有点耶5 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构
胡写代码5 小时前
数据库审计字段,别再每张表各写一套了——我统一成这 6 个字段
数据库
SelectDB9 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence10 小时前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头10 小时前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
草莓熊Lotso12 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
煎饼皮皮侠13 小时前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis
东风破_19 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
九皇叔叔20 小时前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构
橙子家21 小时前
OSS 文件上传的几个风险点和解决方案
数据库