㈠ sql server 数据库怎样压缩数据库日志文件
SQL Server数据库压缩日志文件的方法主要有三种。方法一:首先执行备份日志操作,使用backup log database_name with no_log或backup log database_name with truncate_only命令。然后收缩数据库文件,可以使用dbcc shrinkdatabase或dbcc shrinkfile命令,前者适用于收缩整个数据库文件,后者适用于收缩特定文件,参数notruncate或truncateonly具体含义需参阅在线帮助。
方法二:首先备份整个数据库以防意外,执行exec sp_detach_db yourDBName,true命令卸除数据库注册信息。接着到日志文件所在目录删除或移除日志文件。然后执行exec sp_attach_single_file_db yourDBName,' d:\mssql\data\yourDBName_data.mdf '命令重新注册数据库,MSSQL会自动生成一个新的500K日志文件。
方法三:使用企业管理器工具,首先分离数据库,然后删除日志文件,如果需要可以备份。最后重新附加数据库,此时数据库会提示是否创建新的日志文件,确认即可。此外,如果希望以后日志文件不再增长,可以将数据库恢复模式设置为简单模型。在SQL Server 2000中,可以在数据库属性中选择简单恢复模式,或者使用SQL语句alter database 数据库名 set recovery simple来实现。
通过以上三种方法,可以有效地压缩SQL Server数据库的日志文件,从而释放空间和提高性能。
㈡ sql收缩数据库日志的几种办法
在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,
方法一:
--BigData为数据库名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(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已经不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,
sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。
SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。
方法二:
useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true
方法三:(请提前备份文件!!)
Detach数据库。
删除log文件。
附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。
方法四:
USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO