MySQL Cluster MySQL Cluster
基本概念:
「NDB」は「」ですインメモリ」ストレージ エンジンは、高可用性と良好なデータ一貫性の特性を備えています。
MySQL Cluster は、さまざまなフェイルオーバーおよびロード バランシング オプションを使用して NDB ストレージ エンジンを構成できますが、クラスタ レベルのストレージ エンジンでこれを行うのが最も簡単です。 MySQL Cluster の NDB ストレージ エンジンには完全なデータ セットが含まれており、クラスター自体内の他のデータにのみ依存します。
管理 (MGM) ノード: このタイプのノードの役割は、構成データの提供、ノードの起動と停止、バックアップの実行など、MySQL Cluster 内の他のノードを管理することです。これらのノードは他のノードの構成を管理するため、他のノードよりも前に起動する必要があります。 MGM ノードはコマンド「ndb_mgmd」で起動します。
データ ノード: このタイプのノードは、クラスター データを保存するために使用されます。データ ノードの数は、フラグメントの倍数であるレプリカの数に関係します。たとえば、それぞれ 2 つのフラグメントを持つ 2 つのレプリカがある場合、4 つのデータ ノードが存在します。ただし、複数のコピーを設定する必要はありません。データノードは「ndbd」コマンドで起動します。
SQL ノード: これは、クラスター データにアクセスするために使用されるノードです。 MySQL Cluster の場合、クライアント ノードは、MySQL Cluster ストレージ エンジンを使用する従来の MySQL サーバーです。通常、SQL ノードは、「mysqld -ndbcluster」コマンドを使用するか、「my.cnf」に「ndbcluster」を追加した後に「mysqld」を使用して起動されます。
管理サーバー (MGM ノード) は、クラスター構成ファイルとクラスター ログの管理を担当します。クラスター内の各ノードは、管理サーバーから構成データを取得し、管理サーバーがどこにあるかを判断する方法を要求します。データ ノード内で新しいイベントが発生すると、ノードはそのようなイベントに関する情報を管理サーバーに送信し、その情報をクラスター ログに書き込みます。
クラスタ構成の概要:
インストールバージョン:mysqlcluster 7.3.2
オペレーティングシステム:centos6.3 (X64)
ソフトウェア名:mysql- cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (一般バージョン)
管理ノード IP:192.168.0.202
データ ノード-SQL ノード IP:192.168 .0.203
データ ノード-SQL ノード IP:192.168.0.204
依存関係パッケージをインストールします: yum install -y glibc perl libaio-devel
x32 ビット システムをインストールする必要があります互換性ライブラリ グループ: yum groupinstall 「互換性ライブラリ」
1. 管理ノードのインストール構成
1. mysql-cluster
groupadd mysql useradd -g mysql -s /sbin/nologin mysql tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster chown -R root.mysql /usr/local/mysql/ chown -R mysql.mysql /usr/local/mysql/data/ /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp -rf /usr/local/mysql/bin/ndb_mgm * /usr/local/bin/ #复制ndb节点管理命令到本地,方便使用
2 をインストールします。 mysql マスター設定ファイルを変更します
vi /etc/my .cnf [MYSQLD] user = mysql socket = /tmp/mysql .sock basedir = /usr/local/mysql #安装目录 datadir = /usr/local/mysql/data #数据库存放目录 character-sets-server=UTF8 ndbcluster #运行NDB存储引擎 ndb-connectstring=192.168.0.202 lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的 [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP
3. mysql クラスター設定ファイルを作成します
mkdir /var/lib/mysql-cluster vi /var/lib/mysql-cluster/config .ini [ndbd default] NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4 DataMemory=256M #分配的数据内存大小,根据本机服务器内存适量来分配 IndexMemory=256M #设定用于存放索引(非主键)数据的内存段大小 #一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。 [ndb_mgmd] nodeid=1 hostname =192.168.0.202 datadir= /var/lib/mysql-cluster/ [ndbd] nodeid=2 hostname =192.168.0.203 datadir= /usr/local/mysql/data [ndbd] nodeid=3 hostname =192.168.0.204 datadir= /usr/local/mysql/data [mysqld] nodeid=4 hostname =192.168.0.203 [mysqld] nodeid=5 hostname =192.168.0.204
保存して終了します。
chown mysql.mysql /var/lib/mysql-cluster/config .ini
2. 2 つのデータ ノードと SQL ノードは同じ構成です
1. mysql-cluster をインストールします
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql groupadd mysql useradd -g mysql -s /sbin/nologin mysql chown -R root.mysql /usr/local/mysql chown -R mysql.mysql /usr/local/mysql/data /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld cp /usr/local/mysql/support-files/medium .cnf /etc/my .cnf chmod +x /etc/init .d /mysqld
2. mysql を変更します設定ファイル
vi /etc/my .cnf [MYSQLD] user=mysql character_set_server=utf8 ndbcluster ndb-connectstring=192.168.0.202 default-storage-engine=ndbcluster #设置默认是NDB存储引擎 datadir= /usr/local/mysql/data basedir= /usr/local/mysql [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #mysql cluster 管理节点IP
3. テスト (最初に 3 台のサーバーのファイアウォール (IPTABLES) と Selinux をオフにします)
1. 管理ノード
ndb_mgmd -f /var/lib/mysql-cluster/config .ini --initial netstat -tuplna | grep 1186 #默认连接端口1186,启动成功 tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369 /ndb_mgmd #--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。を起動します
スタートアップが表示される場合 エラー: config.ini に設定されているすべてのノード ID を削除してください。
2. 2 つのデータ ノードと SQL ノードを開始します
データ ノード:/usr/local/mysql/bin/ndbd --initial
SQL ノード: bin/mysqld_safe - -user=mysql & または service mysqld start
3. クラスターのステータスを確認します
ndb_mgm -e show #管理ノードとデータ ノードが表示されれば、構成は成功です
4. 同期を確認するためのデータベースの作成
mysql -u root -p
Mysql>データベースの作成テスト ;
Mysql>テストの使用;
Mysql>create table abc (id int) Engine=ndbcluster; #データベース テーブルのエンジンを NDB として指定します、それ以外の場合は同期が失敗します
Mysql>abc ()values に挿入します(1);
Mysql> select * from abc;
#このとき、2 つのデータが一致しているかどうかを確認し、一致していればクラスタは成功です。
注:
1. テーブルを作成するときは、必ず ENGINE=NDB または ENGINE=NDBCLUSTER を使用して NDB クラスター ストレージ エンジンを指定するか、ALTER TABLE オプションを使用してストレージを変更してください。テーブルのエンジン。
2. NDB テーブルには主キーが必要なので、テーブルの作成時に主キーを定義する必要があります。定義しないと、NDB ストレージ エンジンが暗黙的な主キーを自動的に生成します。
3. SQL ノードのユーザー権限テーブルは MYISAM ストレージ エンジンによって保存されたままであるため、SQL ノードで作成された MySql ユーザーのみがこのノードにアクセスできます。他の SQL ノードの場合は、対応する SQL ノードにユーザーを追加する必要があります。
4. 管理およびメンテナンス コマンド
mysql クラスターを閉じます: ndb_mgm -e shutdown
mysql クラスターを再起動します: ndb_mgmd -f /var/ lib/mysql-cluster/config.ini
データ ノードを再起動します:/usr/local/mysql/bin/ndbd
SQL ノードを起動します:/usr/local/mysql/bin/ mysqld_safe --user =mysql & またはサービス mysqld restart
mysql ステータスの表示: ndb_mgm -e show
起動シーケンス:
管理ノード -> データ ノード ->; SQL ノード
クローズ シーケンス:
SQL ノード -> データ ノード -> 管理ノード
推奨チュートリアル: "MySQL チュートリアル"
以上がMySQL - クラスター MySQL クラスターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。