Database replication được hiểu đơn giản là một tiến trình lưu trữ dữ liệu ở hơn một site hoặc node. Nó thực sự rất có hữu dụng với tính sẵn sàng của dữ liệu. Nó đơn giản là copy dữ liệu từ chỗ này sang chỗ khác và đảm bảo tính toàn vẹn, tính ánh xạ. Và như thế chúng ta có một hệ quản trị cơ sở dữ liệu phân tán nơi mà các ứng dụng có thể tương tác với nhiều node song song, đồng thời cùng một lúc.
Trong bài hôm nay chúng ta sẽ nói chuyện về cơ chế hoạt động của Database Replication và việc cài đặt triển khai trên một số hệ quản trị dữ liệu cụ thể như Oracle, MySql
Loại Data Replication:
Transactional Replication: Đối với loại Transaction Relication, dữ liệu sẽ được sao lưu realtime từ publisher đến các Receiving Database(Subscriber). Transaction mang tính thống nhất giữa các server là điều bặt buộc và có thể khẳng định Transaction Replication là loại Replication từ Server đến Server. Hơn tất cả đó là tính toàn vẹn(consistently) và tính chính xác(accuracy) phải được đảm bảo giữa các server cài databaseSnapshot Replication: Tên loại replication đã nói lên cơ chế hoạt động của loại Replication này. Snapshot được sử dụng đối với một số loại dữ liệu mà ở đó việc thay đổi là không thường xuyên(Có thể sao lưu, cập nhật theo quãng thời gian). Ở một góc độ nào đó Snapshot Replication có phần sẽ chậm hơn so với Transaction Replication tuy nhiên nó lại thích hợp cho quá trình khởi tạo đồng bộ tuần tự giữa database publisher(Master) và các database subscriberMerge Replication: Dữ liệu của một hoặc nhiều database kết hợp lại thành một Database duy nhất. Merge Replication là một kiểu Replication phức tạp bởi vì nó cho cả Publisher và Subscriber có thể thay đổi dữ liệu. Nó là một dạng Replicate client-server bởi lẽ việc thay đổi dữ liệu xuất phát từ publisher sẽ được update đến nhiều subscriber
Zoom sâu hơn về database replication chúng ta sẽ bàn về cơ chế của 2 loại cơ sở dữ liệu tiêu biểu cho 2 dòng dữ liệu là NoSql và RDBMS là Mongodb và MySql
Đối với MongoDb tiến trình Replica set là một nhóm các tiến trình để đảm bảo dữ liệu được đồng nhất với các server. Đối với MongoDb tồn tại một và chỉ một Primary Node. Primary Node có nhiệm vụ nhận tất cả các write request vào database. Primary Node ghi lại tất cả sự thay đổi của toàn bộ dữ liệu vào file log gọi là opt-log.
Đang xem: Replication là gì


Xem thêm: Mơ Trứng Gà Đánh Con Gì – Nằm Mơ Thấy Trứng Gà Đánh Con Gì

Xem thêm: Nghĩa Của Từ Run Là Gì Trong Tiếng Anh? Run About Có Nghĩa Là Gì

Cơ chế thực hiện failover của replica set là dựa trên voting. Một secondary sẽ được bầu lên làm primary của cả replica set. Để voting thành công thì số member trong một replica set phải là số lẻ nếu không sẽ xảy ra trường hợp hai ứng viên đều nhận được số phiếu bầu bằng nhau rốt cục chẳng ai làm primary cả hoặc có thể dẫn đến tình huống có hai member đều tự nhận là primary.
MongoDb cung cấp một cơ chế đặc biệt gọi là Arbiter. Hiểu nôm na Arbiter là một ban trọng tài, hoặc một nhà giám sát hệ thống Replica Set. Nó không đóng vai trò trong việc đồng bộ dữ liệu opt-log, tuy nhiên thông qua HeartBeat, Arbiter sẽ detect được tình trạng của các node trong cụm Replica Set và bầu chọn một secondary lên primary khi failover