0

我正在尝试将新数据添加到列存储表,但它返回此错误:

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.

当我查看versionbuffer.cdf数据目录(下午 4 个节点)中的文件时,其中一些文件大小为 1G。我想他们达到了Columnstore.xml文件中的 1G 限制。即使我在 xml 文件中将限制增加到 5G,versionbuffer.cdf 大小也不会增加。

如何解决这个问题?有没有办法清空版本缓冲区文件?

4

1 回答 1

0

您可以尝试停止数据库,重命名版本缓冲区并重新启动它。如果它启动并创建版本缓冲区,你就完成了。如果没有,请将其重命名,然后事情将再次起作用。只需确保停止系统时没有待处理的事务。

版本缓冲区存储正在进行的事务以允许安全的回滚活动。如果没有待处理的事务,重命名缓冲区时应该没有问题。

另请注意,版本缓冲区是按 dbroot 分配的 - 如果您有多个。

我过去也遇到过同样的问题,我认为它有效,但我不是 100% 确定。

于 2018-04-06T16:11:04.417 回答