在 SQL Server 2000 和 SQL Server 2005 中,每个数据库都至少包含一个数据文件和一个事务日志文件。SQL Server 在该数据文件中以物理方式存储数据。事务日志文件存储您对 SQL Server 数据库执行的所有修改的详细信息,以及执行每个修改的事务的详细信息。由于事务完整性被视为 SQL Server 的一个基本而固有的特点,因此不能在 SQL Server 中关闭对事务详细信息的记录。
在逻辑意义上,事务日志文件被划分为更小的段,这些段被称为虚拟日志文件。在 SQL Server 2000 中,您可以将事务日志文件配置为根据需要扩展。用户可以控制事务日志的扩展,也可以将其配置为使用所有可用的磁盘空间。SQL Server 对事务日志文件大小所做的任何修改(如截断或增长事务日志文件)都是以虚拟日志文件为单位执行的。
如果与 SQL Server 数据库相对应的事务日志文件被充满,而且事务日志文件选项被设置为自动增长,则事务日志文件将以虚拟日志文件为单位增长。有时,事务日志文件可能变得非常大,以致没有足够的磁盘空间。如果事务日志文件不断增长,致使日志文件占用了所有可用的磁盘空间而无法继续扩展,则将无法再对数据库执行任何数据修改操作。不仅如此,由于事务日志缺乏扩展空间,SQL Server 可能会将您的数据库标记为可疑数据库。
减小事务日志的大小
如果事务日志已经增长到无法接受的限度,而您希望从这种状况中恢复,则必须减小事务日志的大小。为此,必须截断事务日志中非活动的事务并收缩事务日志文件。
注意:事务日志对于维护数据库的事务完整性非常重要。因此,即使您为数据库和事务日志制作了备份,也不得删除事务日志文件。
截断事务日志中非活动的事务
当事务日志增长到无法接受的限度时,您必须立即备份事务日志文件。创建事务日志文件的备份后,SQL Server 会自动截断事务日志的非活动部分。事务日志文件的非活动部分包含已完成的事务,因此,在恢复过程中 SQL Server 将不再用到事务日志文件。SQL Server 会重新利用事务日志中这段被截断的非活动空间,而不会允许事务日志继续增长并占用更多空间。
要进一步了解在备份事务日志以及从事务日志备份中还原时必须考虑的问题,请参见 SQL Server 联机丛书中的以下主题:
事务日志备份
事务日志备份和还原
还可以通过截断的方法,从事务日志文件中删除非活动的事务。
重要说明:手动截断事务日志文件后,必须在创建事务日志备份之前创建一个完整的数据库备份。
收缩事务日志文件
备份操作或截断方法都不会减小日志文件的大小。要减小事务日志文件的大小,必须收缩事务日志文件。要将事务日志文件收缩到所需大小并删除无用的页面,您必须使用 DBCC SHRINKFILE 操作。DBCC SHRINKFILE Transact-SQL 语句只能收缩日志文件中的非活动部分。
注意:当 DBCC SHRINKFILE Transact-SQL 语句单独使用时,不能截断日志并收缩日志文件中的已用空间。
防止事务日志文件异常增长
要防止事务日志文件异常增长,建议使用以下方法之一:
将事务日志文件的大小设置为一个较大值,以避免事务日志文件自动扩展。
充分评估最佳内存大小后,使用内存单位而不是百分比来配置事务日志文件的自动扩展。
有关配置自动增长选项时需要考虑的问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
http://support.microsoft.com/kb/315512/ SQL Server 中自动增长和自动收缩配置注意事项
更改恢复模式。如果发生灾难或数据损坏,您必须恢复数据库,以维护数据库数据的一致性和事务的完整性。根据数据在数据库中的重要程度,您可以选择以下恢复模式之一,以便确定如何备份数据以及数据丢失可能给您带来的风险:
简单恢复模式 (SIMPLE)
完整恢复模式 (FULL)
大容量日志记录恢复模式 (BULK-LOGGED)
使用简单恢复模式,您可以将数据库恢复到最近的数据库备份。使用完整恢复模式或大容量日志记录恢复模式,您可以通过使用事务日志文件备份来还原数据库,这样可以将数据库恢复到故障发生时的故障点。
默认情况下,在 SQL Server 2000 和 SQL Server 2005 中,SQL Server 数据库的恢复模式被设置为完整恢复模式。在完整恢复模式中,会定期备份事务日志,从而防止事务日志文件增长得过大,以致与数据库大小相比严重失衡。相比之下,如果不执行事务日志的定期备份,事务日志文件会不断增长,直至充满整个磁盘,而且您可能无法对 SQL Server 数据库执行任何数据修改操作。
如果您不希望在灾难恢复操作过程中使用事务日志文件,则可以从完整恢复模式更改为简单恢复模式。
定期备份事务日志文件,删除事务日志中非活动的事务。
将事务设计为小型事务。
确保没有任何未遂事务继续无限期地运行。
将“更新统计”选项安排为每天运行。
要对索引进行碎片整理以改善生产环境中的工作负荷性能,请使用 DBCC INDEXDEFRAG Transact-SQL 语句而不是 DBCC DBREINDEX Transact-SQL 语句。如果运行 DBCC DBREINDEX 语句,当 SQL Server 数据库处于完整恢复模式时,事务日志可能会大大扩展。此外,DBCC INDEXDEGRAG 语句不像 DBCC DBREINDEX 语句那样长时间持有锁。
如果您必须运行 DBCC DBREINDEX 语句(因为这是一个作业,是数据库维护计划的一部分),则必须将该作业分解为多个作业。此外,在执行这些作业的间歇,还必须经常备份事务日志。
分享到:
相关推荐
用sql语句dbcclog查看SQLServer数据库的事务日志[定义].pdf
每个 SQL Server 数据库都有事务日志,用于记录所有事务以及每个事务所做的数据库修改。 你是否想读取和分析SQL Server日志文件 (.ldf) ?正找不到合适的软件呢?以上一款强大的sql数据库日志分析工具,可以轻松打开...
事务日志备份保留上次事务日志备份后发生的所有事务的痕迹;它还允许你把数据库恢复到数据库发生错误之前的一个时间点。事务日志备份按顺序发生,从而建立一个备份链。在把一连串事务日志备份恢复到一个时间点时,...
请备份该数据库的事务日志以释放一些日志空间。 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的 解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限。 在网上Google了很久,试了些...
总结的如何解决SQL数据库日志已满的方法,希望对大家有帮助
如果SQL 数据库日志已比较大,务必先做一次事务日志收缩。 本文档属于已收缩事务日志后编写的文档,切记切记
据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问;它只用在错误恢复的情况下。因为是在SQL Server 2005中新引入...
详细介绍了,通过[fn_dblog]函数,查询出所有的数据库的操作日志,以及针对此函数,对应关键列名的详细介绍。图文并茂,通过自身测试,提供详细的分析解释。
教程名称:手把手教你整理自己的SQL Server日志课程目录:【】MSSQL数据库日志满的快速解决办法【】SQL2008删除过期备份【】sqlserver数据库事务日志备份与恢复原理【】SQL_server日志清除法【】利用日志传送实现高...
最近服务器执行收缩日志文件大小的job老是报错,小编抽时间把此问题的解决方案整理了一下,特此分享到脚本之家平台,供大家学习
SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为: 在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database ‘***’ is full due to ‘REPLICATION'(数据库“***...
SQLSERVER通过事务日志实现双机,备份间隔可以实现几秒一次。
sqlserver日志分析工具 ...SQLServer数据库日志分析数据恢复工具是一种专门用于分析和恢复SQLServer数据库日志的工具。它可以帮助用户检查数据库日志并找到有问题的事务,以便进行恢复。它还可以用来执行数据库还原操作
日志文件满而造成SQL数据库无法写入文件时,本文介绍了可以用清空日志、删除LOG文件快速清除SQLServer日志的方法。
SQLSERVER数据库因日志文件太大,造成写数据慢的解决方法-附件资源
1.SQL SERVER Always On收缩日志文件详细操作; 2.针对收缩日志出现“cannot be shrunk until all secondaries have moved past the point where the log was added ”问题的分析及解决方法;
通过SQL Server的事务日志传送功能实现数据库备份.pdf
SQLServer要在硬盘的日志文件中有记录,一边异常重启后重新修改。 2、所有没有提交的事务所产生的日志及其后续的日志记录: 所有日志都有严格顺序,不能有跳跃。 3、要做备份的日志记录: 如果恢复...
SQLserver日志恢复工具适用版本SQL2005或SQL2008版本,用于查看日志和恢复误删除数据,针对误删除MSSQL数据行的恢复。主要针对deletefrom 语句。 SQLserver日志恢复工具具体使用简介: 程序功能:找回误删除的数据...
通过《SQL Server 数据库备份和还原认识和总结(一)》,相信您对数据备份和还原有了一个更深入的认识,在上文中我没有对事务日志做剖析,在此推荐宋沄剑的文章,对事务日志做了比较详细的讲解://...