LoginSignup
0

More than 5 years have passed since last update.

mariabackupをMroongaに対応させる

Last updated at Posted at 2018-03-08

 mariabackup が Mroonga のファイルに対応していなくて不便だったので、とりあえずpatchを作ってみた。
 作成元は mariadb-10.1.31.tar.gz 。

files/patch-extra_mariabackup_backup_copy.cc
--- 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と同様の処理をするように修正すれば動きそうではありますが)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0