カスタム検索
ラベル MySQL Cluster の投稿を表示しています。 すべての投稿を表示
ラベル MySQL Cluster の投稿を表示しています。 すべての投稿を表示

2009年6月15日月曜日

Grails+MySQL Clusterでのトラブル

Grails+MySQL Clusterでのハマったのでメモメモ
(Grailsじゃなくても起こる問題なんだけども)

開発環境時はMyISAMでうまく行っていたのですが、サーバへアップした時にテーブルが作成出来ずにエラーとなりました。
何度やっても特定のテーブルだけが作成されなかったのでMyISAMで作成したDBをダンプアウトしてSQLで流し込んでみたら「Row size too large」だとかなんとか・・・

Google先生に聞いてみたら以下で同様なトラブル事例が
http://forums.mysql.com/read.php?25,33433,33433

Clusterではサイズ指定されたフィールドが 8052バイトを超えるとNGらしいです。

UTF-8では1文字3バイトなのでGrailsのDomain上で、
Stringのフィールドをmapping指定せずに作った場合 varchar(255) で1フィールド辺り768バイト使用されます。
なのでString指定のフィールドを作る場合は極力mappingを指定するようにしましょう。


class Book {
static mapping = {
name type:”text”
}

String name
}

2009年5月12日火曜日

そろそろMySQL Clusterと向き合う時期が来たのかもしれない その1

普通のMySQLすらまともに使った事の無い状態でのトライです
なんで基本的に間違ってる事があるかもしれませんがご了承を・・・

まずはMySQL Clusterから必要なパッケージをダウンロードしにいく
今回はRedHatにセットアップするので、RedHatのリンクへ

・・・
・・・
・・・
Server、Client、Cluster storatge engine、Cluster storage engine managemen、Cluster storage engine basic tools、Cluster storage engine extra tools、Headers and libraries、Debug Info、Shared libraries、Test suiteと山盛りであるんですが・・・

どれをダウンロードしろと?w

・・・

まーさっぱりわからんのでとりあえず何がどれなのか知る為に漢の中の人が書いてるココを参照

MySQL Clusterには管理ノードとデータノードとSQLノードというのがある、それぞれは以下のように解釈

・管理ノード
他のノード達の管理をしている、バックアップもこいつから実行
管理といっても居ないと動かないわけではなく、ノード達のON/OFFなど本当に管理だけ

・データノード
実データ格納場所、MySQL Clusterは基本的にデータをHDD上ではなくメモリ上で管理する(!)オプションでHDD保存も出来るらしいけど
データノード間でハートビートを送り、タイムアウトすると管理ノードに報告する。ちくり魔め。

・SQLノード
SQLを解析して、データノードからデータを取得する
なんだかよくわからんかったけど、どうやらこれは通常のMySQLという事らしい
MySQLにはRDBMSのENGINEとしてMyISAMとInnoDBが主に使われているんだけど、MySQL ClusterとはこのENGINEの一つとして動作するものらしい!
(ずっとMySQL Clusterというまったくの別物だと思っていたので、ここを理解したらなんだか随分わかりやすくなった)


で、ようやくダウンロードに戻るわけですが・・・イマイチよくわかりませんでしたw
セットアップ後の自分なりの解釈で、

Server SQLノードにあたる部分
Client サーバ上でSQLノードへ接続したり、いわゆる mysql コマンド
Cluster storatge engine データノード
Cluster storage engine managemen 管理ノード
Cluster storage engine basic tools データノードツール?
Cluster storage engine extra tools データノードツール?
Shared libraries 共通のライブラリ

こんな感じ、以下は必要なさそうだったのでダウンロードしてない :)

Headers and libraries
Debug Info
Test suite


2009/5/13 追記
漢の中の人がすでに書いてました :)
これは公式にも乗せるべき内容!


実は内容的にまったく進んでないんですが、MySQL Clusterにはこんな初心者向けな記事があってもいいよね!

次回はセットアップ奮闘編
(本当にやるのかなw Grails+Connector/J(フェイルオーバー)+MySQL Clusterで色々落ちても安心だね!までやったので残しておきたいけど)