Khi làm việc với MariaDB, việc cấu hình binary log (binlog) cho sao chép dữ liệu giữa các máy chủ là điều quan trọng. Một trong những yếu tố cần lưu ý là chế độ binlog. Hai chế độ chính là Statement-based Logging (SBL) và Row-based Logging (RBL). Nếu bạn đang sử dụng Statement-based và muốn chuyển sang Row-based, bài viết này sẽ giải thích quy trình thực hiện cũng như những lưu ý quan trọng trước khi thay đổi.
Để hiểu tại sao việc chuyển từ Statement sang Row lại quan trọng, chúng ta cần biết sự khác biệt giữa hai chế độ này.
Row-Based Logging (RBL):
Chuyển sang Row-based giúp bạn tránh các vấn đề không đồng nhất trong replication, vì nó chỉ ghi lại các thay đổi thực tế trên dữ liệu, không bị ảnh hưởng bởi câu lệnh SQL hay cấu hình khác nhau giữa các máy chủ.
Binlog ở chế độ Row-based sẽ chiếm nhiều dung lượng hơn vì cần phải ghi lại chi tiết các thay đổi ở cấp độ dòng. Bạn cần đảm bảo hệ thống có đủ dung lượng ổ đĩa để lưu trữ binlog lớn hơn.
Chế độ Row-based có thể ảnh hưởng đến hiệu suất, đặc biệt nếu bạn có lượng dữ liệu lớn cần sao chép, vì quá trình ghi log chi tiết sẽ tốn thêm tài nguyên.
Nếu hệ thống hoặc ứng dụng của bạn đã được tối ưu cho chế độ Statement-based, chuyển sang Row-based có thể yêu cầu bạn điều chỉnh một số cài đặt hoặc cách thức hoạt động của ứng dụng, đặc biệt là nếu nó phụ thuộc vào câu lệnh SQL.
Dưới đây là các bước chi tiết để chuyển chế độ binlog từ Statement sang Row:
Đầu tiên, bạn cần xác định chế độ binlog đang sử dụng trên MariaDB: