SQL数据库日志文件可以删除吗(sqlserver删除日志文件)

数据库日志文件随着时间的推移而增长。
如果长时间不清理,文件会变得很大,所以需要定期清理。
日志文件是恢复数据库的重要基础,因此不使用日志文件是愚蠢的。
手动清理单个数据库是可以的,但如果数据库太多,或者暂时没有时间清理,可能会导致硬盘空间占满,影响访问。
因此,设置数据库日志文件的自动清理是比较实用的。

手动清理方法:右键单击要清理的数据库,选择“选项”卡上的“属性”,将故障恢复模式设置为简单,确认,然后右键执行;数据库,“所有任务”-“收缩数据库”,确认清除日志文件,最后记得再次选择“属性”,将故障恢复模式设置为完整。

自动清理方法:使用sqlserver代理服务执行自动化任务。

打开企业管理器,进入“管理”-“SQLServer代理服务”-“作业”,在右侧窗口中右键单击,选择“新建作业”。
在“常规”选项卡中,填写任务名称和规格。
请注意,最好使用sa或所有者的默认管理帐户。

进入“Steps”选项卡,新建一个作业步骤,填写步骤名称,类型为script,database为需要清除日志的数据库,填写以下命令:

DUMPTRANSACTION数据库名称withNO_LOG

DBCCSHRINKFILE(数据库日志文件名称,1)

以上数据库名称填写需要维护的数据库名称,DatabaseLogFileName填写其对应的日志文件名。
请注意,这与资源管理器中看到的后缀名称不同。
日志的名称在企业管理器的数据库属性的日志选项卡中(通常只有后缀名称差异)。
确认后,添加任务步骤。
如果需要维护多个数据库,可以使用上述方法重复添加任务步骤,记下每个步骤成功或失败后的操作,最后选择初始步骤。

在与备份相同的维护计划的“排程”选项卡中,填写排程周期,即定期清洁的周期,这里不再详细描述。
如果需要,您可以在最后一个“通知”选项卡上设置任务完成后的通知项目。
您需要设置运营商并设置相应的服务。
不常用>

如何清理SQLServer中的事务日志

1.打开查询分析器,输入命令DUMPTRANSACTION数据库名WITHNO_LOG2然后打开企业管理器--右键你要收缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--选择。
在收缩方法中收缩对于XXM,将存在可以收缩的最小M数。
直接输入该号码并确认。
清除日志的方法有两种:1、自动清除方法:打开TruncLogonChkpt数据库选项,让数据库系统定期自动清除日志。
这种方法的优点是不需要人工干预,由SQLServer自动运行,一般不会出现日志溢出的情况。
2、手动清除方法:执行“dumptransaction”命令清除日志。
以下两个命令可以删除日志:dumptransactionwithtruncate_onlydumptransactionwithno_log通常,可以使用“dumptransactionwithtrancate_only”命令删除事务日志的非活动部分。
SYBASE提供了“dumptransactionwithno_log”来处理一些非常紧急的情况。
使用这个命令是非常危险的,SQLServer会弹出警告。
为了确保您的数据库尽可能一致,您应该将其作为“最后的手段”。
以上两种方法只删除日志,不备份日志。
如果要备份日志,应执行“dumptransactiondatabase_namethodumpdevice”命令。
PS:附加是更好的方法,先分离数据库,直接清除日志,然后在查询分析器中使用execsp_attach_single_file_db'数据库名称','.mdf文件路径'命令附加数据库。
上面我在其他地方已经看到了。
数据库日志操作首先提供了一个复杂的方法来压缩日志和数据库文件,如下:1、清空日志DUMPTRANSACTION库名WITHNO_LOG2、截断事务日志:BACKUPLOG数据库名WITHNO_LOG3、收缩数据库文件(如果不压缩的话,数据库文件不会缩小企业管理器--右键你要压缩的文件数据库--所有任务--收缩数据库--收缩文件--选择日志文件--选择ShrinktoXXM这里指定了可以收缩的最小M个数-选择数据文件-在收缩模式下选择收缩到XXM这里会给出允许收缩的最小M个数也可以使用SQL语句来完成-Shrink数据库DBCCSHRINKDATABASE(客户信息)——收缩指定数据文件,1为文件号,可以通过此语句查询:select*fromsysfilesDBCCSHRINKFILE(1)4、最大限度的减少日志文件(如果是sql7.0,这一步只能在查询分析器中完成)a断开与数据库的连接:企业管理器--数据库--右键--断开与数据库的连接b。
数据库--右键--附加数据库此方法会生成一个新的LOG,大小只有500K多或者使用代码:下面的例子将pubs分开,然后p将ubs中的一个文件附加到当前服务器a上。
分离EXECsp_detach_db@dbname='pubs'b.MicrosoftSQLServer\MSSQL\Data\pubs.mdf'5以后要自动收缩,进行如下设置:企业管理器--服务器--右键数据库--属性--选项--选择“自动-.shrink”---SQL-语句设置方法:EXECsp_dboption'databasename','autoshrink','TRUE'6如果想防止以后日志变得太大,进入企业管理器--服务器--右键在数据库--属性--事务日志--限制文件增长。
toxM(x是你允许的最大数据文件大小)--SQL语句设置方法:修改数据库数据库名modifyfile(name=逻辑文件名,maxsize=20)特别注意:在未完成以下步骤之前请不要进行以下步骤前面的步骤,否则数据库可能会受到伤害。
通常不建议执行步骤4和6。
步骤4不安全,可能会损坏数据库或丢失数据。
步骤6如果日志达到上限,后续数据库处理将失败,只有清除日志后才能恢复。
还提供了一种更简单的方法。
更简单的方法:1.右键数据库属性窗口--故障恢复模式--设置为简单2.右键创建数据库中的所有任务--收缩数据库3.在右侧创建数据库属性窗口--故障恢复模型——设置为高容量日志记录您可能遇到过这样的问题:update或delete语句忘记包含where子句,或者where子句不够精确,导致.执行后出现严重问题后果,这种情况下的数据恢复只能使用事务日志备份,所以如果你的SQL没有对应的全库备份或者无法备份日志(选项truncatelogoncheckpoint为1),则数据无法恢复,或者您只能恢复到最近的备份。
当日志文件已满,SQL数据库无法写入该文件时,有两种方法:第一种方法:删除日志。
1.打开查询分析器,输入命令DUMPTRANSACTION数据库名WITHNO_LOG2然后打开企业管理器--右键你要收缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--选择。
在收缩方法中收缩对于XXM,将存在可以收缩的最小M数。
直接输入该号码并确认。
第二种方法有一定的风险,因为SQLSERVER的日志文件并没有立即写入主数据库文件。
如果处理不当,将会导致数据丢失。
1:删除LOG并分离数据库企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件并附加数据库企业管理器->服务器->数据库->右键->附加数据库此方法生成一个新的LOG,大小刚刚超过500K。
注意:建议使用第一种方法。