SQL Server 2008如何压缩日志(log)文件?
2009-12-13 15:12
477 查看
在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,
方法一:
--BigData为数据库名
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
执行以上语句可以快速压缩日志文件到1M。
但是以上语句中前两行在SQL Server 2008下无法执行 ,
第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”
第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”
第三行可以执行。但日志log文件没有任何变化。
原来SQL Server 2008 已经不再支持 DUMP TRANSACTION和BACKUP LOG WITH NO_LOG,详情请看
http://msdn.microsoft.com/zh-cn/library/ms187315%28SQL.90%29.aspx
http://msdn.microsoft.com/zh-cn/library/ms186865.aspx
sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。
SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。
尝试方法二:
----Logical Files :
--CMS1.5_Data
--CMS1.5_Log
DBCC SHRINKFILE (N'CMS1.5_Log' , 1)
GO
无效。
尝试方法三:
代码
use DB_NAME
sp_dboption DB_NAME, "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME, "autoshrink", true
每一行指令请单独执行。其中的DB_NAME是指Database Name,在执行完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右。
有没有更快的方法呢?
尝试方法四:(请提前备份文件!!)
1. Detach数据库。
2.删除log文件。
3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。
附图:
![](http://public.blu.livefilestore.com/y1pZZO9p2w53SDORyxvJ88aROsiVAHO_m9EhrbbZU8TeEFPW7lIJJQnq2yPUBF5-si7E5vO53Un8u6dZjBdcTb8EA/Sql2008Log01.png)
![](http://public.blu.livefilestore.com/y1pY6yEGfYgulBxUtzIGd0pF3z2-Us1_OrmeWf23qgO1Fp7aDPryZXK8TXdzQvIEhFA65_al9XVKtjRRPXzDzAFlA/Sql2008Log02.png)
![](http://public.blu.livefilestore.com/y1p-0A6j4pcfpBEhtEnLOmp2bON_6WdbZt2sXS_Ooenqun22yHPJIpg3KlYPA70vzCfkc_xs_L13AbUT5qIDHiSZw/Sql2008Log0%EF%BC%93.png)
![](http://public.blu.livefilestore.com/y1pzwxl2ojx-yUadD8_MVNKYxL3v_8JYk96xj0egU5cgBSEpRDYsTW5HA3-5XTB1bCVZaQKDb1VA4ysIekzN_vjMQ/Sql2008Log0%EF%BC%95.png)
方法五(没有试过,请提前备份文件!!):
1. 停止 SQL Server 的服务
2. 使用删除 Log文件
3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。
方法六: (尘尘提供)
先设置恢复模式为“简单恢复”模式,再收缩:
USE BigData ;
GO
ALTER DATABASE BigData
SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (BigData_Log, 1);
GO
ALTER DATABASE BigData
SET RECOVERY FULL;--恢复为原模式
GO
方法七: (尘尘提供)
USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO
方法一:
--BigData为数据库名
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
执行以上语句可以快速压缩日志文件到1M。
但是以上语句中前两行在SQL Server 2008下无法执行 ,
第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”
第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”
第三行可以执行。但日志log文件没有任何变化。
原来SQL Server 2008 已经不再支持 DUMP TRANSACTION和BACKUP LOG WITH NO_LOG,详情请看
http://msdn.microsoft.com/zh-cn/library/ms187315%28SQL.90%29.aspx
http://msdn.microsoft.com/zh-cn/library/ms186865.aspx
sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。
SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。
尝试方法二:
----Logical Files :
--CMS1.5_Data
--CMS1.5_Log
DBCC SHRINKFILE (N'CMS1.5_Log' , 1)
GO
无效。
尝试方法三:
代码
use DB_NAME
sp_dboption DB_NAME, "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME, "autoshrink", true
每一行指令请单独执行。其中的DB_NAME是指Database Name,在执行完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右。
有没有更快的方法呢?
尝试方法四:(请提前备份文件!!)
1. Detach数据库。
2.删除log文件。
3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。
附图:
![](http://public.blu.livefilestore.com/y1pZZO9p2w53SDORyxvJ88aROsiVAHO_m9EhrbbZU8TeEFPW7lIJJQnq2yPUBF5-si7E5vO53Un8u6dZjBdcTb8EA/Sql2008Log01.png)
![](http://public.blu.livefilestore.com/y1pY6yEGfYgulBxUtzIGd0pF3z2-Us1_OrmeWf23qgO1Fp7aDPryZXK8TXdzQvIEhFA65_al9XVKtjRRPXzDzAFlA/Sql2008Log02.png)
![](http://public.blu.livefilestore.com/y1p-0A6j4pcfpBEhtEnLOmp2bON_6WdbZt2sXS_Ooenqun22yHPJIpg3KlYPA70vzCfkc_xs_L13AbUT5qIDHiSZw/Sql2008Log0%EF%BC%93.png)
![](http://public.blu.livefilestore.com/y1pzwxl2ojx-yUadD8_MVNKYxL3v_8JYk96xj0egU5cgBSEpRDYsTW5HA3-5XTB1bCVZaQKDb1VA4ysIekzN_vjMQ/Sql2008Log0%EF%BC%95.png)
方法五(没有试过,请提前备份文件!!):
1. 停止 SQL Server 的服务
2. 使用删除 Log文件
3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。
方法六: (尘尘提供)
先设置恢复模式为“简单恢复”模式,再收缩:
USE BigData ;
GO
ALTER DATABASE BigData
SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (BigData_Log, 1);
GO
ALTER DATABASE BigData
SET RECOVERY FULL;--恢复为原模式
GO
方法七: (尘尘提供)
USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO
相关文章推荐
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server 2008如何压缩日志(log)文件? (转)
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server 2008如何压缩日志(log)文件
- SQL Server 2008 R2 下如何清理数据库日志文件
- [转]SQL2008如何压缩日志(log)文件?
- Sql Server 2008 压缩数据库日志文件
- SQL Server 2008 收缩日志(log)文件
- SQL Server 2008 压缩日志文件
- 如何压缩SQL Server 2005指定数据库文件和日志的大小?
- SQL Server 压缩日志(log)文件之二?
- SQL Server 压缩日志(log)文件
- SQL Server 2008 R2 下如何清理数据库日志文件
- 清理SQL Server 2008日志文件Cannot shrink log file 2 的解决方案
- SQL Server 2008 R2 下如何清理数据库日志文件
- SQL2008如何压缩日志(log)文件?
- SQL SERVER 2008 R2 数据库日志文件太大,如何进行清理?