本帖最后由 飞鸿无痕 于 2011-11-24 10:11 编辑 大家好!昨天用脚本在线上删除了8亿多的数据,需要回收表空间,但是表比较大,数据库不能停机。 数据库环境:mysql 5.1.50 ,单表16亿左右记录,分了20个区,innodb引擎,为了保证数据的安全还有一个从的服务器做数据备份。 目前我知道的有两种方式回收表空间: 1、备份出表然后drop掉那个表,重新建表导入数据。这种方式停机时间太长首先忽略。 2、采用alter table table engine=I...
ORACLE9i数据库 有一个表空间TBS_DOC,使用率达到了99%,我删除了该表空间中比较大的表的部分数据。 但是TBS_DOC表空间的使用率并没有下来,我以为可能是没有回收,但是在往表中插入数据还是报错:ora-1653。 请问这是怎么回事?怎样解决?谢谢!
SQL Server使用中有个这样的问题: 表的数据量没有大量增长,但数据库增长的迅速。 重新导入到新数据库后空间缩的很小。 类似于Oracle中HWM的现象,有人知道怎么解决这个问题么?
:D Informix对数据表的管理方式较为特殊,当数据量增加时,表所占用的磁盘空间随之增加;但数据记录被删除时,原先所占用的空间暂不释放,依然由该表所控制,作为日后增加记录时使用。为提高系统的性能及有关各表的查询速度,应及时回收这种“空闲”的磁盘空间。 使用bcheck -s命令可回收索引文件的空间,其中-s 选项的作用是重新估算索引文件的大小。要同时回收数据文件与索引文件的空间,可让DBMS(数据库管理系统)去...
test表有5000条记录 SELECT * FROM DBA_EXTENTS where segment_name='TEST' 查询发现占用了18个extent delete from test; commit; alter table TEST deallocate unused; 再次查询DBA_EXTENTS ,还是占用18个extent why???
test表有5000条记录 SELECT * FROM DBA_EXTENTS where segment_name='TEST' 查询发现占用了18个extent delete from test; commit; alter table TEST deallocate unused; 再次查询DBA_EXTENTS ,还是占用18个extent why???
WinXp下安装MySql5.0.18,建了一个数据库,装入3个G的数据,现删除表或数据后,如何回收磁盘空间? 配置MySql时使用InnoDB表空间,数据文件ibdata1有3.2G,删除数据库后也不见减小。请高手指点。