Câu trả lời trực tiếp cho câu hỏi của bạn là Có, nhưng nó phụ thuộc vào phiên bản MySQL bạn đang chạy. Trước MySQL 5.5, sao chép sẽ hoạt động như sau:
- Thạc sĩ thực thi SQL
- Master Records Sự kiện SQL trong Nhật ký nhị phân của nó
- Slave đọc sự kiện SQL từ Nhật ký nhị phân chính
- Slave lưu trữ sự kiện SQL trong Nhật ký chuyển tiếp của nó thông qua chủ đề I / O
- Slave đọc sự kiện SQL tiếp theo từ Nhật ký chuyển tiếp thông qua SQL Thread
- Nô lệ thực thi SQL
- Slave thừa nhận Bậc thầy về việc thực thi hoàn toàn sự kiện SQL
Kể từ MySQL 5.5, sử dụng Sao chép bán đồng bộ , giờ đây, sao chép sẽ hoạt động như sau:
- Thạc sĩ thực thi SQL
- Master Records Sự kiện SQL trong Nhật ký nhị phân của nó
- Slave đọc sự kiện SQL từ Nhật ký nhị phân chính
- Slave thừa nhận Bậc thầy về sự kiện SQL
- Slave lưu trữ sự kiện SQL trong Nhật ký chuyển tiếp của nó thông qua chủ đề I / O
- Slave đọc sự kiện SQL tiếp theo từ Nhật ký chuyển tiếp thông qua SQL Thread
- Nô lệ thực thi SQL
- Slave thừa nhận Bậc thầy về việc thực thi hoàn toàn sự kiện SQL
Mô hình mới này sẽ cho phép một Slave được đồng bộ hóa chặt chẽ hơn với Master của nó.
Mặc dù vậy, độ trễ trong mạng có thể cản trở Bản sao Semisync của MySQL đến điểm mà nó trở lại bản sao không đồng bộ kiểu cũ. Tại sao ? Nếu thời gian chờ xảy ra mà không có bất kỳ nô lệ nào thừa nhận giao dịch, chủ sẽ hoàn nguyên về sao chép không đồng bộ. Khi có ít nhất một nô lệ bán đồng bộ bắt kịp, chủ sẽ quay trở lại sao chép bán đồng bộ.
CẬP NHẬT 2011-08-08 14:22 EDT
Cấu hình của bản sao bán đồng bộ MySQL 5.5 rất đơn giản
Bước 1) Thêm bốn (4) dòng này vào /etc/my.cnf
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
#rpl_semi_sync_master_enabled
#rpl_semi_sync_master_timeout=5000
#rpl_semi_sync_slave_enabled
Bước 2) Khởi động lại MySQL
service mysql restart
Bước 3) Chạy các lệnh này trong máy khách MySQL
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Bước 4) Bỏ ghi chú ba tùy chọn rpm_semi_sync sau tùy chọn plugin-dir
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
rpl_semi_sync_master_enabled
rpl_semi_sync_master_timeout=5000
rpl_semi_sync_slave_enabled
Bước 5) Khởi động lại MySQL
service mysql restart
Tất cả đã được làm xong !!! Bây giờ chỉ cần thiết lập bản sao MySQL như bình thường.