在SQL2000/2005/2008中可以快速压缩日志log文件,通过SQL, 方法一: view plaincopy to clipboardprint? -- BigData为数据库名 DUMP TRANSACTION BigData WITH NO_LOG BACKUP LOG BigData WITH NO_LOG DBCC SHRINKDATABASE(BigData ) -- BigData为数据库名 DUMP TRANSACTION BigData WITH NO_LOG BACKUP LOG BigData WITH NO_LOG DBCC SHRINKDATABASE(BigData ) 执行以上语句可以快速压缩日志文件到1M。 但是以上语句中前两行在SQL 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 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 sql2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。 SQL2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。 尝试方法二: view plaincopy to clipboardprint? -- --Logical Files : -- CMS1.5_Data -- CMS1.5_Log DBCC SHRINKFILE (N ' CMS1.5_Log ' , 1 ) GO -- --Logical Files : -- CMS1.5_Data -- CMS1.5_Log DBCC SHRINKFILE (N ' CMS1.5_Log ' , 1 ) GO 无效。 尝试方法三: view plaincopy to clipboardprint? use DB_NAME sp_dboption DB_NAME , "trunc. log on chkpt.", true checkpoint sp_dboption DB_NAME , "autoshrink", true 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 文件。 附图: 方法五(没有试试,请提前备份文件!!): 1. 停止 SQL Server 的服务 2. 使用删除 Log文件 3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。详情参考此链接:http://blog.csdn.net/downmoon/archive/2009/12/13/4997925.aspx
SQL 2005 企业管理器实现方式 ---压缩日志前使用 DUMP TRANSACTION xx WITH NO_LOG 任务-》收缩-》文件
用 企业管理器实现方式就不要说了,现在寻求用sql语句是实现。 以前在sql server 2000下用: BACKUP LOG WITH NO_LOG和DBCC SHRINKDATABASE(BigData ) 来实现。 但是在sql server 2008下上面的语句已经不能用了。寻求高手帮助!!!!
2008下两种方法压缩日志1). BACKUP LOG xxx TO DISK='xxx.trn' 收缩日志文件2) ALTER DATABASE SET RECOVERY SIMPLE 收缩日志文件 ALTER DATABASE SET RECOVERY FULL
to Garnett_KG: 你的方法提示出错呀,不能运行。 问题还没有解决,希望大家帮帮忙。
你该不会是直接copy我的代码就运行了吧? ALTER DATABASE SET RECOVERY SIMPLE GO --收缩日志文件 , DBCC SHRINKFILE ('日志文件逻辑名' , 0, TRUNCATEONLY) GO ALTER DATABASE SET RECOVERY FULL GO
任务-》收缩-》文件
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
view plaincopy to clipboardprint?
-- BigData为数据库名
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
-- BigData为数据库名
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
执行以上语句可以快速压缩日志文件到1M。 但是以上语句中前两行在SQL 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 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 sql2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。 SQL2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。 尝试方法二: view plaincopy to clipboardprint?
-- --Logical Files :
-- CMS1.5_Data
-- CMS1.5_Log
DBCC SHRINKFILE (N ' CMS1.5_Log ' , 1 )
GO
-- --Logical Files :
-- CMS1.5_Data
-- CMS1.5_Log
DBCC SHRINKFILE (N ' CMS1.5_Log ' , 1 )
GO
无效。 尝试方法三:
view plaincopy to clipboardprint?
use DB_NAME
sp_dboption DB_NAME , "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME , "autoshrink", true
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 文件。 附图: 方法五(没有试试,请提前备份文件!!): 1. 停止 SQL Server 的服务
2. 使用删除 Log文件
3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。详情参考此链接:http://blog.csdn.net/downmoon/archive/2009/12/13/4997925.aspx
---压缩日志前使用
DUMP TRANSACTION xx WITH NO_LOG
任务-》收缩-》文件
以前在sql server 2000下用:
BACKUP LOG WITH NO_LOG和DBCC SHRINKDATABASE(BigData ) 来实现。
但是在sql server 2008下上面的语句已经不能用了。寻求高手帮助!!!!
BACKUP LOG xxx TO DISK='xxx.trn' 收缩日志文件2)
ALTER DATABASE SET RECOVERY SIMPLE
收缩日志文件
ALTER DATABASE SET RECOVERY FULL
你的方法提示出错呀,不能运行。
问题还没有解决,希望大家帮帮忙。
GO
--收缩日志文件 ,
DBCC SHRINKFILE ('日志文件逻辑名' , 0, TRUNCATEONLY)
GO
ALTER DATABASE SET RECOVERY FULL
GO
这个软件叫trunc sql server 日志收缩工具,几百K才.我一直用
http://www.gotfile.net/download.php?file=01B04903228EE36F8B1D7CB51A888C74698D8C0B.rar
我在sql 2008下执行时出现下面错误:ALTER DATABASE SET RECOVERY SIMPLE
GO
上面这句提示下面错误:
消息 156,级别 15,状态 1,第 1 行
关键字 'SET' 附近有语法错误。
消息 195,级别 15,状态 7,第 1 行
'RECOVERY' 不是可以识别的 SET 选项。ALTER DATABASE SET RECOVERY FULL
GO
这一句提示下面错误:
消息 156,级别 15,状态 1,第 1 行
关键字 'SET' 附近有语法错误。
我在sql 2008下执行时出现下面错误:ALTER DATABASE SET RECOVERY SIMPLE
GO
上面这句提示下面错误:
消息 156,级别 15,状态 1,第 1 行
关键字 'SET' 附近有语法错误。
消息 195,级别 15,状态 7,第 1 行
'RECOVERY' 不是可以识别的 SET 选项。ALTER DATABASE SET RECOVERY FULL
GO
这一句提示下面错误:
消息 156,级别 15,状态 1,第 1 行
关键字 'SET' 附近有语法错误。
alter database db_name set recovery simple;