《解决数据库日志已满》由会员分享,可在线阅读,更多相关《解决数据库日志已满(2页珍藏版)》请在金锄头文库上搜索。
1、数据库的日志已满。请备份该数据库的事务日志以释放一些日志空间。数据库的日志已满。请备份该数据库的事务日志以释放一些日志空间。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.Data.SqlClient.SqlException: 数据库 * 的日志已满。请备份该数据库的事务日志以释放一些日志空间。源错误:没有相关的源行源文件: c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesroot72899b79f8df
2、f11cApp_Web_uff-9q5u.28.cs 行: 0 可能引起的原因是:统计,排序这类操作太多了,太频繁了。 解决办法:还是要优化语句。 在 tempdb 库属性中,在企业管理器中把事务日志的 文件属性 中的 文件自动增长 前面打上钩,并且查看一下你的日志文件所在磁盘空间够不够了。如果不够,备份后换个地方存注:tempdb 你数据库名称。复杂的方法,压缩日志及数据库文件如下:复杂的方法,压缩日志及数据库文件如下: 1.清空日志DUMP TRANSACTION 数据库名 WITH NO_LOG 2.截断事务日志BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如
3、果不压缩,数据库的文件不会减小)企业管理器-右键你要压缩的数据库-所有任务-收缩数据库-收缩文件-选择日志文件-在收缩方式里选择收缩至 XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了选择数据文件-在收缩方式里选择收缩至 XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了收缩数据库:DBCC SHRINKDATABASE (数据库名)收缩指定数据文件:DBCC SHRINKFILE (1)1 是文件号,可以通过这个语句查询到:Select * from sysfiles4.为了最大化的缩小日志文件(如果是 sql 7.0,这步只能在查询分析器中
4、进行)分离数据库企业管理器-服务器-数据库-右键-分离数据库( EXEC sp_detach_db dbname = pubs )在我的电脑中删除 LOG 文件附加数据库企业管理器-服务器-数据库-右键-附加数据库( EXEC sp_attach_single_file_db dbname = pubs, physname = c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf )此法将生成新的 LOG,大小只有 500 多 K5.为了以后能自动收缩,做如下设置企业管理器-服务器-右键数据库-属性-选项-选择“自动收缩“-SQL 语句设置方
5、式:EXEC sp_dboption 数据库名, autoshrink, TRUE6.如果想以后不让它日志增长得太大企业管理器-服务器-右键数据库-属性-事务日志-将文件增长限制为 xM(x 是你允许的最大数据文件大小)-SQL 语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意:特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第 4,6 两步第 4 步不安全,有可能损坏数据库或丢失数据第 6 步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.简单的方法,本人屡试不爽,建议大家使用。简单的方法,本人屡试不爽,建议大家使用。1.右建数据库属性窗口-故障还原模型-设为简单2.右建数据库所有任务-收缩数据库3.右建数据库属性窗口-故障还原模型-设为大容量日志记录