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

推薦する

JS関数の呼び出し、適用、バインドの超詳細な方法

目次JS 関数呼び出し、適用、バインドメソッド1. call() メソッド1. call() メソッ...

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...

vue+node+socket ioは複数人のインタラクションを実現し、プロセス全体を解放します

1. 背景1. フロントエンドはvue + vuex + socket.io-clientを使用しま...

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

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

Dreamweaver8を使用してウェブサイトのファイルをチェックして整理する方法

Dreamweaver8 を使用して独自の Web サイトを作成する目的は何ですか?インターネットに...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

バックアップ データをインポートするときに innodb_index_stats がエラーを報告する場合の主キー競合の解決方法

障害の説明percona5.6、mysqldump フルバックアップ、バックアップデータのインポート...

OpenSSL を使用した Kubernetes 証明書の生成の概要

Kubernetes は、基本認証、トークン認証、CA 認証の 3 種類の認証をサポートしています。...

CSS における px、em、rem、%、vw、vh 単位の違いの詳細な説明

1.ピクセルpx はピクセルの略語で、画面解像度に対する相対的な長さの単位です。 2. えむ参照は親...

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...

Docker デプロイメント Springboot プロジェクト例の分析

この記事は主に、docker デプロイメント springboot プロジェクトのサンプル分析を紹介...

MySQLはtruncateコマンドを使用してデータベース内のすべてのテーブルを素早くクリアします

1. まずSELECT文を実行して、すべての切り捨て文を生成します。ステートメント形式: selec...

Webフロントエンド開発コース Webフロントエンド開発ツールとは

インターネット技術の発展に伴い、ユーザーはますます Web ページに依存するようになり、Web フロ...

XHTML の IE 条件付きコメント

<br />条件付きコメントはIEシリーズ製品上でXHTMLコード処理を分離して行うこと...

MySQL で最大接続数を設定するためのヒントのまとめ

方法1: コマンドラインの変更次の図に示すように、MySQL コンソールを開いて「set GLOBA...