SQL Server事务日志被填满的原因是什么

SQL Server事务日志被填满的原因是什么,第1张

错误描述:数据库事务日志已满。若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_desc 列 。

首先引入一下事务日志的概念

事务日志是一个与数据库文件分开的文件。它存储对数据库进行的所有更改,并全部记录插入、更新、删除、提交、回退和数据库模式变化。事务日志还称作前滚日志或重做日志。

事务日志是备份和恢复的重要组件,也是使用 SQL Remote 或 [复制代理] 复制数据所必需的。

在缺省情况下,所有数据库都使用事务日志。事务日志的使用是可选的,但是,除非您因特殊原因而不使用,否则您应始终使用它。运行带有事务日志的数据库可提供更强的故障保护功能、更好的性能以及数据复制功能。

引发异常的原因:

a.未提交的事务

b.非常大的事务

c. *** 作:DBCC DBREINDEX 和 CREATE INDEX

d.在从事务日志备份还原时

e.客户端应用程序不处理所有结果

f.查询在事务日志完成扩展之前超时,您收到假的“Log Full”错误消息

g.未复制的事务

解决办法:

1.释放磁盘空间(菜鸟适用);

2.把数据库移到内存充足的磁盘(原理同上);

3.清空日志:DUMP TRANSACTION 库名 WITH NO_LOG;

4.截断事务日志:BACKUP LOG 库名 WITH NO_LOG;

1、你设置了日志文件的最大数,数据库的恢复模式是完整恢复模式,所有的针对数据库的改动都会记录到日志,不仅仅是你的改动数据库,数据库本身的 *** 作也有记录到日志,所以,日志文件才会不断增长。

2、那是因为大部分的电脑上的数据库,基本没怎么变过,但生产用的数据库经常变动,所以日志记录也变得巨大,我见过数据库200MB,但是日志文件50GB,因为本来数据库有10GB,因为测试需要删除了大部分的数据,结果导致日志文件增长到了50GB。

3、定时备份日志并收缩日志文件。

4、通过备份日志,并收缩日志文件,这个语句你自己百度。

5、日志是一个以事务编号连续的记录,比如,我第一次备份的日志事务编号为1-1000,那么日志就会被截断,并从1001开始,之后的日志备份就从1001开始了,所以,初始备份一直到最后一次备份都不能删除,否则使用日志恢复时会出现问题。

修改日志文件

alter database dbname

modify file (name=日志文件的逻辑名称, maxsize=50mb )

go

压缩数据库

dbcc shrinkdatabase(dbname)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6664275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存