MySQLマルチインスタンスによる半同期レプリケーション


MySQLマルチインスタンスによる半同期レプリケーション
MySQLマルチインスタンスによる半同期レプリケーション
メインライブラリ1:192.168.40.150
メインライブラリ2:192.168.40.161
スレーブライブラリ(2個のMySQLインスタンス):192.168.40.162
一:それぞれ192.168.40.1161と192.168.40.150【show master status;】を使用して現在のコピー先を記録する
以下に示す
mysql> show master status;
+--------------+----------+--------------+------------------+-------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------+----------+--------------+------------------+-------------------+
| mysql.000006 | 11426362 |              |                  |                   |
+--------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
二:master(それぞれ192.168.40.161と192.168.40.150で以下の操作を行う)
1.バイナリ・ログの有効化
log_bin=mysql
log-bin-index=mysql-index
2.masterの現在のレプリケーションアーキテクチャで唯一のserver-idを選択
server-id={0-2^32}
3.コピー権限を持つユーザーアカウントを作成する
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.40.162' IDENTIFIED BY 'replpass';
mysql> FLUSH PRIVILEGES;
4.masterのプロファイルのmysqldセグメントごとに次の行を追加し、サービスを再起動します.
rpl_semi_sync_master_enabled=ON(または、mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME'semisync_master.so')
mysql> SHOW GLOBAL VARIABLES LIKE '%semi%';
mysql> SET GLOBAL rpl_semi_sync_master_enabled=ON;
mysql> SET GLOBAL rpl_semi_sync_master_timeout=1000;
5.プライマリ・スレーブのレプリケーション時のトランザクション・セキュリティの構成:
プライマリ・サーバ上のmysqldセグメント構成:sync_binlog=1
6.mysqlサービスの再起動
二、slave(192.168.40.162の2つのmysql例では以下のように動作する)
1.192.168.40.162構成の2つの例:socketポートはそれぞれ3306と3307であり、具体的な構成は構成ファイルを参照してください.
2.必要なディレクトリの作成
mkdir -p/data/{mysql3306,mysql3307}
3.それぞれ192.168.40.1161と192.168.40.150のデータディレクトリをパッケージング、192.168にそれぞれアップロードする.40.162の/data/mysql 3306および/data/mysql 3307ディレクトリの下
例:
# cd/data/mysql/
# tar zcf mysql_162.tar.gz ./*
# scp mysql_162.tar.gz 192.168.40.162:/data/mysql3306/
4.中継ログの有効化(バイナリログのオフ)
relay-log=/data/mysql3306/relay-3306.log
relay-log-index=/data/mysql3306/relay-log-index-3306.log
5.slaveの現在のレプリケーションアーキテクチャで唯一のserver-idを選択
server-id={0-2^32}
6.slaveの現在のレプリケーションアーキテクチャで唯一のserver-uuidを選択
データディレクトリの下のauto.cnfはデータディレクトリの下のautoを修理する.cnfのserver-uuid
のように
server-uuid=3fd1f0a1-b34e-11e4-996a-000c29b1b59d
次のように変更
server-uuid=3fd1f0a1-b34e-11e4-996a-000c29b1b52d
5、フィルタのコピー
slave:
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
8.mysqlサービスの再起動
9.半同期コピーを開く
サーバから:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql> SET GLOBAL rpl_semi_sync_slave_enabled=ON;
プライマリ・サーバで、ハーフ同期レプリケーションが有効かどうかを確認します.
mysql> SHOW GLOBAL STATUS LIKE '%semi%';
9.プライマリ・サーバへの接続
mysql> CHANGE MASTER TO MASTER_HOST='192.168.40.161', MASTER_USER='repluser',  MASTER_PASSWORD='replpass',  MASTER_PORT=3306,  MASTER_LOG_FILE='mysql.000006', MASTER_LOG_POS=11426362;
mysql> START SLAVE;      
10.主従が成功したかどうかを確認する
mysql> show slave status;
        :
[root@db_peizi1 ~]# more /etc/my.cnf
[client]
port=3306
socket = /usr/local/mysql/mysql.sock

[mysql]
default-character-set=utf8

[mysqld]
port            = 3306
socket          = /usr/local/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql
server_id=1
user=mysql
skip-name-resolve
log_bin=mysql
expire_logs_days = 30

sync_binlog=1
rpl_semi_sync_master_enabled=ON

#slow_log
slow-query-log=On
slow_query_log_file=/data/logs/mysql/peizi-slow.log
long_query_time=1


# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8
default-storage-engine=InnoDB
explicit_defaults_for_timestamp=true

skip-external-locking

max_connections=300
query_cache_size=1048576
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
tmp_table_size=64M
max_heap_table_size=64M
thread_cache_size=16

myisam_max_sort_file_size=16G
myisam_sort_buffer_size=32M
key_buffer_size=25M
read_buffer_size=128K
read_rnd_buffer_size=256K
sort_buffer_size=256K
join_buffer_size=16M
max_allowed_packet=4M

innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_thread_concurrency=8

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

[mysqld_safe]
log-error=/data/logs/mysql/mysqld.log
pid-file=/usr/local/mysql/tmp/mysqld.pid

           :
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin

[mysql]
default-character-set=utf8

[mysqld1]
port            = 3306
socket          = /usr/local/mysql/mysql-3306.sock
basedir=/usr/local/mysql
datadir=/data/mysql3306
pid-file=/var/lock/subsys/mysql3306/mysq-3306.pid
server_id=11
user=mysql
skip-name-resolve
expire_logs_days = 30

master-info-file=/data/mysql3306/master-3306.info
read-only
relay-log=/data/mysql3306/relay-3306.log
relay-log-index=/data/mysql3306/relay-log-index-3306.log
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8
default-storage-engine=InnoDB
explicit_defaults_for_timestamp=true

skip-external-locking

max_connections=300
query_cache_size=1048576
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
tmp_table_size=64M
thread_cache_size=16

myisam_max_sort_file_size=16G
myisam_sort_buffer_size=32M
key_buffer_size=25M
read_buffer_size=128K
read_rnd_buffer_size=256K
sort_buffer_size=256K
join_buffer_size=16M
max_allowed_packet=4M

innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=64M
innodb_log_file_size=8M
innodb_thread_concurrency=8

lower_case_table_names=1
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

[mysqld2]
port            = 3307
socket          = /usr/local/mysql/mysql-3307.sock
basedir=/usr/local/mysql
datadir=/data/mysql3307
pid-file=/var/lock/subsys/mysql3307/mysql-3307.pid
server_id=6
user=mysql
skip-name-resolve
expire_logs_days = 30

master-info-file=/data/mysql3307/master-3307.info
read-only
relay-log=/data/mysql3307/relay-3307.log
relay-log-index=/data/mysql3307/relay-log-index-3307.log
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8
default-storage-engine=InnoDB
explicit_defaults_for_timestamp=true

skip-external-locking

max_connections=300
query_cache_size=1048576
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
tmp_table_size=64M
thread_cache_size=16

myisam_max_sort_file_size=16G
myisam_sort_buffer_size=32M
key_buffer_size=25M
read_buffer_size=128K
read_rnd_buffer_size=256K
sort_buffer_size=256K
join_buffer_size=16M
max_allowed_packet=4M

innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=64M
innodb_log_file_size=8M
innodb_thread_concurrency=8

lower_case_table_names=1
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"