[groonga-dev,02430] Re: ベクターカラム使用時のダンプファイルからのDB復旧について

Back to archive index

Naoya Murakami visio****@gmail*****
2014年 6月 14日 (土) 23:18:33 JST


Groongaユーザの村上です。

ベクターカラムがあるテーブルを含むDBを、mysqldumpで生成したSQLファイルから復旧する際に問題が発生しました。
>
>
> このうち、postsはMroongaストレージエンジンのテーブル、vector_tagsはposts.vector_tagsカラムをベクターカラムとして使うための従属的なMroongaテーブルとします。
> このDBをダンプして復旧しようとすると、CREATE TABLE postsが走る時点でエラーになってしまいます。
>

Groongaのダンプ系のコマンドでは参照関係を考慮してダンプしてくれ
ますが、MySQLではGroongaの構造までは考慮しないのでこうなり
うるでしょうね。

本件について、ストレージエンジンのMroongaでMySQLのクライアント
コマンドのmysqldumpをどうこうするってのは、できなそうだなーって
感じました。
(感じただけで、調べたわけではないのでできるかどうかはわかりません。)

私には根本的な解決方法は示せませんが、私ならきっと以下のどちらかで
アプローチすると思います。

案1
・mysqldumpでダンプされるテーブルの順番の規則をソースなり
実行してみるなりして調べる。
その規則にのっとって、リファレンスベクター用の参照先テーブルは、
参照元のテーブルよりもダンプ時に後に来るようにつくる。
たとえば、テーブル名順にダンプされるなら、かならず後ろに来るように
適当な接頭辞つけるとか。

案2
・データのみダンプ、テーブル定義のみダンプ、特定テーブルを除くといった
mysqldumpのオプションを駆使して、参照関係にあるテーブルのみが先に
作られるように実行するスクリプトを作る。

http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

一ユーザの意見で参考になるかはわかりませんが、よければご検討ください。

以上、よろしくお願いします。



groonga-dev メーリングリストの案内
Back to archive index