数据库“xxx”的事务日志已满,原因为“LOG_BACKUP” 如何停止sql server服务

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

问题描述:

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

问题截图:

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

解决方法:

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务
 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,看来是需要压缩一下数据库了,但是当我压缩数据库的时候竟然报错了,应该是日志太大了。

那么,解决办法就有了!

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

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

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

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止sql server服务

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

数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”
如何停止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日志文件也被清理了