为什么会出现日志满的问题,如何避免和处理?
(1) 日志文件太小
日志文件的默认大小是4M,如果这个问题是日志文件太小导致的,又可以通过下述步骤来增大日志文件。
A. 关闭数据库.
B. 增大DB_JNLSZ 或者增加日志文件 DB_JnFil, 然后在dmconfig.ini中设置 DB_SMODE=2以新日志模式启动。
C. 重启数据库。
(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