7.3.22. dump

7.3.22.1. 概要

dump - データベースのスキーマとデータを出力する

Groonga組込コマンドの一つであるdumpについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、 またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。

dumpはデータベースのスキーマとデータを後から読み込めるフォーマットで出力します。

dumpの結果は大きくなるため、 主にコマンドラインから使うことを想定しています。データベースのバックアップが主な利用方法です。

dumpが出力するフォーマットは直接Groongaが解釈できるフォーマットです。そのため、以下のようにしてデータベースをコピーすることができます。

% groonga original/db dump > dump.grn
% mkdir backup
% groonga -n backup/db < dump.grn

7.3.22.2. 構文

dump [tables=null]
     [dump_plugins=yes]
     [dump_schema=yes]
     [dump_records=yes]
     [dump_indexes=yes]
     [dump_configs=yes]
     [sort_hash_table=no]

7.3.22.3. 使い方

dumpの挙動を確認するためのスキーマ定義とサンプルデータは以下の通りです。

plugin_register token_filters/stop_word
table_create Bookmarks TABLE_HASH_KEY ShortText
column_create Bookmarks title COLUMN_SCALAR ShortText
table_create Lexicon TABLE_PAT_KEY ShortText
table_create Sites TABLE_NO_KEY
column_create Sites url COLUMN_SCALAR ShortText
column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title
load --table Bookmarks
[
{"_key":"Groonga", "title":"Introduction to Groonga"},
{"_key":"PGroonga", "title":"Introduction to PGroonga"},
{"_key":"Mroonga", "title":"Introduction to Mroonga"}
]
load --table Sites
[
{"_id": 1, "url":"http://groonga.org"},
{"_id": 2, "url":"http://mroonga.org"}
]

データベースのすべてのデータをダンプ:

> dump
plugin_register token_filters/stop_word

table_create Sites TABLE_NO_KEY
column_create Sites url COLUMN_SCALAR ShortText

table_create Bookmarks TABLE_HASH_KEY ShortText
column_create Bookmarks title COLUMN_SCALAR ShortText

table_create Lexicon TABLE_PAT_KEY ShortText

load --table Sites
[
["_id","url"],
[1,"http://groonga.org"],
[2,"http://mroonga.org"]
]

load --table Bookmarks
[
["_key","title"],
["Groonga","Introduction to Groonga"],
["PGroonga","Introduction to PGroonga"],
["Mroonga","Introduction to Mroonga"]
]

create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

スキーマと指定したテーブルのデータをダンプ:

> dump Bookmarks
plugin_register token_filters/stop_word

table_create Sites TABLE_NO_KEY
column_create Sites url COLUMN_SCALAR ShortText

table_create Bookmarks TABLE_HASH_KEY ShortText
column_create Bookmarks title COLUMN_SCALAR ShortText

table_create Lexicon TABLE_PAT_KEY ShortText

load --table Bookmarks
[
["_key","title"],
["Groonga","Introduction to Groonga"],
["PGroonga","Introduction to PGroonga"],
["Mroonga","Introduction to Mroonga"]
]

column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

プラグインのみダンプ:

> dump --dump_schema no --dump_records no --dump_indexes no
plugin_register token_filters/stop_word

レコードのみダンプ:

> dump --dump_schema no --dump_plugins no --dump_indexes no
load --table Sites
[
["_id","url"],
[1,"http://groonga.org"],
[2,"http://mroonga.org"]
]

load --table Bookmarks
[
["_key","title"],
["Groonga","Introduction to Groonga"],
["PGroonga","Introduction to PGroonga"],
["Mroonga","Introduction to Mroonga"]
]

スキーマのみダンプ:

> dump --dump_records no --dump_plugins no --dump_indexes no
table_create Sites TABLE_NO_KEY
column_create Sites url COLUMN_SCALAR ShortText

table_create Bookmarks TABLE_HASH_KEY ShortText
column_create Bookmarks title COLUMN_SCALAR ShortText

table_create Lexicon TABLE_PAT_KEY ShortText

ハッシュテーブルのデータをソートしてダンプ:

> dump Bookmarks --sort_hash_table yes
plugin_register token_filters/stop_word

table_create Sites TABLE_NO_KEY
column_create Sites url COLUMN_SCALAR ShortText

table_create Bookmarks TABLE_HASH_KEY ShortText
column_create Bookmarks title COLUMN_SCALAR ShortText

table_create Lexicon TABLE_PAT_KEY ShortText

load --table Bookmarks
[
["_key","title"],
["Groonga","Introduction to Groonga"],
["Mroonga","Introduction to Mroonga"],
["PGroonga","Introduction to PGroonga"]
]

column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

7.3.22.4. 引数

いくつか省略可能な引数があります。

7.3.22.4.1. 省略可能引数

7.3.22.4.1.1. tables

出力対象のテーブルを「,」(カンマ)区切りで指定します。存在しないテーブルを指定した場合は無視されます。

7.3.22.4.1.2. dump_plugins

バージョン 5.0.3 で追加.

登録されたプラグインを出力に含めるかどうかをカスタマイズすることができます。登録されたプラグインを出力から除外する場合、 no を指定します。

デフォルト値は yes です。

7.3.22.4.1.3. dump_schema

バージョン 5.0.3 で追加.

データベーススキーマを出力に含めるかどうかをカスタマイズすることができます。データベーススキーマを出力から除外する場合、 no を指定します。

デフォルト値は yes です。

7.3.22.4.1.4. dump_records

バージョン 5.0.3 で追加.

レコードを出力に含めるかどうかをカスタマイズすることができます。レコードを出力から除外する場合、 no を指定します。

デフォルト値は yes です。

7.3.22.4.1.5. dump_indexes

バージョン 5.0.3 で追加.

インデックスを出力に含めるかどうかをカスタマイズすることができます。インデックスを出力から除外する場合、 no を指定します。

デフォルト値は yes です。

7.3.22.4.1.6. sort_hash_table

バージョン 7.0.5 で追加.

ハッシュテーブルの出力を昇順にソートして出力することができます。レコードをソートして出力する場合、 yes を指定します。

デフォルト値は no です。

7.3.22.5. 戻り値

データベースのスキーマとデータをGroongaの組み込みコマンド呼び出し形式で出力します。output_type指定は無視されます。