大连网站制作客服
主营业务
  • 网站制作
  • 网站维护
  • 网站推广
  • 域名空间
联系电话
联系人:尹先生
QQ:1050706570
E-mail:biz@noonenet.cn
地址:大连市甘井子区哲林北园29号
·首页 >> 网站技术 >> SQL数据库 - 事务日志异常增长

SQL数据库 - 事务日志异常增长

  更新时间:2009-8-15 6:10:50    编辑:阿帆

     当事务日志扩展到无法接受的限度时您必须执行的步骤。事务日志的扩展会导致 Microsoft SQL Server 数据库无法使用。; C  S
( o) }7 Q: Y0 ~

     在 SQL Server 2000 和 SQL Server 2005 中,每个数据库都至少包含一个数据文件和一个事务日志文件。SQL Server 在该数据文件中以物理方式存储数据。事务日志文件存储您对 SQL Server 数据库执行的所有修改的详细信息,以及执行每个修改的事务的详细信息。由于事务完整性被视为 SQL Server 的一个基本而固有的特点,因此不能在 SQL Server 中关闭对事务详细信息的记录。
% ]2 [) T4 s6 @4 H* D
, E% Y2 q8 [  i; `
     在逻辑意义上,事务日志文件被划分为更小的段,这些段被称为虚拟日志文件。在 SQL Server 2000 中,您可以将事务日志文件配置为根据需要扩展。用户可以控制事务日志的扩展,也可以将其配置为使用所有可用的磁盘空间。SQL Server 对事务日志文件大小所做的任何修改(如截断或增长事务日志文件)都是以虚拟日志文件为单位执行的。% o9 z8 I: }8 a

      如果与 SQL Server 数据库相对应的事务日志文件被充满,而且事务日志文件选项被设置自动增长,则事务日志文件将以虚拟日志文件为单位增长。有时,事务日志文件可能变得非常大,以致没有足够的磁盘空间。如果事务日志文件不断增长,致使日志文件占用了所有可用的磁盘空间而无法继续扩展,则将无法再对数据库执行任何数据修改操作。不仅如此,由于事务日志缺乏扩展空间,SQL Server 可能会将您的数据库标记为可疑数据库。

( w4 w7 S- _- V" N
      减小事务日志的大小如果事务日志已经增长到无法接受的限度,而您希望从这种状况中恢复,则必须减小事务日志的大小。为此,必须截断事务日志中非活动的事务并收缩事务日志文件。; ^' k% F! S+ Z8 M

注意:事务日志对于维护数据库的事务完整性非常重要。因此,即使您为数据库和事务日志制作了备份,也不得删除事务日志文件。7 `* o  Y8 u2 c+ Y2 f& Q


      截断事务日志中非活动的事务当事务日志增长到无法接受的限度时,您必须立即备份事务日志文件。创建事务日志文件的备份后,SQL Server 会自动截断事务日志的非活动部分。事务日志文件的非活动部分包含已完成的事务,因此,在恢复过程中 SQL Server 将不再用到事务日志文件。SQL Server 会重新利用事务日志中这段被截断的非活动空间,而不会允许事务日志继续增长并占用更多空间。
      要进一步了解在备份事务日志以及从事务日志备份中还原时必须考虑的问题,请参见 SQL Server 联机丛书中的以下主题: * \! `' X7 Z, t' \. v

  • 事务日志备份
  • 事务日志备份和还原

还可以通过截断的方法,从事务日志文件中删除非活动的事务。有关截断事务日志的其他信息,请参见 SQL Server 联机丛书中的“截断事务日志”主题。
 a
重要说明:手动截断事务日志文件后,必须在创建事务日志备份之前创建一个完整的数据库备份。; Z. V% X& e7 B/ Y. ]' X

收缩事务日志文件备份操作或截断方法都不会减小日志文件的大小。要减小事务日志文件的大小,必须收缩事务日志文件。要将事务日志文件收缩到所需大小并删除无用的页面,您必须使用 DBCC SHRINKFILE 操作。DBCC SHRINKFILE Transact-SQL 语句只能收缩日志文件中的非活动部分。  ?8 U) }9 ~( T' E2 g! U

注意:当 DBCC SHRINKFILE Transact-SQL 语句单独使用时,不能截断日志并收缩日志文件中的已用空间。: _3 s) g0 F, N9 ?5 g9 M
* ?! ]. z! ~$ G6 o" a
: T- s9 @, ^0 p; |4 v
防止事务日志文件异常增长要防止事务日志文件异常增长,建议使用以下方法之一:

  • 将事务日志文件的大小设置为一个较大值,以避免事务日志文件自动扩展。
  • 充分评估最佳内存大小后,使用内存单位而不是百分比来配置事务日志文件的自动扩展。$ X% g: [( W& i* N7 H8 n3 D

    有关配置自动增长选项时需要考虑的问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 315512  (http://support.microsoft.com/kb/315512/ ) SQL Server 中自动增长和自动收缩配置注意事项 8 j/ b3 B# R9 Y, Q
  • 更改恢复模式。如果发生灾难或数据损坏,您必须恢复数据库,以维护数据库数据的一致性和事务的完整性。根据数据在数据库中的重要程度,您可以选择以下恢复模式之一,以便确定如何备份数据以及数据丢失可能给您带来的风险:
    • 简单恢复模式 (SIMPLE)
    • 完整恢复模式 (FULL)
    • 大容量日志记录恢复模式 (BULK-LOGGED)
    使用简单恢复模式,您可以将数据库恢复到最近的数据库备份。使用完整恢复模式或大容量日志记录恢复模式,您可以通过使用事务日志文件备份来还原数据库,这样可以将数据库恢复到故障发生时的故障点。
    ?' j, I
    默认情况下,在 SQL Server 2000 和 SQL Server 2005 中,SQL Server 数据库的恢复模式被设置为完整恢复模式。在完整恢复模式中,会定期备份事务日志,从而防止事务日志文件增长得过大,以致与数据库大小相比严重失衡。相比之下,如果不执行事务日志的定期备份,事务日志文件会不断增长,直至充满整个磁盘,而且您可能无法对 SQL Server 数据库执行任何数据修改操作。0 g! K: P  i( a1 I) N

    如果您不希望在灾难恢复操作过程中使用事务日志文件,则可以从完整恢复模式更改为简单恢复模式。
  • 定期备份事务日志文件,删除事务日志中非活动的事务。
  • 将事务设计为小型事务。
  • 确保没有任何未遂事务继续无限期地运行
  • 将“更新统计”选项安排为每天运行。
  • 要对索引进行碎片整理以改善生产环境中的工作负荷性能,请使用 DBCC INDEXDEFRAG Transact-SQL 语句而不是 DBCC DBREINDEX Transact-SQL 语句。如果运行 DBCC DBREINDEX 语句,当 SQL Server 数据库处于完整恢复模式时,事务日志可能会大大扩展。此外,DBCC INDEXDEGRAG 语句不像 DBCC DBREINDEX 语句那样长时间持有锁。

 

原载: No.1网络工作室 http://www.noonenet.cn/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。


Tags:sql 日志 快速 异常 增长 增大 太大
同类文章:
· Asp发邮件 - Jmail组件介绍
· 纯脚本loading效果
· js常用小技巧
· Asp - 学习Timer函数
· Asp - 学习DataAdd函数
返回新闻列表
top
本站关键字:大连网站制作 - 大连网站建设 - 大连网页制作
CopyRight © 2009-2012 No.1网络工作室 All Rights Reserved  sitemap
地址:大连市甘井子区哲林北园29号 电话:13889684613 E-mail:biz@noonenet.cn QQ:1050706570
logo