怎么缩小ibdata1的大小???

Guizhi 2008-04-17 11:17:32
mysql 数据库,版本是 5.1.22

因为表是InnoDB型,所以数据都存在 ibdata1 上面了。

现在发现删除了大量数据后, ibdata1 的大小都不会减小。

因为现场数据库是尽量不重启的,数据库的记录很多,达到1000W。
如果是要重建数据库,基本上要好几个小时,所以这种方法尽可能不用。

请问有什么办法可以缩小 ibdata1 的大小呢?

另外,我把表从InnoDB型转成 MyISAM型,发现ibdata1 大小不变。这该怎么办?

谢谢!!!!
...全文
2299 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guizhi 2008-04-23
  • 打赏
  • 举报
回复
最后的解决办法是: 准备另一台机器,把数据迁移过去,然后把系统切换到新的数据库,再对旧数据库进行处理。

浪费了一个星期的时间啊!!!!!!

Guizhi 2008-04-23
  • 打赏
  • 举报
回复
谢谢了。最后搞定了。

删除ibdata1的方法:

1, 把所有的表类型都转成 MyISAM 后, 停止数据库服务,删除 ibdata1文件,再重起.
2, 把数据库用 mysqldump 出来后, 再删除 数据库, 停止数据库服务, 删除ibdata1文件,再重起,再重新导入数据.

两种方法,都需要大量的硬盘,以及时间比较长.

比较遗憾的是,mysql没有提供像 sqlserver 那种收缩数据库的功能,必须要停止数据库。

这对于生产线上的数据库,是件很痛苦的过程。
懒得去死 2008-04-22
  • 打赏
  • 举报
回复
导出数据,
删除IBDATA
重新导入数据。
Guizhi 2008-04-22
  • 打赏
  • 举报
回复
to 骑着上帝看戏

不行,必须重构,或者添加新的DATA文件。

======================================

请问该怎么重构???


Guizhi 2008-04-22
  • 打赏
  • 举报
回复
还没有大侠出手啊?????
iihero_ 2008-04-18
  • 打赏
  • 举报
回复
可以向Oracle公司提出这个new feature,他们有兴趣,说不定会为你添加这个特性。
懒得去死 2008-04-18
  • 打赏
  • 举报
回复
不行,必须重构,或者添加新的DATA文件。
CathySun118 2008-04-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20060216/10/4558825.html
Guizhi 2008-04-17
  • 打赏
  • 举报
回复
我查过GOOGLE,发现都是需要重建数据库,手册上也没有说,或许是我没看到,但我都通看了几遍的了。

这件事情比较急,因为是生产现场,数据量比较大。
Guizhi 2008-04-17
  • 打赏
  • 举报
回复
楼上的,不对啊,你提供的资料是针对MyISAM的,跟ibdata1没关系啊。

还是谢谢啊

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧