SequoiaDB 运行日志报错-203的解决办法

在进行持续数据操作后,发现报错-203错误,通过查阅巨杉文档发现是因为日志文件大小不足。但是修改后发现,实际的产生的原因并不是日志文件大小不足。 产生这个问题的原因一般有两个。

1. 事务日志大小确实不足,在大量操作的情况下可能出现事务日志不足的情况(默认事务日志大小64MB,文件数20)

2. 存在事务开启未提交或回滚的状况,导致该事务一直占用事务日志(未提交或者回滚不能清除)。当该事务一直积压在事务日志中,其他新的事务记录进不来,导致日志空间不足的情况。

 

而我的问题是第二个导致的,我的一个事务操作一直没有提交。

该问题的具体排查方法问题排查:

-203是通过协调节点报错显示的,报错时会提示哪个数据节点报错的-203。 直连该数据节点,通过snapshot(8)事务快照查看该节点的事务,在通过sessionID定位到某一个会话,通过snapshot(2)查看会话LastOpBegin 、 LastOpEnd两个定位到是哪个会话卡死(之前我查这两个值不准,存在无值或者last的时间早与begin时间的问题,不知道是否已经修复),通过force该会话,尝试数据操作是否还存在报错-203的问题。

应用端的问题会导致-203问题的发生。 有可能是应用端显示的为所有操作开启了事务(ORM框架),却未进行之后的提交或者回滚,导致的事务日志不足。具体情况再具体分析,但是大致思路应该差不多。

如果不是因为大小不足的原因,单纯调大事务日志大小,会再次发生这个问题。

 

你可能感兴趣的:(巨杉数据库)