大佬教程收集整理的这篇文章主要介绍了数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题描述:@H_197_3@
数据库的事务日志已满,起因为"LOG_BACKUP"。@H_197_3@
问题截图:@H_197_3@
解决方法:@H_197_3@
1).选择数据库–属性—选项—恢复模式–选择简单。2).收缩数据库后,再调回完整。@H_197_3@
@H_197_3@
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”@H_197_3@
客户的管理系统数据库用的是SQL2012,看来是需要压缩一下数据库了,但是当我压缩数据库的时候竟然报错了,应该是日志太大了。@H_197_3@
那么,解决办法就有了!@H_197_3@
右键你的数据库,选择“属性”,然后在“选项”里面把“恢复模式”设置为“简单”,然后“确定”。@H_197_3@
右键你的数据库,选择“任务”——“收缩”——“数据库”,在弹出来的面板里直接点“确定”即可。@H_197_3@
右键你的数据库,选择“属性”,然后在“选项”里面把“恢复模式”设置为“完整”,然后“确定”。@H_197_3@
@H_197_3@
当以上方法操作全部报错时:@H_197_3@
首先到服务中,将SQL Server (MSSQLSERVER)服务暂停,然后找到数据库的mdf和ldf文件,复制一份到其他磁盘(不暂停sql服务是无法复制的),然后直接删除ldf文件,启动sql服务;此时登陆数据库会发现该数据库已被挂起,那么执行下面的命令:其中test为数据库名@H_197_3@
USE master@H_197_3@
GO@H_197_3@
ALTER DATABASE test SET SINGLE_USER@H_197_3@
GO@H_197_3@
ALTER DATABASE test SET EMERGENCY@H_197_3@
GO@H_197_3@
DBCC checKDB(test,REPAIR_ALLOW_DATA_LOSS)@H_197_3@
go@H_197_3@
ALTER DATABASE test SET ONLINE@H_197_3@
GO@H_197_3@
ALTER DATABASE test SET MULTI_USER@H_197_3@
GO@H_197_3@
执行完成后数据库即可正常使用,而且mdf日志文件也被清理了@H_197_3@
@H_197_3@
以上是大佬教程为你收集整理的数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”全部内容,希望文章能够帮你解决数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。