sqlserver数据库日志文件log.ldf文件占用过大清除的办法
技术交流 http://idea.coderyj.com/

1.清除数据库日志的方法

--- 查看数据库日志文件名
USE cs
GO
SELECT file_id, name,size,* FROM sys.database_files;

ps 可以看到其中name字段为数据库日志名称"数据库日志名称",size是日志大小。接下来就可以执行清理日志操作。值得注意的是,清理日志必须先将数据库转成简单模式,清理后再将数据库置为完全模式,具体的语句如下

  • 清除日志
--- 清除数据库日志
USE [master]
GO
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE   --简单模式
GO
USE [数据库名] 
GO
DBCC SHRINKFILE ('bydatadb_log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [数据库名] SET RECOVERY FULL  --还原为完全模式
GO

2.数据库终端操作

  • 打开数据库客户端,选择具体数据库
  • 点击数据库,右键选择【属性】
  • 在弹出窗⼝左侧点击【选项】,将【恢复模式】改为【简单】,点击确定保存
  • 点击数据库,右键选择【任务】-【收缩】-【⽂件】
  • 在弹出窗⼝中,【⽂件类型】选择【⽇志】,点击确定即可
  • 点击数据库,右键选择【属性】
  • 在弹出窗⼝左侧点击【选项】,将【恢复模式】恢复为【完成】,点击确定保存

3.删除⽇志⽂件

  • 直接删除⽇志⽂件。此种⽅式可能会遇到“当前⽇志正在被SQL Server使⽤⽆法删除”的问题,此时,需要停⽌SQL Server服务,才能进⾏删除。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐