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がビデオアップロード機能を実装

推薦する

Nodejs プラグインと使用方法の概要

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19....

Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...

Web インタビュー Vue カスタム コンポーネントと呼び出しメソッド

輸入:プロジェクトの要件により、同じコードの一部をコンポーネントにカプセル化し、必要な場所にインポー...

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...

VueとVueComponentの関係の詳細な説明

次のケースでは、これまでに学んだプロトタイプチェーンの知識ポイントを確認します。 // コンストラク...

node.js が大規模プロジェクトに適さない理由

目次序文1. アプリケーションコンポーネント2. アプリケーションの種類3. アプリケーションサービ...

HTML テーブルタグチュートリアル (11): 水平方向の配置属性 ALIGN

水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...

VMware 仮想マシン ブリッジ モードでインターネットにアクセスできない問題を解決する方法

ステップ1: ローカルイーサネットプロパティをチェックして、VMwareブリッジプロトコルがインスト...

HTML タグの表示モード (ブロックレベル タグ、インライン タグ、インライン ブロック タグ) に関する簡単な説明

今日の講義では、HTML におけるタグの表示モードについてお話ししましたが、これはブロックレベルタグ...

MySQL マスタースレーブステータスチェックの実装

1. AデータベースとBデータベースの同期ステータスを確認する次のコマンドを入力すると多くの情報が表...

Webpack ファイル パッケージ化エラー例外

webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...

MySQL でデータベースを作成した後、ユーザー 'root'@'%' によるデータベース 'xxx' へのアクセスが拒否される問題を解決する

序文最近、仕事で問題が発生しました。データベースを作成した後、データベースに接続するときにエラーが発...

独自の FTP および SFTP サーバーを構築するプロセスの紹介

FTP と SFTP はファイル転送プロトコルとして広く使用されています。関連する機能を開発するには...

ul リスト タグ デザイン ウェブ ページ 複数列レイアウト

数日前、CSS で 3 列レイアウトを書いていたときに、突然この方法を思いつきました。このアイデアは...