admin 管理员组

文章数量: 887021


2024年1月19日发(作者:json数据进行拆分)

数据库的日志已满。请备份该数据库的事务日志以释放一些日志空间。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: eption: 数据库 '***' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。

源错误:

[没有相关的源行]

源文件: c:meworkv2.0.50727Temporary

Filesroot72899b79f8dff11cApp_Web_

行: 0

可能引起的原因是:统计,排序这类操作太多了,太频繁了。

解决办法:还是要优化语句。

在tempdb库属性中,在[企业管理器]中把[事务日志]的[文件属性]中的[文件自动增长]前面打上钩,并且查看一下你的日志文件所在磁盘空间够不够了。如果不够,备份后换个地方存

[注:tempdb你数据库名称。]

复杂的方法,压缩日志及数据库文件如下:

1. 清空日志

DUMP TRANSACTION 数据库名 WITH NO_LOG

2. 截断事务日志

BACKUP LOG 数据库名 WITH NO_LOG

3. 收缩数据库文件(如果不压缩,数据库的文件不会减小)

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--

 选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

 选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

收缩数据库:DBCC SHRINKDATABASE (数据库名)

收缩指定数据文件:DBCC SHRINKFILE (1)

1是文件号,可以通过这个语句查询到:Select * from sysfiles

4. 为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)

 分离数据库

企业管理器--服务器--数据库--右键--分离数据库

( EXECsp_detach_db @dbname = ’pubs‘ )

在我的电脑中删除LOG文件

附加数据库

企业管理器--服务器--数据库--右键--附加数据库

( EXECsp_attach_single_file_db@dbname = ‘pubs’,

@physname = ’c:Program FilesMicrosoft

‘ )

此法将生成新的LOG,大小只有500多K

5. 为了以后能自动收缩,做如下设置

企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:

EXECsp_dboption’数据库名‘, ’autoshrink‘, ’TRUE‘

6. 如果想以后不让它日志增长得太大

企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:

alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

特别注意:

简单的方法,本人屡试不爽,建议大家使用。

1. 右建数据库属性窗口--故障还原模型--设为简单

2. 右建数据库所有任务--收缩数据库

3. 右建数据库属性窗口--故障还原模型--设为大容量日志记录

请按步骤进行,未进行前面的步骤,请不要做后面的步骤

否则可能损坏你的数据库.

一般不建议做第4,6两步

第4步不安全,有可能损坏数据库或丢失数据

第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.


本文标签: 数据库 日志 收缩 文件 进行