mariabackup が Mroonga のファイルに対応していなくて不便だったので、とりあえずpatchを作ってみた。
作成元は mariadb-10.1.31.tar.gz 。
--- extra/mariabackup/backup_copy.cc.orig 2018-02-04 11:30:30.000000000 +0900
+++ extra/mariabackup/backup_copy.cc
@@ -2044,6 +2044,15 @@
if (!pname)
pname = info.name;
+ /* copy mroonga files */
+ const char *mrn_file = ".mrn";
+ if (strstr(pname, mrn_file) != NULL) {
+ ret = copy_file(ds_data, info.name, info.name, 1);
+ if (!ret) {
+ break;
+ }
+ }
+
/* Copy aria log files, and aws keys for encryption plugins.*/
const char *prefixes[] = { "aria_log", "aws-kms-key" };
for (size_t i = 0; i < array_elements(prefixes); i++) {
datadir内のファイルをコピーをしている部分があったので、ファイル名に".mrn"が含まれている場合もコピーするようにしてみた。コピーしたあとはcontinueとかしたほうがいいような気もする。
(あと、aria log等をcopy_file()してるとこでretのチェックしてるけど、forの外でもbreakしなくていいのかはちょっと気になった)
補足
ロックの状態等によっては上記の修正ではNGかも? と思ってソースを確認したところ、いちおうロック取得後に実行されている模様。
(backup_start()内で、lock_tables() の後でbackup_files()及びbackup_files_from_datadir()が実行されていた。上記はbackup_files_from_datadir()内の修正)
補足2
xtrabackup2.3も同様に対応できるんじゃないかと思ったのですが、backup_copy.ccにbackup_files_from_datadir()に相当する部分がなかったので、そこも作る必要がありそうでした。
(mariabackupと同様の処理をするように修正すれば動きそうではありますが)