4 ノード、4 ホスト MySQL Cluster には ノード毎に 1 つずつ 4 つの設定ファイルを書く必要があります。
各データ ノードあるいは SQL ノードは 2
種類の情報を提供する my.cnf
ファイルが必要です。ノードに MGM
ノードの所在を知らせる接続文字列、および
NDB
モードでこのホスト(データノードをホストしているマシン)の
MySQL サーバーに実行を告げる行。
接続文字列に関する詳細は、項14.4.4.2. 「クラスタの 接続文字列
」
を参照してください。
マネジメント
ノードは維持するレプリカの数量、各データ
ノードのデータおよびインデックスのメモリ容量、データ
ノードをどこで探すか、各データ
ノードのディスクのデータの保存場所、どこで
SQL
ノードを探すかなどを告げるconfig.ini
ファイルが必要とします。
ストレージおよび SQL ノードの設定
データ ノードが必要とするmy.cnf
ファイルはかなり簡素です。設定ファイルは
/etc
ディレクトリにあり、テキスト
エディタで編集できることが必要です。(ない場合にはファイルを作成します。)例えば:
shell> vi /etc/my.cnf
ここではファイルを作成するために vi が使用しますが、どのテキスト エディタも同様に機能する必要があります。
弊社の模範設定での各データノードおよび SQL
ノードに対し my.cnf
は以下のようになります。
# Options for mysqld process: [MYSQLD] ndbcluster # run NDB storage engine ndb-connectstring=192.168.0.10 # location of management server # Options for ndbd process: [MYSQL_CLUSTER] ndb-connectstring=192.168.0.10 # location of management server
上記の情報を入力後、このファイルを保存しテキスト エディタを終了します。これをデータノード 「A」、データ ノード 「B」、および SQL ノードをホストしているマシンに行います。
重要前述のように
mysqld プロセスを
my.cnf
の [MYSQLD]
にある ndbcluster
および
ndb-connectstring
パラメータで実行すると、CREATE
TABLE
あるいは ALTER TABLE
ステートメントをクラスタを実際に起動するまで実行できなくなります。または、これらのステートメントはエラーが表示されて失敗します。これは設計によります。
マネジメント ノードの設定
MGM
ノードを設定する最初のステップは、設定ファイルを格納するディレクトリを作成し、次にファイルそのものを作成します。例えば
(root
としてを実行する):
shell>mkdir /var/lib/mysql-cluster
shell>cd /var/lib/mysql-cluster
shell>vi config.ini
弊社の見本設定では、config.ini
ファイルは以下のようになります。
# Options affecting ndbd processes on all data nodes: [NDBD DEFAULT] NoOfReplicas=2 # Number of replicas DataMemory=80M # How much memory to allocate for data storage IndexMemory=18M # How much memory to allocate for index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example Cluster setup. # TCP/IP options: [TCP DEFAULT] portnumber=2202 # This the default; however, you can use any # port that is free for all the hosts in cluster # Note: It is recommended beginning with MySQL 5.0 that # you do not specify the portnumber at all and simply allow # the default value to be used instead # Management process options: [NDB_MGMD] hostname=192.168.0.10 # Hostname or IP address of MGM node datadir=/var/lib/mysql-cluster # Directory for MGM node log files # Options for data node "A": [NDBD] # (one [NDBD] section per data node) hostname=192.168.0.30 # Hostname or IP address datadir=/usr/local/mysql/data # Directory for this data node's data files # Options for data node "B": [NDBD] hostname=192.168.0.40 # Hostname or IP address datadir=/usr/local/mysql/data # Directory for this data node's data files # SQL node options: [MYSQLD] hostname=192.168.0.20 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore)
(注:world
データベースは http://dev.mysql.com/doc/ の
「例題設定」
のリストからダウンロードできます。)
すべての設定ファイルを作成してこれらの最低限のオプションを指定すると、クラスタを実行する準備が整い、すべてのプロセスが動作していることを検証できます。これをどのように行うか 項14.3.4. 「最初の起動」 で説明します。
利用できる MySQL Cluster の設定パラメータおよびその使用方法の詳細については 項14.4.4. 「設定ファイル」、および 項14.4. 「MySQL Cluster の設定」 を参照してください。バックアップに関する MySQL Cluster の設定については、項14.8.4. 「クラスタ バックアップの設定」 を参照してください。
注:クラスタ マネジメント ノードのデフォルトのポートは 1186で、データ ノードのデフォルトのポートは 2202 です。MySQL 5.0.3 以降ではこの制限が解除されており、クラスタはすでにフリーになっているものから自動的にデータ ノードにポートを割り当てます。