sql2008清除日志
‘壹’ sql Server 2008 R2下如何清理数据库日志文件
废话不多说,直接上代码,清理后日志文件为1M[sql] USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE GO USE [数据库名] GO DBCC SHRINKFILE (N'[数据库日志文件名称]' , 0,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY FULL GO --查询指定数据库的日志文件名称 USE [数据库名] GO SELECT name FROM SYS.database_files WHERE type_desc='LOG' 08R2通过,其他版本未测试
‘贰’ sqlserver2008和sqlserver2012日志文件过大,有什么方法清理吗
清理sql server 2008日志步骤如下:
1.将数据库设置成 简单 模式
选择要收缩的数据库,点右键 属性->选项,选择 简单模式
2.选择任务->收缩->文件
3.选择日志
或者用如下语句
代码
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE
GO
USE DNName
GO
DBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL
GO
SQL Server 2000要清理日志使用的是mp语句,但是在SQL Server2008里,这个语句不管用了,如果日志文件很大,比如超过1G,就需要截断一下日志文件以加快sqlserver的运行速度,在SQL Server2008里,方法改为:
有数据库 xxdb 在 SQL Server 2008 下,日志文件已经超过1G。
以往使用BACKUP语句-BACKUP LOG xxdb WITH NO_LOG 已经失效,在查阅 MSDN 之后发现 MS 提供的标准截断日志语句已经变为了 “BACKUP LOG 语句不指定 WITH COPY_ONLY”
使用语句 BACKUP LOG xxdb to disk='x:\work\1.bak' 成功将日志文件备份,并截断日志文件。这里x:代表你想要备份文件的盘符。
然后使用 DBCC SHRINKFILE (xxdb_log,10) 收缩日志文件到 10M
总结:
完整的收缩日志文件的 T-SQL 语句:
BACKUP LOG xxdb to disk='x:\work\1.bak'
DBCC SHRINKFILE (xxdb_log,10)
GO
--
BACKUP LOG <db_name> to disk=<'backupfilename'>
DBCC SHRINKFILE (<log_filename>,10)
GO
里面的x:\work是随意设置的。当然也可以收缩到比如5M或1M。
在用的:
USE[master]
GO
_WAIT
GO
--简单模式
GO
USEYHDB
GO
DBCCSHRINKFILE(N'YHDB_log', 11,TRUNCATEONLY)
GO
USE[master]
GO
_WAIT
GO
--还原为完全模式
GO
‘叁’ 怎样清理或者删除MSSQL数据库日志文件
数据库的性能是DBA都需要重点关注的,日志文件的增多严重影响数据库的性能,本文将为您介绍SQLServer删除日志文件的方法,供您参考,希望对您有所帮助。
数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。
1、删除LOG
1.1 分离数据库
分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。
附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。
1.4 也可以通过命令才完成以上的操作
use master;
exec sp_detach_db @dbname='数据库名';
exec sp_attach_single_file_db @dbname='数据库名',@physname='D:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATATestDB.mdf'
Sp_detach_db:分离数据库;
sp_attach_single_file_db:附加单个数据库文件;在上述代码中只附加了数据文件,而未附加日志文件,言下之意就是删除了日志文件。
该命令在SQL Server 2005和2000支持,SQL Server 2008不支持该命令。
2. 清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
3. 收缩数据库文件
DBCC SHRINKFILE ('TestDB_log',1)
SQL Server中“数据收缩”详解
4. 截断事务日志
BACKUP LOG TestDB WITH NO_LOG
该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。
‘肆’ SQL SERVER 2008清理日志
下载个LOGEXPLOER试试LogExplorer主要用于对MSSQLServer的事物分析和数据恢复。你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够
‘伍’ sqlserver 2008 R2 的日志文件怎么删除
SQL Server 2008清空删除日志文件方法:
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
打个SQL查询分析器,在里面输入如下命令后执行即可:
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
'这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询
'USE DNName
'GO
'SELECT file_id, nameFROM sys.database_files;
'GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
‘陆’ sql server 2008怎么清空日志
SQL Server 2008清空删除日志文件方法: 在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 打个SQL查询分析器,在里面输入如下命令后执行即可: USE [master] GO ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式 GO USE DNName GO DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY) GO '这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询 'USE DNName 'GO 'SELECT file_id, nameFROM sys.database_files; 'GO USE [master] GO ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式 GO
‘柒’ 如何清除sql2008日志文件
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
方案一:完全命令模式
USE[master]
GO
ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE[master]
GO
ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT
GO
ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
方案二:部分命令模式 + 任务-收缩-文件(单个数据库)
ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
右键-任务-收缩-文件-确定 下来数据库的日志只保留了1M
ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内即可完成。缺点: 不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。