ホームページ  >  記事  >  データベース  >  MySQL - クラスター MySQL クラスター

MySQL - クラスター MySQL クラスター

Guanhui
Guanhui転載
2020-05-28 11:48:552289ブラウズ

MySQL - クラスター MySQL クラスター

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 サイトの他の関連記事を参照してください。

声明:
この記事はoschina.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。