[MYSQL]MySQL 5.5.x Semisynchronous Replication (이중화백업)
환경 : Windows7 + Mysql5.5(Innodb) + MySQL Replication구성이후 실행
출처 - http://h391106.tistory.com/250
출처 - http://lks21c.blogspot.kr/2011/10/mysql-replication-semi-sync-how-to.html
MySQL 5.5 부터 기존의 built-in asynchronous replication 에 semisynchronous replication 이 추가되었다.
MySQL replication 은 기본적으로 asynchronous replication 을 사용한다. Master 는 Slave 가 Binary log 에 언제 엑세스를 했는지 혹은 수행을 했는지 아무정보가 없다.
Master crash 의 경우 Commit 된 정보가 어떤 Slave 로도 전송되지 말아야 한다. (하지만 Asynchronous Replication 에서는 이를 확인할 길이 없다.)
그 결과 Master 에서 Slave 로의 failover 시 누락된 트랜젝션이 발생하게 된다.
Semisynchronous Replication 은 asynchronous replication 의 대안이 될 수 있다.
------------------------------------------------------------------
Semisynchronous Replication 사용을 위해 Plugin 위치를 조회했다.
mysql> show variables like 'plugin_dir';
--------------------------------
<system variables>
mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';
<slave status>
mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';
--------------------------------
On the master :
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.dll';
On the slave :
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.dll';
--------------------------------
On the master :
mysql> set global rpl_semi_sync_master_enabled=1;
mysql> set global rpl_semi_sync_master_timeout=100;
mysql> show variables like 'rpl_semi_sync%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_master_timeout | 100 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
+------------------------------------+-------+
4 rows in set (0.00 sec)
-------------------------
On the slave :
mysql> show variables like 'rpl_semi_sync%';
mysql> set global rpl_semi_sync_slave_enabled=1;
mysql> stop slave io_thread;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave io_thread;
Query OK, 0 rows affected (0.00 sec)
mysql> show status like 'Rpl_semi_sync%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON |
+----------------------------+-------+
1 row in set (0.00 sec)
--------------------------------
'Database > mysql' 카테고리의 다른 글
[MySQL] MySQL 파티션 개요 (0) | 2020.07.30 |
---|---|
[MySQL] SELECT 결과물을 파일로 저장하기. (0) | 2020.07.30 |
[MySQL] mysqldump로 DB 백업하기 (0) | 2020.07.30 |
[MYSQL]mysqldump 백업 (0) | 2020.07.13 |
[MYSQL]MySQL 5.5.x Replication(MySQL 5.6 이중화) (0) | 2020.07.13 |
[MYSQL]테이블 카운트, rows (0) | 2020.07.13 |
[MYSQL]DB복구(innodb) (0) | 2020.07.13 |
[MYSQL]MySQL 쿼리 결과를 파일로 저장하기(shell) (0) | 2020.07.13 |