ushidayの日記

主に「IBMi」のメモに・・・

IBMDB2iストレージエンジンその2

IBMDB2iストレージエンジンのPluginは「/usr/local/mysql/lib/plugin/ha_ibmdb2i.so」です。

RedBookの「3.4.5 Installing the IBMDB2I Storage Engine plug-in component for MySQL」を参考に、ストレージエンジンのセッティングをシェルからします。

  • パス追加
export PATH=/usr/local/mysql/bin:$PATH
mysqladmin -u root status                                                    
Uptime: 60615  Threads: 6  Questions: 8515  Slow queries: 0  Opens: 555  Flus
h tables: 1  Open tables: 53  Queries per second avg: 0.140
$
mysqladmin -u root ping
mysqld is alive        
$
mysql -u root 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 94                           
Server version: 5.1.35 MySQL Community Server (GPL)      
                                                         
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement
.                                                                            

install plugin ibmdb2i soname "ha_ibmdb2i.so" ; 
Query OK, 0 rows affected (0.82 sec)            


  • データベース作成


  • テーブル作成




おぅ!イキナリエラー!調べてみるも、特にめぼしい情報は、ないので(日本でこんな事に躓いているのは自分だけ?)とりあえず、シェルから手動で色々試してみました。色々試した結果、「ライブラリー名、ファイル名は大文字じゃないと駄目」が原因でした。気を取り直して、大文字で全て指定してやり直すと成功でした。名称10文字以内の制約については、RedBookに書いてありそうなのですが、英語がイマイチわかりません。

他に、試してみた結果については、以下通りになりました。

    • ライブラリー名小文字(×)
    • ファイル名小文字(×)
    • ライブラリー名11文字以上(×)
    • ファイル名11文字以上(×)
    • フィールド名小文字(○)(※但し、DB2上は、カラムヘディングが「フィールド小文字の名称になって」、フィールド名は”XXX_0001”みたいになってました。これじゃレガシー(RPG)では使えない!?)

IBMDB2iの実態としては、i5が裏でMySQLからのSQLを、「QSQSRVR」ジョブで処理していそうです。SQL指定のライブラリーが無ければライブラリー作成と、物理ファイルの作成をしている模様です。(対話式シェルでSQLを投げると様子がよく解ります。)
MySQL側には、「xxx.frm」と「xxx.FID」が作成されていました。この”FID”の中身は、i5側のファイル識別IDが入っていた。これで実ファイルとの連携を持たせていそうです。




RedBookには、「もし省略のストレージエンジンにするなら、”/etc/my.cnf”ファイルに”default_storage_engine=ibmdb2i”を追加しなさい」的な事が、書いてありますが、今回は特にどちらでもいいので無視します。今日は疲れたのでここまでにしときます。