MySQL マスター スレーブ データベースが同期されない問題を解決する 2 つの方法

MySQL マスター スレーブ データベースが同期されない問題を解決する 2 つの方法

MySQL マスター スレーブ データベースが同期されない問題を解決する 2 つの方法

作業中に、Mysqlのマスターデータベースとスレーブデータベースが同期されていないことが判明しました。

1. 非同期の状況

マスターライブラリ:

mysql>プロセスリストを表示します。

プロセスがスリープしすぎていないか確認します。正常だとわかりました。

マスターステータスを表示します。

それは普通のことだ。

mysql> マスターステータスを表示します。
+-------------------+----------+--------------+-------------------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 3260 | | mysql、テスト、情報スキーマ |
+-------------------+----------+--------------+-------------------------------+
セット内の 1 行 (0.00 秒)

次にスレーブをチェックします

mysql>スレーブステータスを表示\G                                                
 
スレーブIO実行中: はい
スレーブSQL実行中: いいえ

スレーブが同期していないことがわかります

2. 解決策

ここに2つの解決策があります

方法1: エラーを無視して同期を続行する

この方法は、マスター データベースとスレーブ データベースのデータがそれほど変わらない場合、またはデータを完全に統合できない場合、およびデータ要件が厳しくない場合に適しています。

解決する:

奴隷を停止します。
 
#ステップエラーをスキップしたことを示します。後ろの数字は変数です。set global sql_slave_skip_counter = 1;
スレーブを起動します。

次にmysql> show slave status\Gを使用して表示します

mysql>スレーブステータスを表示\G
スレーブIO実行中: はい
スレーブSQL実行中: はい

OK、マスターとスレーブの同期ステータスは正常になりました。 。 。

方法2: マスタースレーブを再度実行し、完全に同期する

この方法は、マスター データベースとスレーブ データベースのデータが大きく異なる場合や、データを完全に統合する必要がある場合に適しています。

解決手順は次のとおりです。

1.まずメインデータベースに入り、データが書き込まれないようにテーブルをロックします。

コマンドを使用します:

mysql> 読み取りロック付きのテーブルをフラッシュします。

注:これは読み取り専用としてロックされており、ステートメントでは大文字と小文字は区別されません。

2. データのバックアップを実行する

#データをmysql.bak.sqlファイルにバックアップします

mysqldump -uroot -p -hlocalhost > mysql.bak.sql


ここで注意すべき点が 1 つあります。データベースのバックアップは定期的に実行する必要があります。より便利で、データの安全性を確保できるシェル スクリプトまたは Python スクリプトを使用できます。

3. マスターステータスを確認する

mysql> マスターステータスを表示します。
+-------------------+----------+--------------+-------------------------------+
| ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 3260 | | mysql、テスト、情報スキーマ |
+-------------------+----------+--------------+-------------------------------+
セット内の 1 行 (0.00 秒)

4. データ復旧のためにMySQLバックアップファイルをスレーブマシンに転送する

scp mysql.bak.sql ルート@192.168.128.101:/tmp/

5.スレーブ状態を停止する

mysql> スレーブを停止します。

6. 次に、データベースからmysqlコマンドを実行してデータのバックアップをインポートします。

mysql> ソース /tmp/mysql.bak.sql

7. スレーブ同期を設定する

スレーブ同期を設定するときは、マスター データベースの show master status 情報内の | File | Position 項目である同期ポイントに注意してください。

マスターを、master_host = '192.168.128.100'、master_user = 'rsync'、master_port=3306、master_password='', master_log_file = 'mysqld-bin.000001'、master_log_pos=3260 に変更します。

8.スレーブ同期を再開する

mysql> スレーブを起動します。

9. 同期ステータスを確認する

mysql>スレーブステータスを表示\G  

スレーブIO実行中: はい
スレーブSQL実行中: はい

10. メイン データベースに戻り、次のコマンドを実行してテーブルのロックを解除します。

テーブルのロックを解除します。

上記は、MySQL データベースのマスター スレーブ同期の問題を解決するための 2 つの方法の詳細です。MySQL のマスター スレーブ データベース同期の問題を解決する詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Mysql データベースのマスタースレーブ同期構成
  • この記事では、MySQLのマスタースレーブ同期の原理を説明します。
  • Docker環境でMySQLを実行し、Binlogを有効にしてマスタースレーブ同期を構成する方法
  • MySQL マスタースレーブ同期、トランザクションロールバックの実装原理
  • MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明
  • MySQL マスタースレーブ同期における server-id の例の詳細な説明
  • MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離
  • MySQL マスタースレーブ同期の原理と応用

<<:  埋め込みJavaScriptと外部リンクの基本的な応用方法

>>:  あなたを救うために、私のテーブルは何を使えばいいでしょうか (Haiyu Blog)

推薦する

CSS仕様 BEM CSSとOOCSSサンプルコード詳細説明

序文プロジェクト開発中、各人のコーディング習慣が異なるため、記述された CSS コードは十分に構造化...

WebプロジェクトのDockerデプロイメントの実装

前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコード...

React useMemo と useCallback の使用シナリオ

目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...

Web2.0: 情報過多の原因と解決策

<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

CentOS 7.6 への MySQL 5.7 GA バージョンのインストール チュートリアル図

目次環境の準備環境の準備mariadbをアンインストールする rpm -qa | grep mari...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

MySQL 8.0.12 winx64 解凍バージョンのインストール グラフィック チュートリアル

mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....

Linuxシステムにおけるキー認証に基づくSSHサービスのプロセス

ご存知のとおり、SSH は現在、リモート ログイン セッションやその他のネットワーク サービスにセキ...

MySQLデータのバックアップとリカバリの実装方法の分析

この記事では、例を使用して MySQL データのバックアップと復元の方法について説明します。ご参考ま...

ページ切り替え効果を作成するための純粋な CSS3 のサンプルコード

前に書いたものは複雑すぎるので、シンプルなコアにしましょう <html> <ヘッド...

Docker 実行時にユーザーとグループを管理する方法

Docker はプロセスを中核としてシステムリソースを分離する管理ツールです。分離は、オペレーティン...

CentOS 8 インストール図 (超詳細なチュートリアル)

CentOS 8 が正式にリリースされました! CentOS は Red Hat の再配布ポリシー...