【SQLServer2019管理】事务日志收缩

发布时间 2023-12-08 16:28:06作者: HelonTian
 
SQL Server日志清理
在数据库使用很久后日志文件会累计的越来越大,如果硬盘空间不足可能会导致宕机。
 

SQL Server三个恢复模式

sql server数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sql server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志。截断事务日志是删除己执行事务并把该日志空间让给新事务的过程
1.完整sql server恢复模式
数据库引擎把所有操作都记录到事务日志上,并且数据库引擎绝对不会截断日志,完整恢复模式能使数据库恢复到故障时间点。
2.简单sql server恢复模式
数据库引擎最低限度地记录大多数操作,并在每个检查点之后截断事务日志。它不能备份或还原事务日志,也不能还原单独的数据页。
3.大容量日志模式
数据库引擎对大容量操作(select into和bulk insert)进行最小记录。如果一个日志备份包含任何大容量操作,就可以使数据库恢复到日志备份的结尾,但不能恢复到某个时间点,它仅用于大容量操作期间。
 
在生产环境下建议使用完整恢复模式,因为它提供了最可恢复的配置。如果通过大容量机制定期导入数据,则可以临时将数据库的恢复模式改变为大容量日志模式,以获得更好的大容量负载性能,在导入过程结束后,应将数据库恢复为完整恢复模式。
ALTER DATABASE database_name SET RECOVERY { FULL | BULK_LOGGED | SIMPLE }
 

日志清理过程

建议在清理之前,先进行一次全量备份,以便可以进行指定时间点恢复

修改数据库模式(简单)

首先将需要清理日志的数据库模式修改为:简单模式
操作路径: 选中要清理的数据库 -> 右键 -> 属性 -> 选项
 
 

收缩日志文件

操作路径: 选中要清理的数据库 -> 右键 -> 任务 -> 收缩 -> 文件

修改数据库模式(完整)

首先将需要清理日志的数据库模式修改为:完整模式
操作路径: 选中要清理的数据库 -> 右键 -> 属性 -> 选项
 
 
建议日志清理完全后,立即进行一次全量备份,有利于进行指定时间点恢复操作,降低风险。