Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kiểm tra kiểu replication trong MySQL?

Xem và thay đổi định dạng binary log (binlog_format) trong MySQL

Kiểu replication trong MySQL được xác định bởi biến binlog_format, có 3 giá trị: ROW, STATEMENT, MIXED.

Kiểm tra giá trị hiện tại

mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';

Kết quả mặc định (MySQL 5.7+):

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+

Thay đổi kiểu replication

Thay đổi GLOBAL (cần quyền SUPER, ảnh hưởng các kết nối mới):

mysql> SET GLOBAL binlog_format = 'STATEMENT';
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+

Thay đổi SESSION (chỉ ảnh hưởng session hiện tại):

mysql> SET SESSION binlog_format = 'ROW';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+

So sánh 3 chế độ

Chế độMô tảƯu điểmNhược điểm
ROWGhi từng thay đổi hàngAn toàn nhất, chính xác cho replicationBinary log lớn hơn
STATEMENTGhi câu lệnh SQLLog nhỏ, dễ debugKhông an toàn với hàm không xác định (UUID, NOW...)
MIXEDTự động chọn ROW/STATEMENTCân bằngPhức tạp hơn

Lưu ý

  • Thay đổi GLOBAL yêu cầu quyền SYSTEM_VARIABLES_ADMIN hoặc SUPER
  • Không thể thay đổi binlog_format trong transaction đang chạy
  • Khuyến nghị: dùng ROW cho production replication