mysql查询日志文件太大_数据库日志文件太大如何处理

今天遇到一个状况,一个数据库的日志文件过大,导致占用了过多的服务器硬盘空间。需要对于数据库的日志文件进行瘦身。网上查询了一下资料,分享几个链接。

由于SQL2008对文件和日志管理进行了优化,所以部分在SQL2005中可以运行,在SQL2008中已经被取消。

如:DUMP TRANSACTION 库名 WITH NO_LOG

参考文章

http://jimshu.blog.51cto.com/3171847/932669

http://www.cnblogs.com/TLLi/archive/2012/07/15/2592042.html

http://www.cnblogs.com/tylerdonet/p/3550434.html

http://www.cnblogs.com/qingyuan/p/4238071.html

http://www.cnblogs.com/Joe-T/archive/2011/12/22/2298051.html

自己总结

1.收缩数据(一种是界面操作,一种是执行sql语句,个人倾向于执行sql语句)

界面操作

第一,

-- 修改数据为SIMPLE类型

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE

GO

第二,

选择要收缩的数据库,右键-->任务-->收缩-->文件

4f8d008c442ecd61f3716c95ae0e7f89.png

第三,

ALTER DATABASE 数据库名 SET RECOVERY FULL

GO

sql语句执行

-- 检查日志文件名称

USE 数据库名

SELECT NAME, size FROM sys.database_files

ae938d1fd8d8447b0cbc6ea0bb15011f.png

一般_log 就是日志文件,记录一下

最终执行语句

USE master

GO

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT

GO

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE

GO

USE 数据库名

GO

DBCC SHRINKFILE (N'数据库日志名' , 2, TRUNCATEONLY)

GO

USE master

GO

ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT

GO

ALTER DATABASE 数据库名 SET RECOVERY FULL

GO

以下是常用语句

-- 检查日志文件名称

USE 数据库名

SELECT NAME, size FROM sys.database_files

-- 查看数据库的recovery_model_desc类型

SELECT NAME, recovery_model_desc FROM sys.databases

-- 如果是FULL类型,修改为SIMPLE类型

ALTER DATABASE ChinaKnowledgeDB SET Recovery simple

-- 收缩日志文件大小(单位是M)

DBCC SHRINKFILE (N'ChinaKnowledgeDB_log' , 10)

-- 恢复成FULL类型

ALTER DATABASE ChinaKnowledgeDB SET Recovery FULL

总结:收缩日志一定要把数据变为简单模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值