The ARCHIVE storage engine is enabled by default on MariaDB 10.0, but no longer from 10.1.

Therefore, you get a DB unknown error when CiviCRM tries to create a logging db table when logging is active (admin=>system=>misc), for instance when creating a new custom field.

From MariaDB 10.1, the plugin needs to be specifically enabled, for example:

INSTALL SONAME 'ha_archive';

More on https://mariadb.com/kb/en/mariadb/archive/

1 Answer 1


My strong advice to you would be to change the tables to be anything but ARCHIVE. Even InnoDB would be fine and preferred over ARHCIVE. We've had a number of sites have their entire audit schema's become corrupt and its been down to the storage engine being ARCHIVE.

Also you'll probably want to add indexes into the audit schema otherwise you cant access the change log without waiting for minutes.

I think later versions of CiviCRM do not use ARCHIVE storage format by default

  • ARCHIVE is indeed a corruption prone format which even can lead to site outages when things go bad. That said, it's worth mentioning here that switching to InnoDB may significantly increase storage requirements, since ARCHIVE is a compressed format, and InnoDB is not. Commented Mar 26, 2017 at 0:25
  • Thanks Chris, yes, you're right and worth noting. Its a much easier problem to solve though - trying to recover a corrupt ARCHIVE tables is a nightmare! Commented Mar 27, 2017 at 9:33
  • Disks are cheap! Just need to be sure they have enough before ditching ☠ ARCHIVE Commented Mar 27, 2017 at 19:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.