为什么会出现日志满的问题,如何避免和处理?

~ 0 min
2017-01-18 10:18

(1) 日志文件太小

日志文件的默认大小是4M,如果这个问题是日志文件太小导致的,又可以通过下述步骤来增大日志文件。

A. 关闭数据库.
B. 增大DB_JNLSZ 或者增加日志文件 DB_JnFil, 然后在dmconfig.ini中设置   DB_SMODE=2以新日志模式启动。

C. 重启数据库。

(2) 存在长事务

  1. 将长事务分割成几个短事务。
  2. 如果设置autocommit off关闭自动提交,要及时执行提交操作 "commit"。

(3) 备份模式开启

当备份服务开启的时候,直到备份操作结束日志才能被释放,所以要及时的执行备份。

(4)处于表复制环境

  A. 我们测试发现在master端发生日志满是因为load数据库的时候创建触发器,解决方案是在load数据库的时候使用选项"column number" (默认1000) :

   dmSQL> load db from xxxxx 100;

  B. 如果日志满发生在slave端,导致的原应该是创建复制的时候使用了选项 "CLEAR and FLUSH", 可以通过在load数据库的时候关闭日志来避免日志满的发生,也就是在无日志模式下load数据库。

     dmSQL> set loaddb fast;

     dmSQL> load db from xxxxx 100;

     dmSQL> set loaddb safe;

版本: All versions

Product: Normal/Bundle

Platform: Windows/Linux

平均分: 0 (0 投票)

你不能对该内容发表评论

标签