企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

记一次SQL Server数据库正在恢复故障

wudianyun 2024-12-18 14:09:21 精选文章 43 ℃

前两天一大早就收到磁盘被占用满了,应用无法正常使用。

登录服务器查看到是因为事务日志导致磁盘爆满

找到原因开始清理事务日志,执行了下面语句结果没有生效日志文件还是没有缩小,我就重启了SQL服务想着重启后来执行清理SQL,结果就搞出了大事数据库显示在恢复中。

USE 数据库名
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式
GO
USE 数据库名
GO
DBCC SHRINKFILE (N'数据库逻辑文件名称_log' , 11, TRUNCATEONLY)
GO
USE 数据库名
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式
GO

这个时候是表面镇静,内心慌的一批MD要是数据库坏了就麻烦了。

当数据库显示在恢复中时不要操作等待数据库恢复正常,恢复过程时间较长。

但我的情况在数据库恢复正常后还是不能使用。我就使用终极绝招了附加数据库操作。

附加数据库时间取决于你的数据库大小,我的数据库有1T的数据库等一个半小时左右。

1.停用SQL Server服务
2.将数据库的.mdf和.ldf文件更名
3.启用SQL Server服务
4.右键删除数据库
5.将更名的.mdf和.ldf文件名称改回原来的数据库文件名。
6.在管理工具中重新附加数据库,附加成功后故障修复。

数据库附加成功后,最后再执行事务日志清理任务。

到此数据库就恢复正常了。

Tags:

最近发表
标签列表