Mariadb Columnstore: переполнение буфера версии
Я пытаюсь добавить новые данные в таблицу columnstore, но она возвращает эту ошибку:
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
значение, но проблема все еще происходит. Я даже не могу создать новую таблицу с помощью механизма columnstore. Когда я пытаюсь бежать:
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
файл в моих каталогах данных (16 часов), некоторые из них имеют размер 1G. Я полагаю, что они достигли предела 1G в Columnstore.xml
файл. Даже если я увеличу ограничение до 5G в xml-файле, размер versionbuffer.cdf не увеличится.
Как решить эту проблему? Есть ли способ очистить файл versionbuffer?
1 ответ
Вы можете попытаться остановить базу данных, переименовать буфер версий и запустить его снова. Если он запускается и создает буфер версий, все готово. Если нет, переименуйте его обратно, и все снова будет работать. Просто убедитесь, что нет никаких транзакций, ожидающих при остановке системы.
В буфере версий хранятся транзакции в полете, что позволяет выполнять операции безопасного отката. если нет ожидающих транзакций, не должно быть проблем при переименовании буфера.
Также обратите внимание, что буфер версий выделяется для каждого dbroot - если у вас их больше одного.
У меня была такая же проблема в прошлом, я думаю, что это сработало, но я не уверен на 100%.