前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL2005和SQL2008如何压缩数据库及日志(log)文件?

SQL2005和SQL2008如何压缩数据库及日志(log)文件?

作者头像
崔文远TroyCui
发布2019-02-27 10:17:03
1.3K0
发布2019-02-27 10:17:03
举报
文章被收录于专栏:远在上海远在上海

以前在SQL2005中用的语句,到了SQL2008不能执行了,其实这个问题在7月份在美国的时候就遇到了,一直拖着,今天发现数据库占用空间达到30G了,当然了大部分是日志,因为有几张表每天Truncate然后重新生成,因为临时表的缘故。

SQL2005里面好用的SQL

代码语言:javascript
复制
--DatabaseName为数据库名
DUMP TRANSACTION DatabaseName WITH NO_LOG
BACKUP LOG DatabaseName WITH NO_LOG
DBCC SHRINKDATABASE(DatabaseName)

经过搜索,参考了比较全的一篇文章《SQL2008如何压缩日志(log)文件? 》,找到了好用的SQL语句,请看下面

代码语言:javascript
复制
-- Normal Shrink
USE WAIBPM
DECLARE @LogFileLogicalName sysname
SELECT @LogFileLogicalName=Name FROM sys.database_files WHERE Type=1
PRINT @LogFileLogicalName
DBCC SHRINKFILE (@LogFileLogicalName, 1);
--backup log, then shrink it
USE WAIBPM;
-- Get Log information
DBCC LOGINFO('WAIBPM')
DECLARE @LogFileLogicalName sysname
SELECT @LogFileLogicalName=Name FROM sys.database_files WHERE Type=1
PRINT @LogFileLogicalName
BACKUP LOG WAIBPM TO DISK='C:\cd\backup\test20111028.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (@LogFileLogicalName, 1);
GO

2011年10月31日,补充如下: 在使用先备份log,然后再收缩的时候,出现硬盘的空间不足,只能采用这种方法:先设置恢复模式为“简单恢复”模式,再收缩。

代码语言:javascript
复制
USE WAIBPM;
GO
ALTER DATABASE WAIBPM
SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (WAIBPM_Log, 1);
GO
ALTER DATABASE WAIBPM
SET RECOVERY FULL;--恢复为原模式
GO
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011年10月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档