SQL SERVER 2014 清理数据库日志文件踩的坑!

先简单带一下.ldf和.mdf区别
.mdf:数据库数据文件,存放一个数据库的数据信息。
.ldf:数据库日志文件,存放对该数据库的更新操作(增、删、改)的文件。
所在在还原数据库时很慢,还原成功后发现.ldf文件很大,然后就开始一系列骚操作!
首先开始查日志文件大小情况

dbcc sqlperf(logspace)

因为当时是直接用的之前的数据库文件还原到新的数据库上,所以按照网上的方法,一直提示:
在 sys.database_files 中找不到数据库“JY_Cfcp”的文件“JY_Cfcp_log”。该文件不存在或者已被删除。
具体原因是因为 数据库名与逻辑文件名不一致。
所以在这我再带一句,如何修改文件名,如下:

alter database '数据库名'
modify file(name='原逻辑文件名', newname='新逻辑文件名')

因为同步存在的还有日志文件,所以也需要做修改

alter database ‘数据库名‘
modify file(name='原逻辑文件名_log', newname='新逻辑文件名_log')

通过上面两步下面可以进入主题,代码如下:
(上面两步的坑是自己作的,一般情况不会出现):

  USE[master]  
  GO  
  ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT  
  GO  
  ALTER DATABASE 数据库名 SET RECOVERY SIMPLE   --简单模式  
  GO  
  USE JY_Cfcp  
  GO  
  DBCC SHRINKFILE (N'数据库名_log' , 2, TRUNCATEONLY)  --设置压缩后的日志大小为2M,可以自行指定  
 GO  
 USE[master]  
 GO  
 ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT  
 GO  
 ALTER DATABASE 数据库名 SET RECOVERY FULL  --还原为完全模式  
 GO 

最后改完可以通过以下代码进行查验

SELECT * FROM SYS.database_files WHERE type_desc='LOG' --查询当前数据库
select * from sys.master_files WHERE type_desc='LOG'  --查询全部
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值