CentOS7にMariaDBGaleraClusterマルチマスタークラスターをインストールします

1.MariaDBガレラクラスターの紹介

MariaDB Galera Clusterは、MariaDBデータベースのマルチマスタークラスターを同期するためのツールです。データに関しては、MariaDBおよびMySQLと完全に互換性があります。特性:

  • 同期レプリケーション

  • アクティブ-アクティブマルチマスタートポロジロジック

  • データは、クラスター内の任意のノードに対して読み取りおよび書き込みが可能です

  • 自動メンバーシップ制御、障害が発生したノードはクラスターから自動的に削除されます

  • 自動ノード参加

  • 行レベルに基づく真の並列レプリケーション

  • 直接クライアント接続、ネイティブMySQLインターフェイス


2.環境への準備

2台の仮想マシンを準備し、それぞれCentOS7-1908(7.7)をインストールします。

サーバーA:193.168.12.9     db1
サーバーB:193.168.12.10    db2


2つの仮想マシンのファイアウォールをオフにします。

systemctl stop Firewalld 
systemctl disable Firewalld


2つの仮想マシンでselinuxを閉じます。

setenforce 0

/ etc / selinux / configを変更し、SELINUX = disabledを設定して、再起動後に有効になるようにします。


3. mariadb10.5をインストールします

デフォルトでは、centosのソースにはmariadb10.5が含まれていません。自分で構成する必要があります。/etc/yum.repo.d/mariadb.repoファイルを作成します。ここでの構成は、公式Webサイトよりも高速なAlibabaCloudミラーからダウンロードすることです。内容は以下の通りです。

[mariadb] 
name = MariaDB 
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64 
pgpkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB 
pgpcheck = 0


KEYのダウンロードとインポート:

wget --no-check-certificate https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB / etc / pki / rpm-gpg / 
rpm --import / etc / pki / rpm-gpg / *


yumでインストール:

yum install -y MariaDB-server MariaDB-client


以前に他のソースを構成したことがあり、インストールが失敗した場合は、クリーンアップして再試行できます。

yumcleanメタデータ


2つのデータベースサーバーは同じ操作を実行します。


4.mariadbを構成します

mariadbを開始します。

systemctl start mariadb


初期化はオンデマンドで実行できます。

mysql_secure_installation


デフォルトでは、mariadbはrootにローカルでのログインのみを許可します。rootリモート管理権限を手動で作成する必要があります。新しいルートを作成するか、現在のルートを変更できます。新しいルートを作成する場合:

mysql -uroot -p 
use mysql 
create user root @ '%'は 'mariadb'で識別されます。
フラッシュ特権;


または、ルートを持つホストを変更します。

mysql -u root -p 
use mysql 
update user set host = '%' where user = 'admin' and host = 'localhost'; 
フラッシュ特権;


2つのデータベースサーバーは同じ操作を実行します。


5.クラスターをセットアップします

2つの独立したデータベースの準備ができたら、ガレラクラスターの形成を開始し、最初にmariadbサービスを停止します。

systemctl stop mariadb


mariadbの構成を変更します:/etc/my.cnf.d/server.cnf 

【ガレラ] 
wsrep_on = ON 
wsrep_provider =は/ usr / lib64に/ガレラ-4 / libgalera_smm.so 
wsrep_cluster_address = gcomm://193.168.12.9,193.168.12.10 
wsrep_cluster_name = rvsdb 
wsrep_node_name = DB1 
wsrep_node_address = 193.168.12.9 
binlog_format =行
default_storage_engine = InnoDBの
innodb_autoinc_lock_mode = 2 
wsrep_slave_threads = 1 
innodb_flush_log_at_trx_commit = 0 
bind-address = 0.0.0.0


wsrep_node_nameとwsrep_node_addressを除いて、2つのサーバーの構成の他の構成項目は同じです。


新しいクラスターを作成して、最初のノードを開始します。

guys_new_cluster


この時点で、mysqldプロセスがパラメーターを使用して開始され、ポート4567と3306で同時にリッスンしていることがわかります。

galera_new_clusterは1回だけ実行され、ノードは将来通常のサービスモードで再起動することに注意してください。

06.png

07.png


通常の方法で2番目のノードを開始します。

systemctl start mariadb


起動時にエラーが報告されなければ、おめでとうございます。クラスターの形成は完了です。公式の推奨事項は、少なくとも3つのノードをクラスター化することですが、2つでも機能しますが、スプリットブレインの問題が発生する可能性があります。


このとき、両当事者はそれぞれのmariadbにログインし、クラスターのステータスを確認します。同じcluster_status_uuidがあり、クラスターの数cluster_sizeも2、つまり2であることがわかります。

09.png


2台のコンピューターでそれぞれDDLまたはSQLステートメントを実行すると、両方が相互に同期されます。






おすすめ

転載: blog.51cto.com/boytnt/2542583