MySQLマスターレプリケーションクラスタ構築—binlogバイナリファイル方式の詳細
上の文章では、
MySQL
主従複製とは何かを大まかに紹介し、主従複製のいくつかの
図にはどのようなものがあるのか、今日はMySQL
の構築を実現する方法について説明します.主従レプリケーションには2つの方法があり、binlog
とGTID
があります.今期はbinlog
の方法で実現し、次のbinlog
の原理と注意事項について説明します.
時に起きて、
にブラシをかけます.もしあなたがお兄さんの文章を通じていくつかの知識を学ぶことができると思ったら、お兄さんの
をあなたの友达にあげてください.分かち合うのは楽しいことで、私たちは一緒にJava
を游びました.一主一はクラスタから構築する
binlogの概要
Mysql
には、binlog
のすべての修正された
文が記録され、SQL
はプライマリサーバ上の
のバイナリログを、指定された場所でbinlog
のすべての修正された文をコピーし、
で実行します.簡単に言えば、
は
文をバイナリファイル(binlog)に記録し、create、update、delete
はこのファイルを読み取り、ファイルに記録された
文を1回実行します.これにより、プライマリ・スレーブ・データの同期が実現されます.準備作業
マスタースレーブmyを構成します.iniかmy.cnfファイル
create、update、delete
、今回は主にWindowsシステムを例にmy.ini Windows ,my.cnf Linux
:プライマリサーバ一意ID、一般的にマシンIPアドレス後3ビット ID
:binlogログ
(オプション):エラーログ
:0は読み書きでも良い(メインライブラリ)、1は読み取り専用(スレーブライブラリ)0
(オプション):レプリケーションされたデータベースからプライマリに移行しない
(オプション):レプリケーションが必要なデータベース名111マスターライブラリ構築許可ユーザは222スレーブライブラリ
メインライブラリとスレーブライブラリの構成が完了したらmy.iniファイルの後、マスターライブラリからマスターライブラリにログインできるように、マスターライブラリに許可されたユーザーを作成する必要があります.
111 :
GRANT REPLICATION SLAVE ON *.* TO ' '@' IP' IDENTIFIED BY ' ';( )
FLUSH PRIVILEGES;( MySQL )
と
-
222 :
mysql -h IP -usally -pilovesally
- , , IP
- master 111
show master status;
File
の2つのパラメータ、Position
はどのログファイルからデータを するかを し、File
はこのファイルのどこからデータを するかを し、binlog-do-dbとbinlog-lgnore-dbはどのデータベースと のいくつかのデータライブラリを することを します.
ライブラリ マスタライブラリから データファイル を する.
に データを した は、まず してください(stop slave;)、さもないと いを します.222 :
MASTER_HOST=' IP',
MASTER_USER=' ',
MASTER_PASSWORD=' ',
MASTER_LOG_FILE='File ',
MASTER_LOG_POS=Position ;
Position
ライブラリからマスターライブラリに し、
-
start slave;
-
show slave status\G;
YES, ! , !
, ( 111 222 ), 222
と111
の2つのライブラリが いにマスタースレーブであることを し、 からない は の のマスターレプリケーションアーキテクチャ を ることができます.
ライブラリからマスターライブラリへの
の222
をライブラリからメインライブラリに し、222で の を します. のスレーブIPは222
のIPです.GRANT REPLICATION SLAVE ON *.* TO ' '@' IP' IDENTIFIED BY ' ';( )
FLUSH PRIVILEGES;( MySQL )
111
my.ini
- [mysqld]
auto_increment_increment=2 # auto_imcrement。 n MySQL n
auto_increment_offset=1 # 。 n MySQL
111 222
- master 222
show master status;
-
111
データファイル を .
に データを した は、まず してください(stop slave;)、さもないと いを します.
MASTER_HOST=' IP',
MASTER_USER=' ',
MASTER_PASSWORD=' ',
MASTER_LOG_FILE='File ',
MASTER_LOG_POS=Position ;
222
ライブラリ show slave status\G;
-
111
と
YES, ! , 111
の2つのライブラリは、データを いに できません.
デュアルプライマリマルチスレーブクラスタ
たちは のデュアルプライマリクラスタに づいて、デュアルプライマリマルチスレーブクラスタを し、222
マシンが するはずです.333
と111
の がすべて であるため、222
の は として、そのうちの1つのホストに に けておけばよい.ここでは333
を びましょう.
は、 のプライマリ・スレーブ・レプリケーション・クラスタと に、 の に います.
すべての が したら、111
ホストにデータを してテストし、111
と222
がデータを していることがわかりました.しかし、333
でデータテストが されると、222
が していることがわかりますが、111
は していません.333
は333
の に けられたスレーブライブラリであるため、すべての111
ホストがデータを した 、222
は333
のデータを していないので、これは らかにだめです.ソリューションは で、2 のホスト111と222のプロファイルに の を えて すればよい.
log-slave-updates=on
222
と
, 。111
は いに の であり、222
は333
の であるため、111
と111
はこのパラメータを えなければならないので、この をよく してください.
お さんの の 222
は、 を し、MySQL
を できる であるため、この を につけなければならない.
ITお さんMySQL
に :ITお さん
Java 、Java web、JavaEEのすべての を け ることができて、spring bootなどを みます
: テンプレート、100 の しい を ることができます
Java は、 の も な を することができます
Java は、トップクラスのプログラマー 13 を け ることができますMySQL
Java