开发者社区> 问答> 正文

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

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

展开
收起
我是小助手 2019-06-06 13:59:08 3780 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 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像