从主库备份到数据导入

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
常用数据库 xxxxxxxxxxxx

每个数据库对应一个子目录,如 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; 确认记录数。
  • 随机查询几条数据,检查字段完整性和时效。

三、注意事项与技巧

  1. 传输方式

    • 如果两服务器在同一 VPC,优先使用内网 IP 传输,速度快且不产生公网流量费。
    • 大文件推荐用 rsync 断点续传,替代 scp
  2. 解压查看表名
    可以使用 tar tzf file.tar.gz 不解压直接列出内容,提前确认需要的表文件。

  3. 备份有效期
    备份仅保留 10 天,如需恢复更早的数据,应检查归档策略或考虑冷备。

  4. 导入性能
    对于大表,SOURCE 命令会逐行执行,耗时较长。可考虑 mysql -u root -p database < file.sql 方式,或开启事务加速。

  5. 生产操作务必谨慎

    • 导入前确认目标表是否有同名表,避免误覆盖。
    • 建议先在从库或测试环境验证备份可用性。

posted @ 2026-05-19 16:43  BeginnerY  阅读(10)  评论(0)    收藏  举报