web-dev-qa-db-ja.com

MySQLクラスターのmysqldプロセスとは何ですか?

私が知っているように、mysqldプロセスはMySQlクラスターの一種のルーターです。リクエストを適切なndbdノードに転送します。

3つの異なるマシンに3つのndbdノードがあり、レプリケーションを使用しないと仮定します。 mysqldプロセスはいくつ必要ですか?私は1つと言いますか?私にとっては、マスタースレーブアーキテクチャ(mongodbと比較可能)のようなものですが、各ndbdノードにも1つのmysqldプロセスがある構成を見ました。どうして?

1
user2601966

MySQLCluster環境でmysqldを実行しているDBサーバーの場合、DBサーバーの役割はSQLノードと呼ばれます。

ストレージNodeとSQL Node: mysqld--ndb-clusterはMySQLClusterで実行する必要がありますか)の違いについて説明したことがありますデータノード? 。質問のコメントセクションで、 Mat Keep は、 MySQL Cluster-データノードにテーブルデータを格納する を確認する必要があるとコメントしました。

小さなクラスターでは、ストレージノードでmysqldを実行しても大きな影響は見られません。大規模なクラスターでは、データを物理ファイルに保存する予定がない限り、SQLノードはデータNodeとは別にセットアップされると思います。

DBAStackExchangeの3つのMySQLClusterの達人から追加情報を見つけることができます

あなたのコメントに基づいて

より正確には、データノードを実行する3台のマシンがあります。各マシンには8GbのRAMがあります。合計で、データベースには最大5,000万〜1kbのレコードが格納されます。ここでどうしますか?

免責事項:SCMCDBA認定を受けていません

個人的には、4番目のサーバーを取得してSQL Node)として実行し、他のサーバーはストレージ(データ)ノードのままにします。SQLノードとデータノードのハードウェアとOSが同じであることを確認します。設定。

書き込みの少ないDBクラスターの場合は、チャンスがあり、各データでmysqld --ndbclusterを実行できますNode(4番目のサーバーは必要ありません)。

0
RolandoMySQLDBA

ヘッダーと可能なインデックスを数えなくても、最大5,000万の約1kBレコードは最大50GBのデータです。そして、それぞれ8GBのRAM)を備えた3台のマシンがあります。つまり、データノードは最大6GBのRAMを使用できます。MySQLClusterのすべてのデータレコードは2つのノードに保存する必要があります。したがって、クラスターには(3 * 6GB)/ 2 = 9GBのデータを保存できます。

データレコードヘッダー、可能なインデックス、その他のメタデータのため、実際の量はさらに少なくなります。

したがって、50GBのデータをクラスターに保存するには、 MySQL Clusterディスクデータテーブル を使用する必要があります。

ちなみに、デフォルトのクラスター設定はNoOfReplicas=23つのデータノードを持つことはできません。 ドキュメント"The value for this parameter must divide evenly into the number of data nodes in the cluster"

2つのデータノードを使用して3番目のサーバーをSQLノード専用にするか、NoOfReplicasを1に変更して、高可用性を失う必要があります。

0