sqlserver2008收缩数据库日志
在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL, 方法一: -- BigData为数据库名DUMP ? TRANSACTION ?BigData? WITH ?NO_LOG BACKUP ? 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,详情请看 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 ?SHRINKFILE?(N ' CMS1.5_Log ' ?,? 1 ) GO 无效。 ? 尝试方法三: sp_dboption? ,?"trunc.? log ? on ?chkpt.",?true checkpoint 每一行指令请单独执行。其中的DB_NAME是指Database?Name,在执行完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右。 有没有更快的方法呢? 尝试方法四:(请提前备份文件!!) 1. Detach数据库。 附图:
方法五(没有试过,请提前备份文件!!): 先设置恢复模式为“简单恢复”模式,再收缩: GO ALTER DATABASE ?BigData SET ?RECOVERY?SIMPLE; 设置简单恢复模式 ?SHRINKFILE?(BigData_Log,0)">); ?RECOVERY? FULL ; 恢复为原模式 ? ?方法七:?( ? ?BigData;?DATABASENAME? TO DISK = d:test.bak ?Shrink?the?truncated?log?file?to?1?MB. ?SHRINKFILE?(Bigdata_Log,sans-serif; font-size:13px; line-height:23px"> 转载自:http://www.cnblogs.com/downmoon/archive/2009/12/13/1623004.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |