err.number -2147217900错误,SQL数据库 ‘XXX’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间
今天一早,一到公司,被同事告知内部的一个数据库系统发生了问题,更新数据的时候提示失败。
于是开始着手处理,先是找到发生错误的地方,使用输出语句输出了错误Err.number,错误代码为-2147217900,然后又输出了发生错误的SQL语句,复制到查询分析器中执行,被告知错误为:数据库 ‘XXX’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
原来是事务日志已满。
解决办法:
在SQL查询分析器中,分别运行以下两句(XXX为数据库名)。
backup log XXX with no_log 截断事务日志
DBCC SHRINKDATABASE(XXX) 收缩数据库(如果数据库较大,该语句需要运行一段时间,1.8G的库运行了35秒)
执行完毕即可。
一般来说:在数据库中插入大量数据或者更改字段属性时,也有可能提示这种错误。
Err.number -2147217900
数据库 ‘XXX’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
这时只要在查询分析器中运行:
–截断事务日志
backup log 数据库名 with no_log
–收缩数据库
dbcc shrinkdatabase (数据库名)
就可以解决问题。
如果还不可以,尝试用下面的方法解决:
将数据库的故障恢复模型设为“简单”,并选上“自动收缩”,默认是“完全”。
再不可,继续尝试:
将事务日志设置为:文件增长不受限制,操作完再改回来。