MySQLマスター/スレーブレプリケーション(8)-準同期レプリケーション構成

MySQLマスター/スレーブレプリケーション(8)-準同期レプリケーション構成

MySQLの非同期レプリケーションは、最高のパフォーマンスを提供できます。マスターデータベースは、binlogログをスレーブデータベースに送信します。このアクションは終了し、スレーブデータベースが受信したかどうかは確認されません。また、メインサーバーまたはスレーブサーバーに障害が発生した場合、マスターサーバーから送信されたbinlogログをスレーブサーバーが受信しない可能性があり、マスターサーバーとスレーブサーバーのデータに不整合が生じ、リカバリ中にもデータが発生する可能性があります。損失。

準同期レプリケーションモードは、MySQL 5.5以降に導入されました。このモードでは、スレーブサーバーがマスターサーバーから送信されたbinlogログファイルを受信して​​独自のリレーログに書き込み、マスターサーバーにフィードバックを送信して、受信が完了したことをマスターサーバーに通知し、メインサービススレッドに通知します。現在のセッションに戻り、操作が完了したことを通知します。

準同期レプリケーションの構成プロセスは次のとおりです。

1.動作環境

オペレーティングシステム:CentOS Linuxリリース7.8.2003(コア)
MySQLバージョン:MySQL5.7
プライマリサーバーIP:192.168.1.11
スレーブサーバーIP:192.168.1.12

次に、メインサーバーの構成

1.準同期プラグインをインストールします

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.04 sec)

2.構成ファイルを変更します

log-bin = mysql-master-binlog
log-slave-updates = 1
binlog_format = row

server-id = 1
server_id_bits = 33
rpl_semi_sync_master_enabled = 1  # 表示在master上开启半同步复制模式
rpl_semi_sync_master_timeout = 1000  # 表示主库在某次事务中的等待时间为10000毫秒

3.準同期構成情報を表示する

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
1 row in set (0.00 sec)

4.コピーアカウントを作成する

mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

第三に、スレーブサーバーの構成

1.準同期プラグインをインストールします

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Query OK, 0 rows affected (0.03 sec)

2.構成ファイルを変更します

log-bin = mysql-master-binlog
log-slave-updates = 1
binlog_format = row  

server-id = 2
server_id_bits = 32
rpl_semi_sync_slave_enabled = 1

3.準同期構成情報を表示する

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+---------------------+---------------+
| PLUGIN_NAME         | PLUGIN_STATUS |
+---------------------+---------------+
| rpl_semi_sync_slave | ACTIVE        |
+---------------------+---------------+
1 row in set (0.03 sec)

4.コピーオプションを設定する

change master to
master_host='192.168.1.11',
master_user='repl',
master_password='123456',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;

5.スレーブを起動し、スレーブライブラリのステータスを確認します

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.11
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-master-binlog.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-relay-log.000003
                Relay_Log_Pos: 387
        Relay_Master_Log_File: mysql-master-binlog.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

おすすめ

転載: blog.csdn.net/weixin_44377973/article/details/107521694