環境:
192.168.205.37: as member of galera-server
192.168.205.47: as member of galera-server
192.168.205.57: as member of galera-server
バージョン:
OS: centos 7 1810 with mini install
mariadb-server 5.5.64
目地:
ガレラ統合プラグインのMySQLクラスター、共有されていないデータの新しいタイプの、非常に冗長な高可用性ソリューションは、ガレラクラスタは、2つのバージョン、すなわちPercona XtradbクラスタとMariaDBクラスタ、ガレラ自体で現在利用可能であるマルチマスタでありますマルチマスタクラスタアーキテクチャを使用するプロパティは、両方の堅牢、高可用性ソリューションであり、データの一貫性、整合性と高パフォーマンスの面で優れています。
ガレラクラスタノードがマスタノードとして使用することができ、従来のマスタ - スレーブ・アーキテクチャを有する少なくとも3つ、必要等がクライアントが読み書きされなければならないマルチマスターアーキテクチャと呼ばれる3つのノード、ですデータが同じで読んだとき、同じ接続であるの例として、一つのノードを書き込んだ後、クラスタは、上記他のノードに新しいデータの同期を所有する、このアーキテクチャは、任意のデータを共有しない、高い冗長性でありますアーキテクチャよりも。
ステップ
- ヤムmariadb-サーバーの競合で、このパッケージの準備ソースはmariadb-サーバーをインストールしてはならない、3つのノードにマウントされている全ての
[root@centos7 ~]#cat > /etc/yum.repos.d/mysql.repo <<EOF > [mysql] > baseurl=https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.64/yum/centos7-amd64/ > gpgcheck=0 > EOF
- インストールmariadb-ガレラ - サーバー
[root@centos7 ~]#yum install MariaDB-Galera-server
- 構成ファイルを変更し、すべて同じ3
[root@centos7 ~]#vi /etc/my.cnf.d/server.cnf [galera] wsrep_provider = /usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.205.37,192.168.205 .47,192.168.205.57" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_cluster_name = 'testcluster'
- まず、あなたはそれが新しいクラスタを表し、以下の起動を実行する必要があります
[root@centos7 ~]#/etc/init.d/mysql start --wsrep-new-cluster Starting MariaDB.190813 08:55:40 mysqld_safe Logging to '/var/lib/mysql/centos7.localdomain.err'. 190813 08:55:40 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql ... SUCCESS!
- 以下の出発を使用して、他の二つのノード
[root@centos7 ~]#service mysql start
- テスト用のデータベースをインポートします
[root@centos7 ~]#mysql < hellodb_innodb.sql
- 通常のコピー内の他のノードへのデータかどうかをチェックします
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | hellodb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
- ビュークラスタ関連のシステムと状態変数
SHOW VARIABLES LIKE 'wsrep_%'; SHOW STATUS LIKE 'wsrep_%'; SHOW STATUS LIKE 'wsrep_cluster_size';
- ライブラリ内のテーブルを構築すると同時に、3台のサーバーでは、我々は、これらの3つが唯一の成功となり、他の2つの先端がすでに存在して見ることができます
MariaDB [hellodb]> create table t1(id int); Query OK, 0 rows affected (0.01 sec) MariaDB [hellodb]> create table t1(id int); ERROR 1050 (42S01): Table 't1' already exists MariaDB [hellodb]> create table t1(id int); ERROR 1050 (42S01): Table 't1' already exists
-
マスタースレーブよりテストストアドプロシージャ、はるかに遅く、それは、いくつかのパフォーマンスの問題を犠牲に通常マスター100,000〜約15秒に仮想マシンを挿入しますが、この実験では、分以上を要します。
MariaDB [hellodb]> create table testlog (id int auto_increment primary key,name char(10),age int default 20); Query OK, 0 rows affected (0.02 sec) MariaDB [hellodb]> MariaDB [hellodb]> delimiter $$ MariaDB [hellodb]> MariaDB [hellodb]> create procedure sp_testlog() -> begin -> declare i int; -> set i = 1; -> while i <= 100000 -> do insert into testlog(name,age) values (concat('wang',i),i); -> set i = i +1; -> end while; -> end$$ Query OK, 0 rows affected (0.01 sec) MariaDB [hellodb]> MariaDB [hellodb]> delimiter ; MariaDB [hellodb]> call sp_testlog; Query OK, 1 row affected (3 min 5.20 sec)
-
私たちは、取引の方法を提出し、より速くたくさん見つけます
MariaDB [hellodb]> begin; Query OK, 0 rows affected (0.00 sec) MariaDB [hellodb]> call sp_testlog; Query OK, 1 row affected (1.49 sec) MariaDB [hellodb]> commit; Query OK, 0 rows affected (0.42 sec)