sqlserver 2012 删除LDF后,恢复的方法

今天用户使用系统时反馈填报时出现问题在这里插入图片描述

排查后发现一个数据库的LDF日志文件过大,导致磁盘空间爆满导致的。
之后发生了一件非常愚蠢的操作,在没有备份,没有查阅资料的情况下,只问了下公司技术人员是否可以删除后,得到了可以的答案,直接将数据库服务停掉后,将LDF文件删除了。

之后这个库就连接不上了。。。。

正确的方式应该是收缩数据库日志。

正确的删除方式应该是先 分离 数据库,然后删除LDF,删除后再把分离的库 附加 回来。

https://www.cnblogs.com/guanxiaohe/p/13359528.html

出了问题就要想办法解决
查看这个帖子

https://blog.csdn.net/xuandhu/article/details/376736?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

在这里插入图片描述
尝试将数据库分离,提示 SQLServer无法对数据库’XXX’执行删除,因为它正用于复制。错误:‘3724’
查看下面这个帖子,知道了 EXEC sp_removedbreplication ‘数据库名称’ 命令

https://blog.csdn.net/dongba4265/article/details/101580213?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

但是执行后再次尝试分离,提示
消息 3707,级别 16,状态 2,第 1 行 不能分离可疑或恢复挂起数据库。必须修复或删除它。
继续百度,根据下面这个帖子的操作,重新生成了一个LDF文件

1、修改数据库为紧急模式

ALTER DATABASE 数据库名称 SET EMERGENCY

2、使数据库变为单用户模式

ALTER DATABASE 数据库名称 SET SINGLE_USER

3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。

DBCC CheckDB (数据库名称 , REPAIR_ALLOW_DATA_LOSS)

4、使数据库变回为多用户模式

ALTER DATABASE 数据库名称 SET MULTI_USER

也可以这样做:

1:重新建立一个,一样的数据库,路径名称,文件都一样。

2:关掉SQL Server服务;

3:把源文件COPY过来;

4:开启SQL Server服务,这样问题同样就解决了。

https://blog.csdn.net/weixin_33622153/article/details/112997295?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

至此后数据库恢复正常,也给自己留了个教训,任何初次尝试的删除操作,在操作前应该先查阅执行后导致的后果,以及进行数据备份。

同时,十分感谢分享经验的各位前辈,关键时刻救小弟一命。
今天真是太刺激了。。。。。。

还有一个 暂时没有用上的帖子,mark下
误删除了SQL日志(.ldf)文件的恢复技术

https://blog.csdn.net/weixin_30634661/article/details/95601494?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase

又发现自动备份出问题了,重启下服务,分离附加下数据库。手动备份已正常。


SQLServer数据库中开启CDC导致“事务日志空间被占满,原因为REPLICATION”的原因分析和解决办法

https://www.cnblogs.com/wy123/p/6646143.html


SQL2008R2 收缩数据库问题 - 日志文件不变小
https://www.cnblogs.com/strayromeo/p/6961758.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值