SQL SERVER数据库删除LOG文件和清空日志的方案
数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQLServer数据库都有log文件mssql数据库日志
原文:SQL SERVER数据库删除LOG文件和清空日志的方案 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQLServer数据库都有log文件mssql数据库日志,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。 一、删除LOG 1、分离数据库。分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。 勾选删除连接 分离后在数据库列表将看不到已分离的数据库。 2、删除LOG文件 3、附加数据库,附加的时候会提醒找不到log文件。 删除数据库信息信息的ldf文件: 附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。 也可以通过命令才完成以上的操作: use master; exec sp_detach_db @dbname='TestDB'; exec sp_attach_single_file_db @dbname='TestDB',@physname='D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf' ? 二、清空日志 该命令在SQL Server 2005和2000支持,SQL Server 2008不支持该命令。 DUMP TRANSACTION TestDB WITH NO_LOG 三、收缩数据库文件 DBCC SHRINKFILE ('TestDB_log',1) 四、截断事务日志 BACKUP LOG TestDB WITH NO_LOG 该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。 清除SQLServer2005的LOG文件 --最好备份日志,以后可通过日志恢复数据。。。 SQL Server 数据库使用时间一长就会导致Log文件逐渐变的庞大, 想备份一下数据库, 想发给谁都很困难 运行下面的语句就可以 清到Log文件只剩下1M左右的空间. DUMP TRANSACTION 数据库名 WITH NO_LOG DBCC SHRINKDATABASE('数据库名',TRUNCATEONLY) 不重启SQL服务,删除SQLServer系统日志SQLServer的系统日志过大,就会引起SQLServer服务器无法启动等一系列问题。今天我遇到了这个问题,在网上搜索了一下,解决方法是删除就 可以了,可是当前的ErrorLog正在被SQL使用无法删除啊,要删除只能停止SQL服务器,难道就没有别得办法了吗? 回答是肯定的:使用以下存储过程:EXEC sp_cycle_errorlog 注释 每次启动SQL Server时,当前错误日志重新命名为errorlog.1;errorlog.1 成为errorlog.2,errorlog.2 成为errorlog.3,依次类推。sp_cycle_errorlog 使您得以循环错误日志文件,而不必停止而后再启动服务器。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |