暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 8通过.ibd原始文件还原表数据到docker容器部署的数据库【测试成功】

巴韭特锁螺丝 2025-02-03
27
一、问题背景
    某项目存在单表数据量极大,通过SQL的方式导入数据库卡死,故考虑使用.ibd原始文件拷贝导入。
参考链接:https://www.cnblogs.com/xibuhaohao/articles/17932856.html
二、源端数据库操作
    通过 show global variables like "%datadir%";  查询数据路径,如果是docker容器部署则需要确认挂载路径。  
三、导入端数据库操作
  首先确认ibd文件的路径,将源ibd文件拷贝进来。
  查看之前ibd文件的权限和拥有者、确保权限所属用户所属组修改一致
    sudo chown systemd-coredump:input  ehs_factors_real_time_data.ibd
    sudo chmod 640 ehs_factors_real_time_data.ibd

     然后使用以下命令:

        1)先解除表空间占用执行完后,数据库文件下的.ibd文件会消失。

        2)再导入表空间刷新数据库,根据文件大小不同、等待时间不同,可以看到数据已经恢复。
      ALTER TABLE ehs_factors_real_time_data DISCARD TABLESPACE;
      ALTER TABLE `ylehs`.`ehs_factors_real_time_data` IMPORT TABLESPACE;

      再确认数据库总行数是否发生变化:

        SELECT 
            (SELECT COUNT(*FROM ehs_factors_real_time_data) AS ehs_factors_real_time_data_count,
            (SELECT COUNT(*FROM ehs_factors_data) AS ehs_factors_data_count;



        文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论