三、mysqlのマスタースレーブのレプリケーション

1つのMySQLのマスタースレーブのレプリケーション
1.1マスター・スレーブレプリケーションの意味
MySQLのマルチサーバーアーキテクチャでは、マスターノードの相対的で、我々はノード(スレーブ)スレーブそれを呼び出す、少なくとも、マスターノード(マスター)を持っている必要があります。
マスターコピーから、それは1つ以上のノードからマスターノードにデータをコピーすることです。マスタおよびIPのスレーブサーバが、これは非同期プロセスである介して異なる、リモート同期データ接続であってもよいです。
フォーム1.2のマスターコピーから
マスタースレーブ/
マスターマルチスレーブ 
マルチマスターから
デュアルマスターレプリケーション
カスケードレプリケーション
使用から1.3レプリケーションマスタ
データのバックアップ:データが失われたときに、単一のサーバに障害が発生したので、別のマシンにデータをコピーします。
別々の読み取りと書き込み:ライブラリから読み出しが読み書きする並行性を向上させるために責任があり、主なライブラリは執筆を担当してみましょう。
HA HA:ノードに障害が発生し、自動的に可用性を向上させる、他のノードに転送されます。
拡張:共有組み合わせ機構の負荷が均等にすべてのアプリケーションは、スタンドアローンのIOの削減、リクエストにアクセスします。
 
マスタースレーブのレプリケーションは、それを達成する方法ですか?レビュー:Redisのマスタースレーブのレプリケーションがどのように達成するには?
1.4ビンログ
DDLとDMLステートメントを含むMySQLのデータベース操作のためのクライアントは、サーバーがすべての操作を記録して、ログファイルに記録されたイベントの形態である場合には、この文書には、バイナリログファイル(AOFのRedisのと同様の論理ログファイルの一部)があります。
ビンログ基づいて、我々は、メインのスレーブレプリケーションおよびデータリカバリを実現することができます。BINLOGはデフォルトでオンになっていない、手動でサーバーを設定する必要があります。いくつかのパフォーマンスの損失があることに注意してください。
1.4.1 binlogの設定
編集な/etc/my.cnf
ログインビン= / VAR / libに/ mysqlの/はmysql- ビン
サーバー -id = 1
MySQLサービスを再起動し
サービスのmysqldストップ
サービスmysqldを開始
##エラーログを表示発生した場合
我々/var/log/mysqld.log
CDの/ var / libに/ mysqlの
 
オープンbinlogのにするかどうか
「log_bin%」のような変数を表示。

 

 

1.4.2 binlogのフォーマット
STATEMENT:変更されたデータ(ログ削減量、IOを保存)を記録する各SQL文。
ROW:変更された記録データ、(5.7デフォルト後)のように見えるものに変更。
MIXED:STATEMENT一般的な声明、ROWを持つクラスの機能を持つ2つの方法の組み合わせ。
 
ビンログフォーマットを表示します。
表示さグローバルのような変数%binlog_format%を ;

 

 

ビューbinlogのリスト 
バイナリログを表示します。

 

 

ビューbinlogのコンテンツ
ビンログイベントを示しにおける のmysql-bin.000001を ;

 

 

、時間ベースのビューのbinlog使用mysqlbinlogはツール
(これは、Linuxのコマンドであることに注意してください、ではないSQL) 
/ usr / binに/ mysqlbinlogは--start-日時= ' 2019年8月22日午前13時30分00秒' --stop-日時= ' 2019年8月22日14時01分01秒' -d gupao / VAR / libに/ mysqlの/ mysqlのビン。000001

 

 

1.5マスタースレーブレプリケーションの動作
1.5.1マスター・スレーブ構成のレプリケーション
1、binlogのメインライブラリー、提供サーバIDを開きます
2.ユーザーを作成すると、ライブラリからの接続を許可するメインライブラリにコピーする権限を持っています 
GRANT REPLICATION SLAVE,
REPLICATION CLIENT ON *.* TO 'repl'@'192.168.8.147' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
3、从库/etc/my.cnf 配置,重启数据库
server-id=2 
log-bin=mysql-bin 
relay-log=mysql-relay-bin 
read-only=1
log-slave-updates=1
log-slave-updates 决定了在从 binlog 读取数据时,是否记录 binlog,实现双主和级联的关键
4、在从库执行
stop slave;
change master to master_host='192.168.8.146',
master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',
master_log_pos=4;
start slave;
5、查看同步状态 
SHOW SLAVE STATUS \G
以下为正常: 

 

 

 

1.5.2 主从复制原理
这里面涉及到几个线程:

 

 

1、slave 服务器执行 start slave,开启主从复制开关, slave 服务器的 IO 线程请
求从 master 服务器读取 binlog(如果该线程追赶上了主库,会进入睡眠状态)。
2、master 服务器创建 Log Dump 线程,把 binlog 发送给 slave 服务器。slave 服
务器把读取到的 binlog 日志内容写入中继日志 relay log(会记录位置信息,以便下次继
续读取)。
3、slave 服务器的 SQL 线程会实时检测 relay log 中新增的日志内容,把 relay log
解析成 SQL 语句,并执行。

おすすめ

転載: www.cnblogs.com/flgb/p/12057711.html