加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

解决事务日志已满问题(9002错误)

(2016-07-06 15:59:20)
标签:

事务日志

9002错误

分类: SQLServer问题集

本文是针对已满事务日志可以采取的几种对应措施,并就以后如何避免出现已满事务日志给赎建议:

              如果事务日志已满,则SQLServer数据库引擎会发出9002错误,当数据库联机或恢复时,日志可能会满。

              如果数据库联机时日志已满,则数据库保持联机状态,但是只能进行读取而不能更新。

              如果恢复过程中日志已满,则数据库引擎将数据库标记为resource  pending。

应对已满事务日志:

          正确响应已满事务日志在某种程度上取决于导致日志已满情况。若要在给定情况下查找阻止日志截断的原因,请使用sys.database目标试图的log_reuse_wait列和log_reuse_wait_desc列。

注意事项:

       如果数据库在恢复过程中出现9002错误,则在解决此问题后,可使用ALTER  database  dataname  set  online 恢复数据库。

响应已满事务日志的备选方法包括

  1.     备份日志;
  2.     释放磁盘空间以便日志可以自动增长;
  3.    将日志文件移动到具有足够空间的磁盘驱动器上;
  4.    增加日志文件的大小;
  5.    在其他磁盘上添加日志文件;
  6.    完成或取消长时间运行的事务。

以下是针对于几种备选情况说明:

   备份日志

     在完整恢复模式或者大容量日志模式下,如果最近尚未备份事务日志,则请立即进行备份以免发生日志截断。

如果从未备份日志,则必须创建两个日志备份,以允许数据库引擎将日志截断到上次备份点。截断日志可释放空间以供新的日志记录使用。若要防止日志再次填满,请经常执行日志备份。

  释放磁盘空间

     可以通过删除或移动其他文件的方法来释放包含数据库事务日志文件的磁盘驱动器上的磁盘空间。释放磁盘空间后,恢复系统将自动扩大日志文件。

   将日志文件移动到其他磁盘

       如果在当前包含日志文件的驱动器上无法释放足够的磁盘空间,请考虑将该文件移至空间充于的其他磁盘驱动器上。

  注意事项

            日志文件决不要放在压缩文件系统中。

           移动日志文件

       在 SQL Server 中,可以通过在 ALTER DATABASE 语句的 FILENAME 子句中指定新的文件位置来移动系统数据库和用户数据库。数据、日志和全文目录文件也可以通过此方法进行移动。 这在下列情况下可能很有用:

  • 故障恢复。 例如,由于硬件故障,数据库处于可疑模式或被关闭。

  • 预先安排的重定位。

  • 为预定的磁盘维护操作而进行的重定位。

增加日志文件大小

       如果日志磁盘上具有可用的空间,则可以增加日志文件的大小。日志文件的最大大小事每个日志文件2TB。

 增加文件大小

        如果禁用自动增长,数据库处于联机状态,并且磁盘上有足够的可用空间,则可以采用以下方法之一:

手动增加文件大小以生成单个增量。

        使用 ALTER DATABASE 语句启用自动增长以针对 FILEGROWTH 选项设置非零增量。

注意:不管哪种情况,如果已达到当前大小限制,则应增加MAXSIZE值。

在其他盘上添加日志文件

        使用 ALTER DATABASE ADD LOG FILE,向具有足够空间的其他磁盘上的数据库中添加新日志文件。

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有