アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するために、書き込み操作と読み取り操作を分離することが一般的に採用されます。データベース エンジンは、一般的にマスター/スレーブ アーキテクチャを採用します。 MySQL サーバーのマスター/スレーブ構成を実装すると、読み取りと書き込みの分離を実現できます。また、メイン データベースがクラッシュした後でも、スタンバイ データベースからデータを復元できるため、Web サイトへのアクセスが中断されるのを防ぐことができます。以下は、MySQL マスター/スレーブ サーバーの構成プロセスの簡単な説明です。 まず、同じ LAN 内の 2 台のマシンに MySQL サービスをインストールする必要があります (もちろん、1 台のマシンを使用して 2 台のマシンを仮想化することもできます)。 ホストA: 192.168.1.100 スレーブB: 192.168.1.101 スレーブは複数存在できます。 1. まずホスト A にログインし、次のコマンドを実行してスレーブ権限を付与します。クラスター マシンが複数ある場合は、複数回実行します。 mysql> 'backup'@'192.168.1.101' ('123456' によって識別) に *.* のレプリケーション スレーブを許可します。 2. ホスト A の my.cnf を開き、次の構成パラメータを入力します。 server-id = 1 #ホストID、整数 log_bin = /var/log/mysql/mysql-bin.log #このファイルが書き込み可能であることを確認してください read-only = 0 #ホスト、読み取りと書き込みの両方が可能です binlog-do-db = test #データをバックアップする必要があります。複数行書き込みます binlog-ignore-db = mysql #バックアップする必要のないデータベース、複数行書き込みます 3. スレーブ B の my.cnf を開き、次の構成パラメータを入力します。 サーバーID = 2 log_bin = /var/log/mysql/mysql-bin.log マスターホスト =192.168.1.100 マスターユーザー =バックアップ マスターパス =123456 マスターポート =3306 master-connect-retry=60 #スレーブサーバーがマスターサーバーが切断されていることを検出した場合、再接続するまでの時間差(秒単位) replicate-do-db =test #特定のデータベースのみを複製する replicate-ignore-db=mysql #特定のデータベースを複製しない 4. データベースを同期する 上記の設定後、ホスト A とスレーブ B をそれぞれ再起動して自動同期を実現します。 5. 検証 ホスト A で、 大まかにこれらの内容を見ることができます
スレーブ B では、 表示される内容は以下のとおりです。 Slave_IO_State 項目が「マスターがイベントを送信するのを待機中」であり、赤い円内の両方の項目が「はい」であることがわかります。したがって、基本的に構成は成功していると判断できます。 さらに、ホスト A で よくある間違い 1. マスターに障害が発生し、修復して再起動した後、スレーブはマスターと同期できなくなります。 エラー: 理由:マスターが再起動すると、MySQL binlog が再生成され、対応するレコードの位置が変更されます。 解決: -マスター: mysql > ログをフラッシュします。 mysql > マスターステータスを表示します。 ファイルと位置の値を記録する -奴隷: mysql > スレーブを停止します。 mysql > MASTER を MASTER_LOG_FILE='mysql-bin.000049'、MASTER_LOG_POS=1359 に変更します。 mysql> スレーブを起動します。 mysql > スレーブステータスを表示\G; 2. スレーブが故障し、設定は正しいが初期化できない エラー: 解決: -マスター: mysql > ログをフラッシュします。 mysql > マスターステータスを表示します。 ファイルと位置の値を記録する -奴隷: mysql > スレーブをリセットします。 mysql > マスターを、master_host='192.168.10.100'、master_user='test'、master_password='123456'、master_log_file='mysql-bin.000004'、master_log_pos=106 に変更します。 mysql> スレーブを起動します。 mysql > スレーブステータスを表示\G; 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Windows サーバー管理におけるセキュリティの考慮事項
>>: Excelアップロード機能を実現するVue + iViewの完全コード
次のグラフは、100 個の異なる要素で iframe を作成するのにどれくらいの時間がかかるかを示し...
仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...
MySQL は人気のオープンソースデータベース管理システムとして多くのユーザーが利用しています。デー...
目次最初の方法: MySQLデータベースが接続されていない場合2 番目の方法: データベースがすでに...
まずアイデアはこの効果を実現するには、 <input type="checkbox&...
目次1. 親が子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに値を渡す3. 子コ...
コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...
目次序文【ログ取り消し】 【REDOログ】 【バイナリログ】要約する序文MySQL には、REDO ...
目次コンストラクタインスタンスとプロトタイプの関係プロトタイププロパティ属性またはメンバーの検索原則...
序文:複数の要素を格納するために、配列は最も一般的に使用されるデータ構造ですが、配列には多くの欠点も...
導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...
目次序文なぜユニットテストを導入するのですか?ユニットテストの概要テスト開発パターン1. テスト駆動...
序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...
1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...
目次1. 要件の説明2. アイデアの概要1. 延長を要求する2. アイデアの概要3. SQLコード1...