MySQL 数据表恢复操作


一、恢复主库上的数据表

备份信息

  • 备份服务器 IP192.168.1.100
  • 主服务器 IP192.168.1.200
  • 备份根目录/alidata2/mysql_back/back_table/database_back/
  • 备份保留策略:保留最近 10 天的备份数据,文件存储格式以数据表字母开头。

备份目录结构示例

/alidata2/mysql_back/back_table/database_back/
├──adb/
│   ├── shujujiance-aabc-2022030102.tar.gz
│   ├── shujujiance-defg-2022030103.tar.gz
│   └── ...
├── def/
│   ├── mofangdata-xyz-2022030101.tar.gz
│   └── ...
└──qwe/
    └── ...

二、恢复流程

注意:执行 source 导入时,必须确保 SQL 文件位于当前服务器本机(即主服务器)上,不能使用远程路径。

步骤 1:登录备份服务器

使用 SSH 登录备份服务器(示例 IP:192.168.1.100),进入备份目录:

ssh root@192.168.1.100
cd /alidata2/mysql_back/back_table/database_back/

步骤 2:拷贝所需备份文件到临时目录

例如需要恢复 shujujiance 库下的 wxyz 表(备份文件名为 shujujiance-wxyz-2022030102.tar.gz),将其复制到 /root 下:

cp abc/xxxx-wxyz-2022030102.tar.gz /root/

步骤 3:解压备份文件

cd /root
tar xzf xxxx-wxyz-2022030102.tar.gz

解压后会得到对应的 SQL 文件,例如 xxxx-2022030103.sql

步骤 4:将 SQL 文件从备份服务器拷贝到主服务器

主服务器(示例 IP:192.168.1.200)上执行 scp 命令,从备份服务器拉取文件:

scp root@192.168.1.100:/root/xxxx-2022030103.sql ./

执行后,SQL 文件将保存在主服务器的当前目录下。

步骤 5:登录 MySQL 并切换到目标数据库

mysql -u root -p
USE mofangdata;   -- 替换为实际目标数据库

步骤 6:导入 SQL 文件

在 MySQL 命令行中执行:

source /当前目录/xxxx-2022030103.sql;

也可以使用绝对路径,例如:

source /home/user/xxxx-2022030103.sql;

步骤 7:校验数据

导入完成后,通过 SELECT 语句验证数据是否恢复完整,例如:

SELECT COUNT(*) FROM 目标表名;

或检查关键数据行。


注意事项

  1. 备份文件命名:备份文件通常包含数据库名、表名和时间戳,请根据实际需要选择正确的备份文件。
  2. 磁盘空间:确保主服务器有足够空间存放拷贝过来的 SQL 文件和导入后的数据。
  3. 导入大文件:若 SQL 文件较大,建议使用 mysql 命令直接导入,而非 source,例如:
    mysql -u root -p mofangdata < xxxx-2022030103.sql
    
  4. 权限与网络:确保主服务器能够通过 SSH 访问备份服务器,且备份服务器上的文件具有读取权限。

posted @ 2026-09-08 18:42  BeginnerY  阅读(3)  评论(0)    收藏  举报