mysql ibdata1文件被undo log日志占了几百个G。-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

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

展开
收起
我是小助手 2019-06-06 13:59:08 3149 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
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载