2000数据库日志过大,磁盘空间不够了,因此想通过backup log后去shrinkfile,但是在操作时,发现系统提示:该日志未截断,因为其开始处的记录是挂起的复制操作。请确保日志读取器代理正在运行,或使用 sp_repldone 将事务标记为分布式的。因此想再通过exec sp_repldone @xesid=null,@xact_seqno=null,@numtrans=0,@time=0,@reset=1;来标记成已发布,可惜在执行过程中,又提示:数据库未发布。最后在复制上禁用了服务器发布,并重启了数据库,系统提示依旧,无法清除日志。
目前只能先在另一个略有空间的磁盘上增加了一个日志文件,限制大小,确保应用可用,但终究不是办法啊~
求救,目前该如何处理?难道真的只能冒险分离再附加?希望能有停止复制、正常截断的方法,谢谢~

解决方案 »

  1.   

    http://blog.csdn.net/xubin224/article/details/5872494看看能不能用
      

  2.   

    如果不能冒险分离再附加的话,楼主看看这个能帮到你不  sql server 2000数据库日志清除
      

  3.   

    十分感谢DBA_Huangzj,sp_removedbreplication @dbname='db1616'可以成功运行,但是状况依旧,数据库日志依然不能截断,复制依然不能停止,而且分离数据库重新附加时必须有LDF文件,否则就无法附加,报错信息为:错误 1813: 未能打开新数据库 'db1616'。CREATE DATABASE 将终止。
    设备激活错误。物理文件名 'E:\data\db1616_log.LDF' 可能有误。
    db1616.mdb明明就是本库下创建的数据库文件,却无法附加并自动生成log文件,不知是否与复制有关。
    由于是生产系统,在没有硬件条件的时候,没敢做新建库并重建log的方法,不知道还有什么更安全的方法?
      

  4.   

    有没有应急系统或者备用的数据库,在使用低峰期先给用上保证业务。你现在无法确认原因,而你现在日志空间已经报警,还是尽早重新建库、重建LOG先解决吧
      

  5.   

    有没有试过将数据库恢复模式变为SIMPLE?然后再收缩