Replication là tiến trình đồng bộ hóa dữ liệu từ nhiều Server. Replication cung cấp sự dư thừa và tăng dữ liệu có tính khả dụng với nhiều bản sao dữ liệu trên nhiều Database Server khác nhau. Replication bảo vệ một cơ sở dữ liệu từ việc thất thoát của một Server nào đó. Replication cũng cho phép bạn phục hồi dữ liệu từ việc các lỗi ở phần cứng hoặc từ việc ngắt kết nối dịch vụ. Với các bản sao dữ liệu bổ sung, bạn có thể sử dụng cho việc phục hồi, báo cáo, hoặc backup.
MongoDB sử dụng Replica Set để thực hiện Replication. Một Replica Set là một nhóm các sự thể hiện của mongodb mà host cùng tập hợp dữ liệu đó. Trong một Replica, một node là Primary node (có thể gọi là node thứ cấp) sẽ nhận tất cả các hoạt động ghi. Tất cả sự thể hiện (instance) khác, thứ cấp, áp dụng các hoạt động từ node thứ cấp để mà chúng có cùng tập dữ liệu. Replica Set có thể chỉ có một node thứ cấp.
Dưới đây là một sơ đồ đặc trưng cho Replication trong MongoDB, trong đó ứng dụng ở Client luôn luôn tương tác với node sơ cấp và node sơ cấp này sau đó tái tạo dữ liệu cho node thứ cấp.
Trong chương này, chúng ta sẽ chuyển đổi mongo instance thành một Replica Set. Để chuyển đổi thành Replica Set, bạn theo các bước sau:
Bây giờ, khởi động MongoDB Server với việc xác định tùy chọn --replSet. Cú pháp cơ bản của --replSet như sau:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
Nó sẽ bắt đầu một mongod instance với tên rs0, trên cổng 27017. Bây giờ, bắt đầu dòng lệnh và kết nối tới mongo instance này. Trong Mongo Client thông báo lệnh rs.initiate() để khởi tạo một Replica Set mới. Để kiểm tra cấu hình Replica Set, bạn thông báo lệnh rs.conf(). Để kiểm tra trạng thái của Replica Set, bạn thông báo lệnh rs.status().
Để thêm các thành viên tới Replica Set, bắt đầu mongod instance trên nhiều thiết bị. Bây giờ, bắt đầu một Mongo Client và thông báo một lệnh rs.add().
Cú pháp cơ bản của lệnh rs.add() như sau:
>rs.add(HOST_NAME:PORT)
Giả sử tên của mongod instance của bạn là mongod1.net và đang chạy trên cổng 27017. Để thêm instance này tới Replica Set, bạn thông báo lệnh rs.add() trong Mongo Client:
>rs.add("mongod1.net:27017")
>
Bạn có thể thêm instance tới Replica Set chỉ khi bạn đã kết nối tới node sơ cấp. Để kiểm tra xem bạn đã kết nối tới node sơ cấp này chưa, bạn thông báo lệnh db.isMaster() trong Mongo Client.
Unpublished comment
Viết câu trả lời