MySQL Clusterをセットアップしようとしています。
私は次の設定をしています
以下はconfig.iniファイルです。
[ndbd default] #すべてのデータノードのndbdプロセスに影響するオプション: NoOfReplicas = 2#レプリカの数 DataMemory = 80M#データストレージに割り当てるメモリ量 IndexMemory = 18M#インデックスストレージに割り当てるメモリ量 #DataMemoryおよびIndexMemoryの場合、 #デフォルト値を使用しました。 「ワールド」データベースが占有するので、 #約500KBだけなので、これは #この例のクラスタセットアップには十分以上です。 DataDir =/var /lib/mysql-cluster [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] LogDestination = FILE:filename = my-cluster.log [tcp default] [ndb_mgmd] #管理プロセスオプション: hostname = XXX26#MGMノードのホスト名またはIPアドレス datadir =/var/lib/mysql-cluster#MGMノードログファイルのディレクトリ #ストレージノード [NDBD] hostname = XXX26#storage-node-1のIPアドレス DataDir = /var/lib/mysql-cluster [NDBD] HostName=XXX73#storage-node-2のIPアドレス DataDir = /var/lib/mysql-cluster [NDBD] hostname=XXX26#ストレージノード3のIPアドレス DataDir = /var/lib/mysql-cluster [NDBD] HostName=XXX73#storage-node-4のIPアドレス DataDir =/var/lib /mysql-cluster # mySQL APIサーバーのセットアップノードID(クラスターのクライアント) [mysqld] #SQLノードオプション: hostname = XXX73#ホスト名またはIPアドレス #(追加のmysqld接続を指定できます #さまざまな目的でこのノードに指定できます #実行などの目的ndb_restore)
以下は、両方のシステムの_my.cnf
_ファイルです。
[mysqld] ndbcluster#NDBストレージエンジンを実行します ndb-connectstring = XXX26#管理サーバーの場所 [mysql_cluster] ndb-connectstring = XXX26#管理サーバーの場所
クラスターを起動しようとすると、次のエラーが発生します。
_Could not determine which NodeID to use for this node. Specify it with --ndb-nodeid=<nodeid> on command line
_
クラスタリングのセットアップが完了した場合、別のエラーが再度表示されるため、データの複製はありません:ERROR 1296 (HY000): Got error 4009 'Cluster Failure' from NDBCLUSTER
誰かが問題を特定するのを手伝ってくれる?
あなたの管理構成は私には問題ないようです。 ndb_mgmdが完全に停止しなかったか、管理サーバーの/ var/lib/mysql-clusterディレクトリの内容に問題があるようです。
/etc/init.d/の起動スクリプトなどを使用して、ndb_mgmdが自動的に起動しないようにすることもできます。
問題を解決するには、まずこれらの手順から始めます
まだ始まったばかりで、実際のデータはまだありません。
killall ndb_mgmd
で強制終了するか、killallが役に立たない場合は再起動します。rm -Rf /var/lib/mysql-cluster/*
ndb_mgmd -f /etc/config.ini --initial
Ndb_mgmdがnetstatでリッスンしていることを確認します
$> netstat -tlpn
アクティブなインターネット接続(サーバーのみ)Proto Recv-Q Send-Qローカルアドレス外部アドレス状態PID /プログラム名
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 3251/ndb_mgmd
管理ノードに接続
$> ndb_mgm
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.9.26 (mysql-5.1.61 ndb-7.1.22)
更新
Oracleのクイックスタートガイドは、すべてのノード、管理、mysql、データが1つのサーバーで実行されています。
http://downloads.mysql.com/tutorials/cluster/GetMySQLClusterRunning-LINUX.pdf
考慮すべき2つの点:マシンごとに2つのデータノードがある場合、管理サーバーは2つのデータノードのどちらを開始するかを決定できません。したがって、ndbmtd/ndbdを起動するときに--ndb-nodeidオプションを使用してこれを指定する必要があります。
次に、完全に利用可能なセットアップには、3台目のマシンが必要です。それ以外の場合は、いずれかのマシンでハードウェアクラッシュが発生しても50%しか残っていません。 HWクラッシュでマシン上のすべてのノードに障害が発生すると、アービトレーターもクラッシュする可能性が50%になります。
アービトレーターは、ノードの半分に障害が発生した場合にクラスターのどの部分が存続するかを決定するために使用されます。
データノードがまだ開始されておらず、MySQLサーバーを介してデータをクエリしようとしている場合、取得するエラーは4009です。