MySQLのクラスタモードでのgalera-clusterのデプロイメントの詳細説明

MySQLのクラスタモードでのgalera-clusterのデプロイメントの詳細説明

1: galera-clusterの紹介

Galera Cluster は、Codership によって開発された無料のオープンソースの高可用性ソリューションです。公式 Web サイトは http://galeracluster.com です。 Galera Cluster は、Galera がインストールされた Mariadb クラスターです (この記事では Mariadb Garela クラスターのみを紹介します)。マルチマスター機能を搭載しており、マルチポイント書き込みをサポートします。 Galera Cluster の 3 つ以上のノードはピア関係にあります。各ノードは書き込みをサポートします。書き込まれたデータの一貫性と整合性はクラスター内で保証されます。この記事では、具体的な実装原理について簡単に紹介します。

公式の機能は次のとおりです。

  • 真のマルチマスター クラスター、アクティブ/アクティブ アーキテクチャ。
  • 同期レプリケーション、レプリケーション遅延なし。
  • マルチスレッドレプリケーション。
  • マスター/スレーブ切り替え操作はなく、仮想 IP を使用する必要もありません。
  • ホット バックアップ: 単一ノード障害はデータベース サービスに影響しません。
  • 自動ノード参加をサポートしており、データを手動でコピーする必要はありません。
  • InnoDB ストレージ エンジンをサポートします。
  • アプリケーションに対して透過的なネイティブ MySQL インターフェイス。
  • 読み取りと書き込みを分離する必要はありません。
  • 導入も使用も簡単です。

2. galera-clusterの仕組み

主な懸念事項はデータの一貫性です。 トランザクションはすべてのノードに適用することも、すべてのノードに適用しないこともできます。 したがって、正しく構成されている限り、データベースは同期された状態を維持します。
Galera レプリケーション プラグインは従来の MySQL レプリケーションとは異なり、マルチマスター書き込み競合、レプリケーション ラグ、マスターとスレーブの非同期など、複数の問題を解決できます。

3: MariaDBのgalera-clusterデプロイメント

3.1: システムソフトウェア環境の概要

システム: CentOS7.5x64

192.168.20.33 jiankong01.yl.com
192.168.20.34 jiankong02.yl.com
192.168.20.35 jiankong03.yl.com

ソフトウェア: mariadb-galera-cluster.zip

3.2: 時刻同期サーバーを構成する

flyfishホストはchronydタイムサーバーで設定されています

タイムサーバーは192.168.20.3です

方法がわからない場合は、ビッグ データ クラスター CDH をインストールするための flyfish のタイム サーバーの構成を参照してください。

インストールと設定の方法はここでは提供されません

3.3 mariadb-galeaf-clusterをインストールする

すべてのクラスターノードは以下を実行します。

yum 削除 -y mariadb-libs 

yum install -y unzip boost-devel lsof perl-DBI perl-Data-Dumper

MariaDB のバージョンが 10.0.37-centos73-x86_64-* であることを確認します。 

rpm -ivh MariaDB-Galera-10.0.37-centos73-x86_64-*

3.4 ノード構成ファイル

ノード 1: jiankong01.yl.com

/etc/my.cnf.d をコピーします

vim サーバー.conf
----
[mysqld]

#
# * Galera関連の設定
#
[ガレラ]
# 必須設定
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = 'mycluster'
wsrep_node_name = 'jiankong01.yl.com'
wsrep_node アドレス = '192.168.20.33'
binlog_format=行
デフォルトストレージエンジン=InnoDB
innodb_autoinc_lock_mode=2
バインドアドレス=0.0.0.0
#
# オプション設定
#wsrep_スレーブスレッド=1
----
ノード 2: jiankong02.yl.com

/etc/my.cnf.d/ をコピーします

vim サーバー.conf

----
[mysqld]

#
# * Galera関連の設定
#
[ガレラ]
# 必須設定
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = 'mycluster'
wsrep_node_name = 'jiankong02.yl.com'
wsrep_node アドレス = '192.168.20.34'
binlog_format=行
デフォルトストレージエンジン=InnoDB
innodb_autoinc_lock_mode=2
バインドアドレス=0.0.0.0
#
# オプション設定
#wsrep_スレーブスレッド=1
#innodb_flush_log_at_trx_commit=0
---
ノード 3: jiankong03.yl.com

/etc/my.cnf.d/ をコピーします
vim サーバー.conf
----
[mysqld]

#
# * Galera関連の設定
#
[ガレラ]
# 必須設定
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = 'mycluster'
wsrep_node_name = 'jiankong03.yl.com'
wsrep_node アドレス = '192.168.20.35'
binlog_format=行
デフォルトストレージエンジン=InnoDB
innodb_autoinc_lock_mode=2
バインドアドレス=0.0.0.0
#
# オプション設定
#wsrep_スレーブスレッド=1
#innodb_flush_log_at_trx_commit=0
----

3.4 クラスターを起動する

クラスター内の任意のノードで実行

サービス mysql 開始 --wsrep-new-cluster

ここではノード 3 を例に挙げます。

ノード 1 とノード 2 は次を実行します:

サービスmysql開始

3.5: データベースインスタンスを作成する

ノード 1:

mysql -uroot -pQingchun123.com

データベース nCalInfo を作成する

ノード2と3をチェック

mysql -uroot -pQingchun123.com

データベースを表示 

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL PXC クラスターの構築方法
  • MySQL 高可用性クラスタの展開とフェイルオーバーの実装
  • MySQL 5.7 クラスタ構成手順
  • MySQLクラスタのDockerデプロイメントの実装
  • クラスタrpmを使用してMySQLをインストールするための詳細な手順
  • MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装
  • Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法
  • Docker で MySQL クラスターを構築する方法の例
  • MySQL Cluster 基本導入チュートリアル
  • MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

<<:  Vueデータ変更検出の基本的な実装の簡単な分析

>>:  VMware 仮想マシンのインストール Linux システムのグラフィック チュートリアル

推薦する

Windows 10 での MySQL 8.0 のダウンロードとインストール構成のグラフィック チュートリアル

この記事では、MySQL 8.0のダウンロードとインストールについてご紹介します。具体的な内容は以下...

WordPress実験を実装するための3つの仮想マシンのKVM展開の詳細説明

1. KVM の概要カーネルベースの仮想マシンの略称は、Linux 2.6.20 以降のすべての主要...

VMware仮想マシンにdeepin20をインストールする最も完全で詳細なプロセス

仮想マシンソフトウェア: VMware Workstationイメージ: deepin-deskto...

CSS でレスポンシブ レイアウトを実装する方法

CSS でレスポンシブ レイアウトを実装するレスポンシブレイアウトは非常にハイエンドで難しいように思...

IDEA で Docker を WSL2 にデプロイする詳細なプロセス

ローカル環境はWindows10+WSL2(Ubuntu)です。サーバーにDockerをインストール...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

ウェブフロントエンドに対する一般的な攻撃とその防止方法

ウェブサイトのフロントエンド開発で発生するセキュリティ問題は、クライアントブラウザで実行されるコード...

Typescriptを使用してローカルストレージをカプセル化する方法

目次序文ローカルストレージの使用シナリオ使用上の問題解決機能性有効期限を追加データ暗号化を追加する命...

ES6 の Set および WeakSet コレクションの詳細な説明

目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...

よくある Linux 英語エラーの中国語翻訳 (初心者必見)

1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...

MySQL 5.7.10 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)

MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...

Nginx 構成検出サービスのステータスを実装する方法

1. チェックステータスモジュールがインストールされているかどうかを確認します。 [root@loc...

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...