MySQL clusterは「waku2とらふぃっくすHAクラスタ化プロジェクト」のひとつです。 PCエンジンデータベースをはじめ現在のデータベースはpostgreSQLで稼動していますが、これを機会に移行も行う予定です。 本日は、「MySQL Cluster(primary/primary)のインストール[管理ノードのインストール]」についてです。
こんにちは。猫ITソリューションズ広報の齊藤メイ(♀)です。 本日は、「MySQL Cluster(primary/primary)のインストール[管理ノードのインストール]」についてです。
関連記事:
- MySQL Cluster(primary/primary)のインストールその1[管理ノードのインストール]
- MySQL Cluster(primary/primary)のインストールその2[データノード/SQLノードのインストール]
- MySQL Cluster(primary/primary)のインストールその3[データ同期の確認]
- MySQL Cluster(primary/primary)のインストールその4[起動・停止・管理]
- MySQL Cluster(primary/primary)のインストール[第一次インストール後調査メモ]
【中古】Xen徹底入門 オ-プンソ-スで実現するOS仮想化環境 第2版/翔泳社/宮本久仁男(大型本)
貴重な情報ありがとうございます。深く感謝の意を表します。
参考:
管理ノード/SQLノード/データノードと必要になる。 ここでの構成は以下の通り。(xenが前提です。洒落のつもりはないです)
- (Domain-0)
mikeneko.waku2traffics.com
eth1
10.0.0.20
管理ノード - (Domain-U)
buchineko.waku2traffics.com
eth1
10.0.0.21
データノード/SQLノード - (Domain-0)
toraneko.waku2traffics.com
未使用
※いつか管理ノードを冗長化させたい - (Domain-U)
shironeko.waku2traffics.com
eth1
10.0.0.31
データノード/SQLノード
OS:CentOS5.2 x86_64版
対象は、mikeneko.waku2traffics.com になります。
perlモジュールのコンパイルに必要なgcc関連をインストール
1 2 3 4 |
# yum -y install gcc # yum -y install gcc-c++ # yum -y install libstdc++ # yum -y install libstdc++-devel |
perl の Class::MethodMaker モジュールのインストール
警告: ホスト名を正式なものにできません: mikeneko.waku2traffics.com
1 |
# cpan2rpm --install Class::MethodMaker |
perl(DBI)のインストール
1 |
# yum -y install perl-DBI |
RPMからのインストールなので、DL場所に移動(猫ITソリューションズの環境の場合)
1 |
# cd /usr/local/src |
最新版の確認をする。
http://dev.mysql.com/downloads/cluster/index.html#rhel5_amd64
Cluster storage engine management のダウンロード
1 |
# wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-6.3/MySQL-Cluster-gpl-management-6.3.20-0.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/ |
Cluster storage engine basic tools のダウンロード
1 |
# wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-6.3/MySQL-Cluster-gpl-tools-6.3.20-0.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/ |
ダウンロードファイルの確認
1 2 3 4 5 6 |
# ls -al 合計 9716 drwxr-xr-x 2 root root 4096 1月 4 17:58 . drwxr-xr-x 12 root root 4096 1月 1 08:37 .. -rw-r--r-- 1 root root 1233195 12月 17 04:19 MySQL-Cluster-gpl-management-6.3.20-0.rhel5.x86_64.rpm -rw-r--r-- 1 root root 8664311 12月 17 04:21 MySQL-Cluster-gpl-tools-6.3.20-0.rhel5.x86_64.rpm |
Cluster storage engine management のインストール
1 |
# rpm -ivh MySQL-Cluster-gpl-management-6.3.20-0.rhel5.x86_64.rpm |
Cluster storage engine basic tools のインストール
1 |
# rpm -ivh MySQL-Cluster-gpl-tools-6.3.20-0.rhel5.x86_64.rpm |
mysqlグループ&ユーザの作成&パスの追加
1 2 3 4 5 6 7 8 9 |
# groupadd mysql # useradd -g mysql mysql # passwd mysql Changing password for user mysql. New UNIX password: ******** Retype new UNIX password: ******** passwd: all authentication tokens updated successfully. # export PATH=$PATH:/usr/bin # export PATH=$PATH:/usr/sbin |
ディレクトリ作成&所有者変更
1 2 3 |
# mkdir -p /var/lib/mysql-cluster # chgrp -R mysql /var/lib/mysql-cluster # chown -R mysql /var/lib/mysql-cluster |
設定ファイルをmysqlユーザで作成する為、ユーザー変更
1 |
# su - mysql |
ディレクトリ(/var/lib/mysql-cluster)に移動し設定ファイル(config.ini)を作成
[ndbd default]
全てのNDBDノードの動作についてのデフォルト設定を記載します。 [ndb_mgmd default]
全てのMGMノードの動作についてのデフォルト設定を記載します。 [ndb_mgmd]
MGMノードの動作についての設定です。 [ndbd]
NDBDノードについての設定、同様に[mysqld]はMySQLDノードについての設定です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
$ cd /var/lib/mysql-cluster $ vi /var/lib/mysql-cluster/config.ini [ndbd default] NoOfReplicas=2 DataDir=/var/lib/mysql-cluster # ServerPort = 63132 # MaxNoOfConcurrentOperations=10000 # DataMemory=80M # IndexMemory=24M # TimeBetweenWatchDogCheck=30000 # MaxNoOfOrderedIndexes=512 [ndb_mgmd default] DataDir=/var/lib/mysql-cluster [ndb_mgmd] Id=1 HostName=10.0.0.20 [ndbd] Id=11 HostName=10.0.0.21 [ndbd] Id=12 HostName=10.0.0.31 [mysqld] Id=21 HostName=10.0.0.21 [mysqld] Id=22 HostName=10.0.0.31 |
****************
SELinuxを切ってインストールしたため、今は設定してないけどするべきだろう
****************
ファイアーウォールの設定
受信を許可する「その他のポート」に「1186:tcp 63132:tcp mysql:tcp」と書きます。
1 |
# /usr/sbin/lokkit |
http://dev.mysql.com/doc/refman/5.1/ja/mysql-cluster-multi-config.html
> 注:クラスタ マネジメント ノードのデフォルトのポートは 1186で、データ ノードのデフォルトのポートは 2202 です。 > MySQL 5.0.3 以降ではこの制限が解除されており、クラスタはすでにフリーになっているものから自動的にデータ ノードにポートを割り当てます。
****************
マネジメントサーバーの起動
※正常に起動できると「/var/lib/mysql-cluster」配下にログを含むファイルが作成されます。
1 2 3 |
$ /usr/sbin/ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini $ ls config.ini ndb_1.pid ndb_1_cluster.log ndb_1_out.log |
マネジメントクライアントの起動
※正常にマネジメントサーバに接続されると以下のようにプロンプトが変わる。
1 2 3 |
$ ndb_mgm -c 10.0.0.20 -- NDB Cluster -- Management Client -- ndb_mgm> |
各ノードの状態を表示
1 |
ndb_mgm> show |
各ノードの状態を表示
1 2 3 4 5 6 7 8 9 10 11 |
ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 10.0.0.21) id=3 (not connected, accepting connect from 10.0.0.31) [ndb_mgmd(MGM)] 1 node(s) id=1 @10.0.0.20 (mysql-5.1.30 ndb-6.3.20) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from any host) id=5 (not connected, accepting connect from any host) |
管理コマンドから抜ける場合はexit
1 |
ndb_mgm> exit |
終了はプロセス停止で行う。
1 2 |
# ps aux | grep mysql $ kill -9 xxxx |
次回は、データノード/SQLノードのインストールです。