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

推薦する

ブラウザをJavaScriptで対話させる方法

目次1. 最も単純な例2. 音声の速度とピッチをカスタマイズする3. 音量の調整方法4. よく使われ...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

MySQLデータベースはsysbenchに基づくOLTPベンチマークテストを実装します

Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...

ホバープロンプトにはvue2+elementuiを使用する

Vue2+elementui のホバー プロンプトは、外部と内部に分かれています。内部のものは el...

Linux での scp および sftp コマンドの詳細な説明

目次序文1. SCPの使用法2. sftpを使用する3. scp と sftp の違いは何ですか?ど...

MySQL InnoDBとMyISAMの違いを簡単に理解する

序文MySQL は、myisam、innodb、memory、archive、example など、...

Ubuntu環境でのSSHの詳細なインストールと使用

SSH は Secure Shell の略で、安全な伝送プロトコルです。Ubuntu クライアントは...

@Font-face の基本的な使い方と、すべてのブラウザと互換性を持たせる方法

@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...

Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)

序文現在、私はコースウェア PPT のオンライン プレビューを必要とする高品質のコースに取り組んでい...

MySQL マスタースレーブレプリケーション構成プロセス

メインライブラリの構成1. MySQLを設定する vim /etc/my.cn # ファイルに次の内...

Ubuntu 18.04 で apt-get ソースを変更する方法

apt-get を使用してインストールすると、非常に遅くなります。国内のソースを変更すると、この問題...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...