[Mysql]高度な最適化--- Mysqlマスタースレーブレプリケーション

Mysqlマスタースレーブレプリケーション


Mysql全体的なマスタースレーブレプリケーションは、redisのマスタースレーブレプリケーションに似ています。


1.複製の基本原則

slave 会从 master 读取 binlog 来进行数据同步

3つのステップ:

  1. マスター、変更をバイナリログに記録しますこれらの記録プロセスは、バイナリログ時間、バイナリログイベントと呼ばれます。
  2. マスタースレーブバイナリログへのコピーebentsリレーログリレーログ
  3. スレーブはリレーログの時間をやり直し、変更を自身のデータベースに適用しますMySQLのレプリケーションはある非同期シリアライズ

回路図:

ここに画像の説明を挿入します


2.複製の基本原則

  • 各スレーブにマスターが1つだけあります
  • 各スレーブは一意のサーバーIDのみを持つことができます
  • 各マスターは複数の軟膏を持つことができます

3つ目は、レプリケーションの最大の問題です。

最大の質問をコピーすることです:遅延あります


1つのマスターと1つのスレーブの4つの一般的な構成

ホストと仮想マシン上にある場合は、それらが同じネットワークセグメント上にあることを確認してください

(1)mysqlのバージョンは一貫しており、バックグラウンドはサービスとして実行されます

ここに画像の説明を挿入します

ここに画像の説明を挿入します


(2)マスターとスレーブはすべて[mysqld]ノードの下にすべて小文字で構成されています


(3)ホストはmy.ini構成ファイルを変更します(Windows)

2つの必須項目のみを構成します

①[必須]メインサーバーの一意のID
server-id =1

②[必須]バイナリログを有効にする
log-bin=自己本地的路径/mysqlbin
log-bin=D:\Mysql5\mysql5\data\mysqlbin

③[オプション]開始エラーログ
log-err=自己本地的路径/mysqlerr

④(オプション)ルートディレクトリ
basedir="自己本地路径"
basedir=D:\Mysql5\mysql5

⑤(オプション)一時ディレクトリ
tmpdir="自己的本地路劲"

⑥[オプション]データカタログ
datadir="自己本地路径/Data/"
datadir=D:\Mysql5\mysql5\data

ʻread-only = 0(ホストの読み取りと書き込みのサポート)
read-only=0

⑧[オプション]データベースをコピーしないように設定します
binlog-lgnore-db=mysql

⑨[オプション]コピーするデータを設定します
binlog-do-db=需要复制的主数据库名字

(4)マシンからmy.cnf構成ファイルを変更します(Linux)

(1)【必須】スレーブサーバーの一意のID
server-id =2

(2)[オプション]バイナリファイルを有効にする
log-bin=/var/lib/mysql/mysql-bin

(5)設定ファイルが変更されているため、ホストとスレーブの両方でバックグラウンドmysqlサービスを開始してください

ここに画像の説明を挿入します

ここに画像の説明を挿入します


(6)ホストとスレーブの両方のファイアウォールをオフにします

ホストは手動でファイアウォールをオフにします

マシンのコマンドラインからシャットダウンします。service iptables stop
ここに画像の説明を挿入します


(7)Windowsホストでアカウントを作成し、スレーブを承認します

①承認
GRANT REPLICATION SLAVE  ON *.* TO '用户名'@'从机器数据库IP’ IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE  ON *.* TO 'zhangsan'@'192.168.43.129' IDENTIFIED BY '123456';

ここに画像の説明を挿入します


②特権をフラッシュします。

ここに画像の説明を挿入します


③マスターの状態を問い合わせる
show master status;

ファイルと位置の値を記録します

ここに画像の説明を挿入します


④この手順を実行した後、メインサーバーの状態値の変更を防ぐためにメインサーバーのMySQLは実行されません

(8)Linuxスレーブにコピーするようにホストを構成します

①スレーブで設定する
CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=759
CHANGE MASTER TO MASTER_HOST='192.168.43.187',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlbin.000002',MASTER_LOG_POS=1059;

ここに画像の説明を挿入します

ここに画像の説明を挿入します


②サーバーからコピー機能を開始します
start slave;

ここに画像の説明を挿入します


③スレーブ状態を表示\ G

次の2つのパラメーターは両方ともYESであり、マスタースレーブ構成が成功したことを示します。

Slave_IO_Running:Yes
Slave_SQL_Running:Yes

(9)マスターは、新しいライブラリ、新しいテーブル、挿入レコード、およびマシンからのコピーを作成します


(10)サービスからの関数のコピーを停止する方法

stop slave;

おすすめ

転載: blog.csdn.net/weixin_45260385/article/details/114901049