従来のマスタ - スレーブ同期データベース構成

環境説明

今試験アーキテクチャは、メインライブラリとメインライブラリ1 WORK1 WORK2 2、3のライブラリからマルチソースコピーであるが、MySQLのシステム・データベース・ライブラリを無視します。

メインライブラリ操作

  1. 一次ライブラリーから同期するデータベースをエクスポート
#从主库导出数据库
mysqldump -uroot -p'******' -h10.2.0.5 -P3306 --triggers -R --single-transaction --no-autocommit --master-data=2 -q -e --databases work1 > work1.sql
mysqldump -uroot -p'******' -h10.2.0.6 -P3306 --triggers -R --single-transaction --no-autocommit --master-data=2 -q -e --databases work2 > work2.sql
  1. メインライブラリに同期ユーザを作成し、同期するデータベースへのアクセスを許可
#在主库授权,已做过的可以忽略
mysql -uroot -p'******' -h10.2.0.5 -P3306
grant replication slave on *.* to 'rep'@'%' identified by '123123';
mysql -uroot -p'******' -h10.2.0.6 -P3306
grant replication slave on *.* to 'rep'@'%' identified by '123123';

その後、先の環境へのライブラリーに由来する主なライブラリをインポートするには、多分、SQLファイルは、限り、データが競合しないよう、中に案内することができます。

理論的には、マルチソースのコピーがそれ以外の場合は、マルチソースコピーではない、同じ名前のすべてのデータベースが存在することを禁止します。

ライブラリ操作から

  1. メインライブラリデータベースからのインポートおよびエクスポート
# 导入数据到从库
mysql -uroot -p'******' -h10.2.0.7 -P3306
>create database work1
>use work1 
>source work1.sql
>create database work2
>use work2 
>source work2.sql
  1. マルチソース・レプリケーション環境の設定

古いモデルは、位置posを決定することで、新しいモデルがGTID番号を設定します

#看以下sql的备份文件
more work1.sql

-- GTID state at the beginning of the backup 
--
SET @@GLOBAL.GTID_PURGED='3edae34c-6299-11e6-95cd-8038bc0c67be:1-6758,
4cdc2a74-6299-11e6-95ce-008cfaf595bc:1-38813008';
--
-- Position to start replication or point-in-time recovery from
--
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.001284', MASTER_LOG_POS=3954096;

あなたは私たちがそれを持ち帰った、GTIDおよびPOS値を見ることができます

  1. ライブラリから設定ファイルを変更します。
#在从库的my.cnf配置文件中添加配置项,需要重启mysql实例
vim my.cnf
[mysqld]
master_info_repository=TABLE
relay_log_info_repository=TABLE

replicate_wild_do_table=work1.%
replicate_wild_do_table=work2.%

read-only # 只读

#5.6以上参数,并行复制线程数
slave_parallel_workers = 4

#5.7新参数,并行复制模式选择,5.6没用
#slave_parallel_type = LOGICAL_CLOCK

#当然也可以在线实现设置,目的就是把主从配置信息改为记录到表
mysql>SET GLOBAL master_info_repository = 'TABLE';
mysql>SET GLOBAL relay_log_info_repository = 'TABLE';
mysql>change replication filter REPLICATE_IGNORE_DB=(mysql) ;

の有無を使用しない選択複製ビジネスライブラリーを、達成するようにライブラリやテーブル、テーブルの唯一の同期実行文は、他のライブラリを扱っていないことを意味し、このパラメータ、replicate_wild_do_table特別な注意が必要ですデータは、それがお互いに干渉することはありません。唯一の公式文書では、ライブラリパラメーター・マーカーを解析し、このパラメータはグローバルな普遍的である、マルチソースコピーすることを、すべてのソース・チャネルは、この構成に共通しています。

オープン読み取り専用読み取り専用言うまでもなく、マルチソースコピーは、一般的にのみ読み取る必要がある、彼らは可能なライブラリを書くことをさせてください。

同時マルチスレッドslave_parallel_workersは、新機能アウト5.6,5.7でコピーし、効果的に並行トランザクションレプリケーションをサポートするために、5.7特に、複製の効率を高めることができ、各コピーセットは、4つの同時スレッドに接続された場合、速度は、非常に印象的です。

slave_parallel_type同時コピーモードがデフォルトの5.7がトランザクションの同時実行複製をコミットするグループを変更するための新しい方法でライブラリに互換モード並行コピーのために5.6で、選択され、同時実行より良い結果が、プライマリサーバの場合は、特別な注意を払いますデータベースのバージョンは、それが唯一のmysql5.7グループは機能を提出し、デフォルトで有効になっているため、変更することが最善ではありません、矛盾しています。

  1. 公式のconfigure複数のソース・レプリケーション
#登录进从库数据库
mysql -uroot -p'******' -h10.2.0.7 -P3306

#先清空所有主从结构的记录
reset slave all;

#配置阿里云的数据库,这是GTID模式
change master to
master_host='10.2.0.5',
master_user='rep',
master_password='123123',
master_port=3306,
MASTER_AUTO_POSITION = 1
FOR CHANNEL 'al_RDS';

#配置自建的数据库,这是GTID模式
change master to
master_host='10.2.0.6',
master_user='rep',
master_password='123123',
master_port=3306,
MASTER_AUTO_POSITION = 1
FOR CHANNEL 'me_mysql';

#重置GTID值
reset master;

#设置GTID值
SET @@GLOBAL.GTID_PURGED='09cb91bf-2669-11e7-8b70-00163e0835ff:1-486646,3edae34c-6299-11e6-95cd-8038bc0c67be:1-6758,
4cdc2a74-6299-11e6-95ce-008cfaf595bc:1-38813008';

二点複数のコピー元が異なるソースチャネルとを区別するためにチャネル識別子を提供し、チャンネルのal_RDS 'のチャンネル名の構成を追加する必要があるときことに注意することは、とても。

値GTIDとreplicate_wild_do_tableパラメータのデフォルト設定はグローバルであるとして、彼らが必要とするものをソースチャンネルように、私たちのGTID値となるように、区切られた「」を持つすべての* .SQLファイルのコレクションGTID値でなければなりません私は最終的にこのそんなにGTIDの状況を設定するように見えました。

そして、すべての設定が完了すると、あなたが起動することができ、起動とシャットダウンは、特定のソースチャンネルを指定する非常に便利な、以下のものをコマンド一覧表示することができます。

#启动/关闭所有源频道
start/stop slave;

#启动/关闭单一的源频道
start/stop slave for channel 'al_RDS';

#当然重置也是可以单独频道的
#RESET SLAVE FOR CHANNEL 'al_RDS';

#查看状态也是可以单独的,不指定就是全部了
#show slave status for channel 'al_RDS';

その後、確認するために、スレーブの状態を示し、状態を見てください。

#在从库上执行命令
mysql -uroot -p'******' -h10.2.0.7 -P3306
mysql> show slave status\G

Replicate_Wild_Do_Table、Executed_Gtid_Setは両側に、世界的な普遍的である、私はパラメータがグローバルであることを特徴とするものを確認します。

次に、各Retrieved_Gtid_Setは、彼らが自分の選択を持って、異なっており、非常に知的な。

彼らは別のチャンネル名をCHANNEL_NAMEかを確認します。

そして、あなたが見ることができ、

Slave_IO_Running和Slave_SQL_Running的双はい、

MASTER_LOG_FILE =のRelay_Master_Log_File、

Read_Master_Log_Pos = Exec_Master_Log_Pos、

Seconds_Behind_Master为0、

だから今、それが同期されます。

おすすめ

転載: www.cnblogs.com/sanduzxcvbnm/p/11639985.html