我正在尝试向列存储表中添加新数据,但它返回以下错误:
ERROR 1815 (HY000) at line 25: Internal error: CAL0001: Insert Failed: IDB-2008: The version buffer overflowed. Increase VersionBufferFileSize or limit the rows to be processed.
我已经增加了VersionBufferFileSize的值,但问题仍然存在。我甚至不能使用列存储引擎创建一个新的表。当我尝试运行时:
create table x(a int) engine=columnstore
我得到了这个错误:
Internal error: CAL0009: (2)Create table failed due to WE: Error updating calpontsys.systable:BRM block version buffer overflow error.
当我查看我的数据目录(4 pm节点)中的versionbuffer.cdf文件时,其中一些是1G大小。我猜他们在Columnstore.xml文件中达到了1G的限制。即使我在xml文件中将限制增加到5G,versionbuffer.cdf大小也不会增加。
如何解决这个问题?有没有办法清空versionbuffer文件?
发布于 2018-04-07 00:11:04
您可以尝试停止数据库,重命名版本缓冲区,然后重新启动它。如果它启动并创建版本缓冲区,那么您就完成了。如果没有,请将其重命名,这样事情就会恢复正常。只需确保在停止系统时没有挂起的事务。
版本缓冲区正在存储正在进行的事务,以允许安全的回滚活动。如果没有挂起的转换,则重命名缓冲区时应该没有问题。
还要注意,版本缓冲区是为每个dbroot分配的-如果您有多个dbroot的话。
我在过去也遇到过同样的问题,我认为它是有效的,但我不是100%确定。
https://stackoverflow.com/questions/44116257
复制相似问题