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 システムのグラフィック チュートリアル

推薦する

JavaScript データ プロキシとイベントの詳細な分析

目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...

最高の無料英語フォント33選を紹介

チャンクファイブフリータイプファミリーCuprum JAH I フリーフォントイェセヴァブークレフィ...

Vueはvueメタ情報を使用して各ページのタイトルとメタ情報を設定します。

title: vue は vue-meta-info を使用して各ページのタイトルとメタ情報を設定...

MySQL インフラストラクチャ チュートリアル: クエリ ステートメント実行プロセスの詳細な説明

序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...

uniapp エントリーレベル nvue クライミングピット記録の分析

目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

CentOS 7.x に ZSH ターミナルをインストールする方法

1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...

Vueのシンプルストアの詳しい説明

Vue におけるストアの最も単純な応用はグローバル ストレージです。ここでは、相互にジャンプするため...

DockerイントラネットはDNSを構築し、ip:port操作の代わりにドメイン名アクセスを使用します

たとえば、イントラネットに Jenkins サーバーがある場合、そのサーバーにアクセスするには、その...

HTML 基本要約推奨事項 (テキスト形式)

HTMLテキスト書式タグ 標簽 描述 <b> 定義粗體文本 <em> 呈現...

興味深いカウントダウン効果を実現するjs

js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...

Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法

1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...

Linuxコマンド履歴の調整方法の詳細な説明

Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力...

mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル

zip インストール パッケージをダウンロードします。 MySQL8.0 For Windows z...

MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明

序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...