MySQL データベースのホットスタンバイにおける問題点の分析

MySQL データベースのホットスタンバイにおける問題点の分析

以前、MySQL データベースのデュアルマシン ホット スタンバイの設定方法を紹介しました。ご興味のある方はご参照ください。このセクションでは、重要なリンクと注意が必要な領域をまとめ、分析することに重点を置いています。

I. はじめに

MySQL バージョン: 5.7.20

最初のメインサーバー IP:192.168.71.139

2番目のメインサーバーのIP:192.168.71.141

2. 構成

最初のプライマリサーバー 192.168.71.139

1: /etc/mysql/my.cnf ファイルを変更します。ここでの # はコメントであることに注意してください。設定ファイルには書き込まないでください。

server-id = 141 # サーバー ID。繰り返すことはできません。IP の最後の 3 桁を使用することをお勧めします。
ログ bin = mysql bin
binlog-ignore-db = mysql,information_schema #binlogログを書き込むライブラリを無視する
auto-increment-increment = 2 #フィールド変更の増分値
auto-increment-offset = 1 #初期フィールドIDは1です
slave-skip-errors = all #すべてのレプリケーションエラーを無視する

2: MySQLにログインし、他のサーバーにレプリケーションを許可するアカウントを作成する

'password' で識別される 'mysql account'@'%' に *.* のレプリケーション スレーブ権限を付与します。

3: show master statusを使用してステータスを照会する

2番目のプライマリサーバーは192.168.71.139です

1: /etc/mysql/my.cnf ファイルを変更します。ここで、server-id は 139 であり、残りは変更しません。

ステータスを照会するには、show master statusを使用します。

この時点で、両方のサーバーでmysqlを再起動する必要があります。

192.168.71.141 で同期ステートメントを実行する

master_log_fileの値は139サーバから取得され、show master statusを実行した後のFileフィールドに表示されます。

master_log_fileの値は139サーバから取得され、show master statusを実行した後のPositionフィールドに表示されます。
マスターをmaster_host='192.168.71.139'、master_user='master2'、master_password='123456'、master_log_file='mysql-bin.000002'、master_log_pos=154に変更します。

192.168.71.139で同期ステートメントを実行する

master_log_fileの値は141サーバから取得され、show master statusを実行した後のFileフィールドに表示されます。

master_log_fileの値は141サーバから取得され、show master statusを実行した後のPositionフィールド

マスターをmaster_host='192.168.71.141'、master_user='master1'、master_password='123456'、master_log_file='mysql-bin.000002'、master_log_pos=154に変更します。

これで設定は終了です。MySQLを再起動してMySQLにログインし、 show slave status\Gで設定状況を確認します。Slave_IOが起動できず、以下のエラーが発生していることがわかります

マスターとスレーブの MySQL サーバー UUID が同じであるため、スレーブ I/O スレッドが停止します。レプリケーションが機能するには、これらの UUID が異なる必要があります。

ログには、マスターとスレーブのUUIDが重複していることが示されています。2つのサーバーがクローン化されているため、 /var/lib/ mysql/auto.cnfを変更する必要があります。

ここでは最後の文字のみを変更しました。変更しすぎると、mysql を起動できなくなるためです。変更が完了したら、MySQLを再起動し、MySQLにログインして、以下に示すようにshow slave status\Gを実行します。

3: テスト

任意のサーバーで次のSQLを実行します

テーブル tab141(id int 主キー)を作成します。

テーブル tab139(id int 主キー) を作成します。

139サーバーで次のSQLを実行します

tab139の値(1)に挿入します。

141サーバーで次のSQLを実行します

tab141の値(2)に挿入します。

結果は次のとおりです。

ご質問がございましたら、下のコメント欄でお気軽にご相談ください。

以下もご興味があるかもしれません:
  • MySQL バックアップとリカバリ ホット スタンバイ (3)
  • Linux システムで MySQL ホット バックアップを実装するための詳細な手順 (MySQL マスター スレーブ レプリケーション)
  • Mysqlデータベースデュアルマシンホットスタンバイの構成方法
  • MySQLデュアルマシンホットバックアップの実装手順

<<:  VMware 仮想マシンの 3 つのネットワーク方式と原則 (概要)

>>:  Vueがビデオアップロード機能を実装

推薦する

Vue+nodeはオーディオ録音・再生機能を実現

結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありま...

JavaScript で Priority Queue を実装する

目次1. 優先キューの紹介2. 優先キューのカプセル化1. 優先キューの紹介通常のキューに要素が挿入...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

js でオブジェクトとオブジェクト メソッドを作成するいくつかの方法の詳細な説明

この記事は、JS レッドブックの第 8 章に記載されているオブジェクトに関する 2 番目の記事です。...

Linux ファイル/ディレクトリの権限と所有権の管理

1. ファイルの権限と所有権の概要1. アクセス権Read r: ファイルの内容を表示し、ディレクト...

HTML の基本 - CSS スタイルシート、スタイル属性、フォーマット、レイアウトの詳細

1.位置:固定一部の Web サイトの右下隅にあるポップアップ ウィンドウなどの、ブラウザーを基準と...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

テーブル内の要素のドラッグと並べ替えの問題について簡単に説明します

最近、要素テーブルを使用すると、並べ替えの問題によく遭遇します。単純な並べ替えであれば、要素の公式が...

Apache Bench で Web ストレス テストを実装する方法

1. Apache Benchの紹介ApacheBench は、Apache サーバーに付属する W...

Bash で山括弧を使用するその他の方法

序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...

CSS3 における構造擬似クラスセレクターと擬似要素セレクターの使い方の詳細な説明

構造擬似クラスセレクタの紹介構造擬似クラスセレクターは、いくつかの特殊効果を処理するために使用されま...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

フロントエンド開発では、スクロールバーを非表示にしながらスクロールをサポートしなければならないという...

Tomcat が応答データグラムを書き戻すタイミングの詳細な分析

疑問が生じるこの質問は、ファイルのダウンロードを記述しているときに発生しました。HttpServle...