数据库空间已满导致数据无法入库;经过数据库清理,但是占用的空间就是不能释放(收缩数据库时提示进程死锁,百度了很多方法也没有成功)
服务器情况简介如下:IBM3850 、内存8GB、操作系统为Win 2003 Server 、数据库SQL Server 2000 + SP4 、整个磁盘阵列已经12块硬盘已经全部装满,短期内增加空间不现实。
求大牛指点迷津!

解决方案 »

  1.   

    sql2000还真没用过简单的办法就是先删除一部分现有的不用的数据(当然要备份出来)腾出来一部分表空间
      

  2.   

    首先解决你的block问题
    然后再去收缩
    如果效果不明显 可以写一个循环执行,因为有些资源正在被使用
    declare @i int=1
    while @i<500
    begin
    DBCC SHRINKFILE(1,100)
    DBCC SHRINKFILE(2,0)
    set @i=@i+1
    waitfor delay '00:00:10'
    end
    还有就是用DBCC CHECKDB()检查数据库是否存在问题
    使用dbcc checkdb 的repair_rebuild参数:不丢失数据
    不行的话使用repair_allow_data_loss :有可能丢失数据