开发者社区> 问答> 正文

mysql ibdata1文件被undo log日志占了几百个G。

有没有什么办法把空间清理出来。数据库有1T的数据量用mysqldump导出要花太多时间了。有没有什么办法可以直接清理ibdata1的办法。

展开
收起
我是小助手 2019-06-06 13:59:08 3783 0
1 条回答
写回答
取消 提交回答
  • 你需要将ibdata1拆分,每个表一个undo log和redo log
    主要是修改my.cnf中的这个配置

    innodb_file_per_table=1  

    具体操作步骤如下(谨慎操作,最好现在开发环境测试一下)
    一、备份数据库

    mysqldump -q -umysql -ppassword --add-drop-table --all-databases > all.sql

    之后停止服务
    二、修改mysql配置文件

    innodb_file_per_table=1 

    三、删除原数据文件,包括 ibdata1、ib_logfile、data目录下数据库文件
    四、还原数据库

    mysql -uusername -pyourpassword < all.sql
    2019-07-17 23:36:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像