码迷,mamicode.com
首页 > 数据库 > 详细

SQL SERVER 数据日志太大,磁盘没有空间,直接删除数据库日志后,显示 恢复挂起。

时间:2014-10-20 14:54:19      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:ar   使用   文件   数据   div   on   问题   line   as   

问题简述:

sharepoint的某个站点对应的数据库日志太大了,想把日志瘦身。于是我把整个数据库分离,然后附加数据库来重新生成日志文件。谁知道在附加的时候,居然报错"附加数据库报错:由于数据库没有完全关闭,无法重新生成日志"

问题原因:原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误。

处理办法:

一、把分离之前的日志文件也复制过来一齐附加嘛
从错误提示看, 应该是你的日志文件中还包括有用的数据, 这些数据还没有正确写回数据文件, 导致附加失败.

二、这种情况最好能找回之前的日志文件, 如果找不到, 应急的方法是新建一个数据库, 将数据库设置为 offline, 然后用附加失败的数据文件替换掉新建库的数据文件, 然后将数据库设置为应急恢复模式, 这样一般就能读数据了
ALTER DATABASE DB_name SET EMERGENCY

数据库可以读之后, 你可以尝试再将其设置为 ONLINE 模式, 如果能成功, 那再 DBCC CHECKDB 一次, 确认没有问题
如果无法ONLINE, 那么你大概就只好新建库, 然后把应急模式的库的数据导到新建的库了

特别说明:应该使用压缩(shrinking)的办法来处理。

SQL SERVER 数据日志太大,磁盘没有空间,直接删除数据库日志后,显示 恢复挂起。

标签:ar   使用   文件   数据   div   on   问题   line   as   

原文地址:http://www.cnblogs.com/flowxp/p/4037038.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!