[前][次][番号順一覧][スレッド一覧]

mysql:15663

From: Kouhei Sutou <Kouhei Sutou <kou@xxxxxxxxxx>>
Date: Mon, 30 Jan 2012 14:37:54 +0900 (JST)
Subject: [mysql 15663] [ANN] mroonga 1.20

須藤です。

昨日は今年最初の肉の日なので、MySQL 5.1/5.5/5.6、MariaDB
5.2/5.3で利用可能な全文検索可能なストレージエンジン、mroonga
1.20をリリースしました。
  http://mroonga.github.com/ja/docs/news.html#release-1-20

mroongaは、全文検索エンジンであるgroongaをベースとしたMySQLの
ストレージエンジンです。Tritonnの後継プロジェクトとなります。

ドキュメント:
  http://mroonga.github.com/ja/
インストールガイド:
  http://mroonga.github.com/ja/docs/install.html


○ 注意: アップグレード時にデータベースの再構築が必要

カンのいい方は、今回のリリースでマイナーバージョン(mroongaは
${MAJOR}.${MINOR}${MICRO}というバージョン付け規則になっていま
す)が上がっていることから気づいたかもしれませんが、今回のリ
リースでは以前のリリースとデータベースの互換性がありません。
そのため、1.20にアップグレードする場合はデータベースを作成し
直す必要があります。アップグレード方法は↑のリリース情報ペー
ジにもあるのですが、以下でも紹介します。アップグレードする際
はバックアップも取るなどして慎重に作業してください。

疑問点などある場合は質問してくれれば答えるので、お気軽にどう
ぞ。

○○ 非互換な変更点

このリリースでは、データベースの再作成が必要な変更点が2つあります。

  * ストレージエンジン名を"groonga"から"mroonga"へ改名。
  * DATE、DATETIME、TIMESTAMP型の値にgroongaが提供する時間の値を使うようにした。

DATE型などの分だけであればmysqldumpでダンプしたものをリスト
アするだけでよいのですが、ストレージエンジン名も変わっている
のでダンプしたものを編集する必要があります。具体的には
"CREATE TABLE" SQL内の"ENGINE=groonga"を"ENGINE=mroonga"に変
更する必要があります。


○○ 更新手順

まず、mroongaを使っているデータベースをダンプします:

  % mysqldump MY_MROONGA_DATABASE > database-groonga.dump

ダンプファイル中のストレージエンジンを変更します:

  % sed -e 's/^) ENGINE=groonga/) ENGINE=mroonga/' database-groonga.dump > database-mroonga.dump

"CREATE TABLE"の"ENGINE=groonga"だけが"ENGINE=mroonga"に変更
されていることを確認します。"@@ ... @@"行に"CREATE TABLE"が含
まれているかを確認します。この行が"CREATE TABLE"を含んでいた
ら、その変更はほぼ間違いなく"CREATE TABLE"用の変更です:

  % diff -up database-groonga.dump database-mroonga.dump
  --- database-groonga.dump     2012-01-29 16:53:20.732624670 +0900
  +++ database-mroonga.dump     2012-01-29 16:54:47.608420981 +0900
  @@ -29,7 +29,7 @@ CREATE TABLE `diaries` (
     PRIMARY KEY (`id`),
     FULLTEXT KEY `title_index` (`title`),
     FULLTEXT KEY `body_index` (`body`)
  -) ENGINE=groonga DEFAULT CHARSET=utf8;
  +) ENGINE=mroonga DEFAULT CHARSET=utf8;
   /*!40101 SET character_set_client = @saved_cs_client */;

   --

既存のデータベースを削除します。

  % mysql -u root -e 'DROP DATABASE MY_MROONGA_DATABASE'

"mroonga"ストレージエンジンにアップグレードします。Debian
GNU/LinuxやUbuntuでは apt-get を使います。CentOSやFedoraでは
yum を使います。

Debian GNU/LinuxまたはUbuntuの場合:
  % sudo apt-get install -y mysql-server-mroonga

CentOSまたはFedoraの場合:
  % sudo yum remove -y mysql-mroonga
  % sudo yum install -y mysql-mroonga

"yum install"の前に"yum remove"をするのを忘れないでください。
今のmroongaのRPMの作りがあまりよくなくて"yum remove"を忘れる
とプラグイン管理テーブル(?)が壊れてしまいます。

ソースからインストールする場合(未確認だがこれでいけるはず):
  % mysql -u root -e "DROP FUNCTION last_insert_grn_id"
  % mysql -u root -e "UNINSTALL PLUGIN groonga"
  % sudo make install 
  % mysql -u root -e "INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so'"
  % mysql -u root -e "CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_mroonga.so'"

データベースを作り直します:

  % mysql -u root -e 'CREATE DATABASE MY_MROONGA_DATABASE'

修正したダンプファイルを使ってデータベースを復旧します:

  % mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump

これで1.20を使うことができます。"SHOW CREATE TABLE テーブル
名"などで"ENGINE=mroonga"になっていることを確認してください。

○ 変更点

1.11からの変更点は以下の通りです。
  http://mroonga.github.com/ja/docs/news.html#release-1-20

1.20リリース - 2012/01/29
-------------------------

改良
^^^^

  * MySQL 5.5.20に対応。
  * MySQL 5.1.61に対応。
  * groonga 1.3.0以降を必須にした。
  * [非互換] ストレージエンジン名を"groonga"から"mroonga"に変更。
  * UTF8_BINコレーションに対応。 [#1150]
  * strict-aliasingの警告が出ないようにした。 [@issmさんが報告]
  * DECIMALに対応した。 [#1249] [@Kiskeさんが報告]
  * [storage mode] HA_KEYREAD_ONLY対応。インデックス内のカラ
    ム値のアクセスが高速になるはず。 [#1212]
  * [ストレージモード] float値のマルチカラムインデックスに対応。
  * [ストレージモード] double値のマルチカラムインデックスに対応。
  * [ストレージモード] enum型とset型をより適切なgroongaのデー
    タ型に対応付けるようにした。
  * [ラッパーモード] REPAIR TABLE対応。
  * [ストレージモード] viewでの count(*) に対応。 [#1255]
    [Takahiro Nagaiさんが報告]
  * [非互換] DATE、DATETIME、TIMESTAMP型の値にgroongaが提供す
    る時間の値を使うようにした。

修正
^^^^

  * [debian] replacesとbreaksのmysql-server-groongaのバージョ
    ンを修正。 [@ytaka5さんが報告]
  * [doc] 実行結果が間違っていた問題を修正。 [Hidekazu Tanakaさんが報告]
  * [ラッパーモード] メモリリークを修正。 [montywiさんが報告]

感謝
^^^^

  * @ytaka5さん
  * Hidekazu Tanakaさん
  * @issmさん
  * montywiさん
  * @Kiskeさん

-- 
須藤 功平 <kou@xxxxxxxxxx>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

プログラミングが好きなソフトウェア開発者を募集中:
  http://www.clear-code.com/recruitment/

[前][次][番号順一覧][スレッド一覧]