数据库的日志文件(*.ldf)越来越大,怎么办?
收缩吧。收缩日志文件的操作真不简单哟,还跟数据库的恢复模式有关啊。
一、“简单恢复模式”时的日志收缩
1. 截断日志
当数据库的恢复模式为“简单”的时候,日志文件会在以下情况被截断:
(1)完整备份
(2)遇到检查点(checkpoint)
2. 手动收缩日志文件
当日志被截断后,日志文件的内部空间就会标记为“可复用”,因此日志文件就不需要持续增长。关于日志文件空间状态的解释,详见 http://jimshu.blog.51cto.com/3171847/1174474
手动收缩日志文件的操作可以参考本文稍后的说明。
二、“完整恢复模式”时的日志收缩
在完整恢复模式下,对数据进行完整备份或者遇到检查点,都不会对日志造成影响。因此,可能会导致日志文件不能被截断,也就是说,这些空间不能被循环使用。于是,日志文件将持续增长,甚至直逼硬盘空间的极限。此时,即使手动收缩日志文件,也不会减小文件空间,因为空间都被占用着。
注意:“大容量日志恢复模式”与“完整恢复模式”的日志处理方法一致。
1. 确认恢复模式
以下是使用 SQL Server Management Studio 检查数据库的恢复模式。
2. 完整备份
日志备份之前,必须做过完整备份。
注意:不要勾选“仅复制备份”选项。“仅复制备份”不会影响日志。
3. 事务日志备份
做过完整备份之后,可以随时进行事务日志备份。
默认的选项,是备份后截断事务日志。
注意:有很多情况会阻止日志截断,没有备份事务日志只是其中一种情况,也是最常见的情况。
4. 手动收缩日志文件
做过日志备份之后,日志被截断,大量空间被标记为“可复用”。一般情况下,这时候就可以进行“收缩文件”操作,以将“可复用”的空间从日志文件中移出,从而减小日志文件。
三、非官方的操作方法
1、临时改用简单恢复模式
临时改为简单恢复模式,然后做一次完整备份,或者运行checkpoint执行检查点。当日志被截断后,再收缩日志文件,最后再改回完整恢复模式。
甚至,在简单恢复模式时,可以直接修改日志文件的“初始大小”,改成一个很小的数值即可(系统会自动将日志文件收缩到可能的最小值)。
注意:改回完整恢复模式后,请务必立即做一次完整备份。
2、with no_log选项
在旧版本里,可以使用 BACKUP LOG WITH NO_LOG,或者 WITH TRUNCATE_ONLY。但是,SQL Server 2008 已经删除了这些选项。
3、分离后再附加
分离这个数据库,然后删除日志文件。然后重新附加这个数据库,SQL Server 就会警告丢失了日志文件,如果忽略这个警告,系统会自动创建一个空的日志文件。 注意:可能会丢失部分数据,详见《丢失日志文件的风险与对策》 http://jimshu.blog.51cto.com/3171847/1341289
http://jimshu.blog.51cto.com/3171847/932669
相关推荐
这里,通过创建一个临时表`DummyTrans`,并反复插入和删除数据,人为地填充日志空间,然后再通过`BACKUP LOG`和`DBCC SHRINKFILE`命令缩小日志文件。这种方法虽然有效,但需要注意的是,频繁的人工填充和清空日志...
MySQL Server的事务日志...总的来说,收缩MySQL Server的日志文件是一项重要的维护任务,它平衡了数据库的性能与安全需求。了解并熟练掌握上述方法,可以帮助数据库管理员有效地管理日志文件,提升系统的整体运行效率。
3. 收缩数据库文件:使用`DBCC SHRINKDATABASE`命令,例如`exec('DBCC SHRINKDATABASE(数据库名) ')`,这将缩小数据库文件大小,包括日志文件。 4. 设置自动收缩:通过`sp_dboption`存储过程,如`exec('EXEC sp_...
标题中的“MSsql日志收缩工具”指的是一个专门针对MSSQL数据库日志文件的优化工具,它的主要目的是减小日志文件(.ldf)的大小,以释放磁盘空间并提高系统性能。日志文件通常会随着数据库事务的增加而不断增长,如果...
默认情况下,InnoDB会创建两个文件,并且可以在运行时动态增加新的日志文件。 **3、错误日志** 错误日志(error log)记录MySQL服务启动、停止及运行过程中的错误消息和其他警告信息。这些信息有助于诊断问题和...
- SQL Server:可以使用`DBCC SHRINKFILE`命令收缩日志文件,或者在完整恢复模式下进行日志备份。 - MySQL:在InnoDB存储引擎中,可以通过`ALTER TABLE ... ENGINE=InnoDB`重置日志,或者调整`innodb_log_file_...
│ │ 6_MySQL全量恢复和日志增量恢复.mp4 │ │ 7_xtrabackup全量和增量备份恢复.mp4 │ │ 作业及答案.docx │ │ │ └─MySQL DBA堂命令-mha和备份恢复 │ mysql-master_05-18_10-03-09.log │ mysql-master_05...
若日志文件过大,可使用`DBCC SHRINKFILE`命令收缩日志文件,但需谨慎操作,以免影响数据库的正常运行。 2. **日志备份与清理** - 日志备份(Log Backup)是清理日志的关键步骤。通过执行事务日志备份,可以截断已...
MySQL二进制日志(binlog)是数据库系统中一种重要的功能,用于记录所有改变数据库状态的事务。这种日志格式是二进制的,它包含了一种持久化数据库更改的方式,这对于数据恢复、主从复制和数据分析具有关键作用。在...
SQL数据库日志清理工具的主要目标就是安全、有效地管理和缩小日志文件的大小。在线清理日志意味着在不影响数据库正常运行的情况下进行操作,这对于生产环境中的数据库尤其重要,因为它避免了服务中断的可能性。 ...
在大多数数据库系统中,如SQL Server、Oracle和MySQL,日志文件通常分为两种模式:简单模式和完整模式。在简单模式下,系统仅保留最近的事务信息,一旦事务完成,日志空间就会被重用。而在完整模式下,日志文件会...
标题“数据库日志已满”通常指的是在使用关系型数据库管理系统(RDBMS)时,数据库的日志文件(如SQL Server的 transaction log 或 MySQL 的 binlog)已经达到了其最大容量,无法再记录新的事务操作。这可能会导致...
MySQL可视化辅助软件是一种提高数据库管理效率的利器,尤其对于初学者和专业开发人员而言,它极大地简化了与MySQL数据库的交互过程。SQLyog Enterprise是这样一款被广泛使用的工具,以其直观的界面和强大的功能而...
在IT领域,尤其是在系统管理和数据分析过程中,经常需要处理大量的日志文件和SQL脚本文件,这些文件往往体积庞大,传统文本编辑器无法高效地进行查看和分析。标题为"大文件查看工具"的资源,正是为了解决这个问题,...
- **收缩日志文件**:`DBCC SHRINKFILE`命令可减小日志文件大小,释放空间。 - **重命名删除**:描述中提到的方法可能指的是通过编程方式(如批处理脚本.bat)将日志文件重命名,然后删除扩展名后的部分。这种方法...
在MySQL 5.6之后,可以通过`OPTIMIZE TABLE`命令来收缩独立表空间的大小。 总的来说,这份MySQL笔记提供了关于数据库性能指标、压力测试方法以及存储引擎特性的详细信息,对于数据库管理员和开发者来说是非常有价值...