Replication

Định nghĩa Replica

Replication là quá trình tự động sao chép và đồng bộ hóa dữ liệu từ một cơ sở dữ liệu (gốc) sang một hoặc nhiều cơ sở dữ liệu (replica) khác. Quá trình này giúp tạo ra các bản sao của dữ liệu để đảm bảo tính toàn vẹn và sẵn sàng của dữ liệu, cũng như cung cấp khả năng chịu lỗi và tăng khả năng mở rộng của hệ thống cơ sở dữ liệu.

Tại Sunteco, tùy từng gói người dùng mua mà người dùng có thể tạo số lượng các bản replica khác nhau.

Ví dụ:

  • Gói Dev Test: người dùng không thể tạo các bản replica.

  • Gói Small Business: người dùng có thể tạo được tối đa một replica.

  • Gói Medium Business: người dùng có thể tạo tối đa ba replica.

  • Gói Enterprise: người dùng có thể tạo tối đa năm replica.

Cấu hình thông số của Replica

Replica chỉ được tạo ra khi có một database master, khi replica được tạo ra sẽ có cùng cấu hình (CPU/RAM) với master database, nhưng storage (data disk và system disk) phải cùng dung lượng với master database để đảm bảo cho quá trình đồng bộ dữ liệu không bị gián đoạn.

Khi khởi tạo replica, người dùng chỉ cần chọn các thông số: Replica name, Replica Count, Allowed CIDRs, Public accessibility, Configuration là các thông số cấu hình riêng cho Replica. Các thông số còn lại như: Engine, cấu hình (CPU/RAM), network sẽ giống với Master database. Khi cài đặt Allowed CIDRs của replica, người dùng lưu ý cần cho phép CIDRs của master để dữ liệu của master có thể đồng bộ được sang các replica.

Khi tạo replica hệ thống sẽ không gửi thông tin truy cập mới mà người dùng sẽ sử dụng thông tin truy cập của user root (đã được cấp khi khởi tạo master) để truy cập vào replica, hoặc có thể sử dụng user root để tạo tài khoản dùng cho việc truy cập vào replica.

Việc tính giá của replica sẽ tương ứng với cấu hình và số ngày còn lại - tính đến chu kỳ tiếp theo của master database. Ví dụ: Master được khởi tạo từ 1/10/2024 có period là 1 tháng. Ngày khởi tạo replica là 15/10/2024, expired date của replica cũng sẽ là ngày 30/10/2024. Giá của replica lúc khởi tạo sẽ được tính từ ngày 15/10/2024 đến ngày 30/10/2024, từ các chu kỳ tiếp theo sẽ được tính cùng chu kỳ với master database.

Sử dụng replica

Người dùng có thể đọc và ghi (READ và WRITE) từ master, nhưng chỉ có thể READ được từ replica. Khi ghi dữ liệu vào master, hệ thống tự động đồng bộ sang các replica.

Trong quá trình sử dụng replica, người dùng có thể detach replica thành một database độc lập. Sau khi được detach ra, database sẽ có vòng đời riêng, có thể tạo các replica để hình thành một cụm database độc lập. Replica cũng có thể promote lên thành master, khi đó master sẽ là replica phụ thuộc.

Để cấu hình sử dụng đồng nhất hệ thống database cả master và slave chung dưới một IP để đơn giản hóa việc sử dụng, người dùng có thể cài đặt thêm theo hướng dẫn dưới đây với Mysql Database

Cấu hình database replication

Cấu hình database replication với ProxySQL

Promote Replica lên Master

Trong môi trường cơ sở dữ liệu, việc có các bản sao (replica) của dữ liệu giúp đảm bảo tính sẵn sàng và khả năng phục hồi khi xảy ra sự cố. Nâng cấp một replica lên thành master là một quy trình quan trọng, thường được thực hiện khi master hiện tại gặp sự cố hoặc cần được thay thế.

Việc nâng cấp replica lên master trong dịch vụ cơ sở dữ liệu thường được thực hiện trong các tình huống sau đây:

  • Khi master database gặp sự cố: Nếu máy chủ master gặp sự cố phần cứng nghiêm trọng như hỏng hóc ổ cứng, CPU, hoặc RAM, hệ thống sẽ cần một master mới để tiếp tục hoạt động. Hay khi lỗi phần mềm hoặc sự cố hệ điều hành trên máy chủ master có thể làm gián đoạn dịch vụ, đòi hỏi phải thay thế bằng một master khác.

  • Bảo Trì và Nâng Cấp Hệ Thống: Khi cần bảo trì hoặc nâng cấp phần cứng/phần mềm của master hiện tại, việc chuyển đổi sang replica làm master giúp đảm bảo hệ thống vẫn hoạt động liên tục mà không bị gián đoạn.

  • Kiểm Tra và Thử Nghiệm: Thường xuyên chuyển đổi giữa các replica và master để kiểm tra tính sẵn sàng và khả năng phục hồi của hệ thống, đảm bảo rằng các bản sao luôn sẵn sàng để thay thế master khi cần.

Việc promote replica lên master cần lưu ý một số điểm sau

  • Cả replica database và master database phải đang ở trạng thái running, tức là đang hoạt động bình thường. Một trong hai con đang lỗi, stop,….người dùng đều không thể promote được.

  • Quá trình promotion này có thể mất một khoảng thời gian để hoàn thành và sau quá trình này, replica sẽ trở thành master database, các replica không được promote vẫn là replica phụ thuộc master mới.