从主库备份到数据导入
MySQL 备份恢复操作指南:从主库备份到数据导入
一套基于实际环境的数据库备份恢复流程,涵盖备份定位、文件传输、解压导入及数据校验,适用于误删数据或迁移场景。
前言
数据库备份是数据安全的最后一道防线。当需要恢复某个表的历史数据时,从备份服务器找回文件并导入到主库是运维人员的必修课。本文记录了从阿里云备份服务器(1.1.1.1)查找备份、拷贝、解压,再传输到主服务器(2.2.2.2)并导入 MySQL 的完整操作流程。
一、备份环境概览
| 项目 | 说明 |
|---|---|
| 备份服务器 IP | 1.1.1.1 |
| 备份目录 | /data/mysql_back/back_table/database_back/ |
| 备份保留策略 | 保留最近 10 天 |
| 备份文件命名 | 数据库名-标识-日期时间.tar.gz,例:test-wxyz-2022030102.tar.gz |
| 主服务器 IP | 2.2.2.2 |
| 常用数据库 | xxx、xxxx、xxxxx |
每个数据库对应一个子目录,如
xxx备份位于/data/mysql_back/back_table/database_back/xxx/。
二、恢复流程(六步走)
步骤 1:登录备份服务器并定位备份文件
ssh root@47.95.34.76
cd /data/mysql_back/back_table/database_back/xxx
ls -lh
- 找到需要恢复日期的
.tar.gz备份包,记下文件名。
步骤 2:拷贝备份到临时目录
cp test-wxyz-2022030102.tar.gz /root/
- 拷贝到
/root/便于操作,避免直接在备份目录解压。
步骤 3:解压并找到目标 SQL 文件
cd /root/
tar xzf test-wxyz-2022030102.tar.gz
ls
- 解压后会得到一批以表名开头的
.sql文件,找到你需要的表文件,例如xxxx-2022030103.sql。
步骤 4:将 SQL 文件从备份服务器传输到主服务器
在主服务器(2.2.2.2)上执行:
scp root@3.3.3.3:/home/xxx/xxxx-2022030103.sql ./
- 注意:示例中使用了内网 IP
3.3.3.3进行传输,实际可根据网络环境选择公网或内网。 - 如果备份服务器即为
1.1.1.1,可直接scp root@1.1.1.1/root/test-2022030103.sql ./
步骤 5:登录 MySQL 并切换数据库
mysql -u root -p
USE xxxx;
步骤 6:导入数据并校验
SOURCE test-2022030103.sql;
- 也可以使用绝对路径,如
SOURCE /Users/yqy/Desktop/ph_file.sql;(本机操作示例)。
校验数据:
- 导入完成后,执行
SELECT COUNT(*) FROM xxxx;确认记录数。 - 随机查询几条数据,检查字段完整性和时效。
三、注意事项与技巧
-
传输方式
- 如果两服务器在同一 VPC,优先使用内网 IP 传输,速度快且不产生公网流量费。
- 大文件推荐用
rsync断点续传,替代scp。
-
解压查看表名
可以使用tar tzf file.tar.gz不解压直接列出内容,提前确认需要的表文件。 -
备份有效期
备份仅保留 10 天,如需恢复更早的数据,应检查归档策略或考虑冷备。 -
导入性能
对于大表,SOURCE命令会逐行执行,耗时较长。可考虑mysql -u root -p database < file.sql方式,或开启事务加速。 -
生产操作务必谨慎
- 导入前确认目标表是否有同名表,避免误覆盖。
- 建议先在从库或测试环境验证备份可用性。

浙公网安备 33010602011771号