Database JUNKY

MySQL,MariaDBを中心としたブログです

OSSなDWH InfiniDB の話 ④ ~InnoDB エンジンと共存する方法

いまさら気づいたのですが、Infinidb には、標準のセットアップでは、InnoDBが入っておりません。標準でインストールされているストレージエンジンはCSV、MRG_MYISAM、MEMORY、 MyISAM、InfiniDBの5つのエンジンのみになります。DWHがメインの利用方法なので、あえてはずしてあるのかと思いますが、やっはり使いたいですよね?Innodbは、プラグイン(Plugin)として実装できるように作られております。そんな手順を掲載します。

[shell] mysql> show engines; + + + + + + + | Engine     | Support | Comment                                                   | Transactions | XA   | Savepoints | + + + + + + + | CSV        | YES     | CSV storage engine                                        | NO           | NO   | NO         | | MRG_MYISAM | YES     | Collection of identical MyISAM tables                     | NO           | NO   | NO         | | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables | NO           | NO   | NO         | | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         | | InfiniDB   | YES     | Calpont InfiniDB storage engine                           | YES          | NO   | NO         | + + + + + + + 5 rows in set (0.00 sec) [/shell]

InnoDBプラグインは、規定のインストールでは、以下のディレクトリに格納されております。

[shell]

cd /usr/local/Calpont/mysql/lib/mysql/plugin

ll *.so

lrwxrwxrwx 1 mysql mysql 19 11月 19 10:10 ha_archive.so -> ha_archive.so.0.0.0 lrwxrwxrwx 1 mysql mysql 21 11月 19 10:10 ha_blackhole.so -> ha_blackhole.so.0.0.0 lrwxrwxrwx 1 mysql mysql 19 11月 19 10:10 ha_example.so -> ha_example.so.0.0.0 lrwxrwxrwx 1 mysql mysql 21 11月 19 10:10 ha_federated.so -> ha_federated.so.0.0.0 lrwxrwxrwx 1 mysql mysql 18 11月 19 10:10 ha_innodb.so -> ha_innodb.so.0.0.0 lrwxrwxrwx 1 root  root  43 11月 19 10:11 libcalmysql.so -> /usr/local/Calpont/lib/libcalmysql.so.1.0.0 [/shell]

InnoDB以外も入っておりますね、フェデレーション、アーカイヴ、ブラックホール等々・・。 ここでは、InnoDBプラグインのみ設定する方法について記載します。

以下手順になります 1. infinidb にログインする [shell]

idbmysql

[/shell] 2. プラグインのインストールを行う [shell] mysql> INSTALL PLUGIN INNODB SONAME 'ha_innodb.so'; Query OK, 0 rows affected (0.05 sec) [/shell] 3. InnoDBエンジンが入ったか確認する [shell] mysql> show engines; + + + + + + + | Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints | + + + + + + + | CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         | | InnoDB | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        | | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         | | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         | | MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         | | InfiniDB   | YES     | Calpont InfiniDB storage engine                            | YES          | NO   | NO         | + + + + + + + 6 rows in set (0.00 sec) [/shell] 4. プラグインが正しく設定されているか確認する [shell] mysql> show plugin; + + + -+ -+ -+ | Name       | Status | Type           | Library        | License     | + + + -+ -+ -+ | binlog     | ACTIVE | STORAGE ENGINE | NULL           | GPL         | | CSV        | ACTIVE | STORAGE ENGINE | NULL           | GPL         | | MEMORY     | ACTIVE | STORAGE ENGINE | NULL           | GPL         | | MyISAM     | ACTIVE | STORAGE ENGINE | NULL           | GPL         | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL           | GPL         | | InfiniDB   | ACTIVE | STORAGE ENGINE | libcalmysql.so | PROPRIETARY | | InnoDB     | ACTIVE | STORAGE ENGINE | ha_innodb.so   | GPL | + + + -+ -+ -+ [/shell] 7 rows in set, 1 warning (0.00 sec)※LibraryがNULL以外のもの(*.so)は、プラグインで設定されているエンジンです。

以上で、InnoDBが利用できるようになりました。他のサイト様で書かれているような、my.cnfの設定ではなく、MySQLのコマンド一発で入り、DBインスタンスを再起動することなく、即時利用できます。プラグインで便利です。

余談ですが、プラグインをアンインストールしたい場合、同様MySQLのコマンドでアンインストールできます。

[shell] mysql> UNINSTALL PLUGIN INNODB; [/shell]

[shell]