数据库“xxx”的事务日志已满,原因为“LOG

您所在的位置:网站首页 数据库事物日志 数据库“xxx”的事务日志已满,原因为“LOG

数据库“xxx”的事务日志已满,原因为“LOG

2023-08-08 18:26| 来源: 网络整理| 查看: 265

问题描述:

数据库的事务日志已满,起因为"LOG_BACKUP"。

问题截图:

解决方法:

1).选择数据库–属性—选项—恢复模式–选择简单。2).收缩数据库后,再调回完整。

复制代码 1 USE[master] 2 GO 3 ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT 4 GO 5 ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE --简单模式 6 GO 7 USE 要清理的数据库名称 8 GO 9 DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定 10 GO 11 USE[master] 12 GO 13 ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT 14 GO 15 ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL --还原为完全模式 16 GO

数据库XXX的事务日志已满,起因为“LOG_BACKUP”

客户的管理系统数据库用的是SQL2012,看来是需要压缩一下数据库了,但是当我压缩数据库的时候竟然报错了,应该是日志太大了。

那么,解决办法就有了!

第一步,把数据库的恢复模式设置为“简单”,具体操作:

右键你的数据库,选择“属性”,然后在“选项”里面把“恢复模式”设置为“简单”,然后“确定”。

第二步,收缩数据库,具体操作:

右键你的数据库,选择“任务”——“收缩”——“数据库”,在弹出来的面板里直接点“确定”即可。

第三步,把数据库的恢复模式设置为“完整”,具体操作:

右键你的数据库,选择“属性”,然后在“选项”里面把“恢复模式”设置为“完整”,然后“确定”。

 

当以上方法操作全部报错时:

首先到服务中,将SQL Server (MSSQLSERVER)服务暂停,然后找到数据库的mdf和ldf文件,复制一份到其他磁盘(不暂停sql服务是无法复制的),然后直接删除ldf文件,启动sql服务;

如何停止sql server服务

1、首先在电脑桌面中,鼠标右键点击计算机-管理,如下图所示。

2、然后在打开的管理窗口中,点击左侧栏中的服务和应用程序,如下图所示。

3、接着在打开的服务和应用程序页面中,点击SQL SERVER配置管理器 ,如下图所示。

4、最后点击SQL SERVER服务后,右键点击选择停止 ,如下图所示就完成了。

 

此时登陆数据库会发现该数据库已被挂起,那么执行下面的命令:其中test为数据库名

USE master

GO

ALTER DATABASE test SET SINGLE_USER

GO

ALTER DATABASE test SET EMERGENCY

GO

DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)

go

ALTER DATABASE test SET ONLINE

GO

ALTER DATABASE test SET MULTI_USER

GO

执行完成后数据库即可正常使用,而且mdf日志文件也被清理了

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3