Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

Đã đăng vào thg 10 15, 2019 6:57 SA 3 phút đọc 3 phút đọc

  1. Giới thiệu về replica set trong MongoDB

    Replica set trong MongoDB là một group các mongod processes để duy trì cùng một cơ sở dữ liệu. Replica set cung cấp khả năng dự phòng và tính sẵn sàng cao.

    Tính dự phòng và sẵn sàng cao

    • Replication cung cấp tính dự phòng và nâng cao tính khả dụng của mongoDB. Với nhiều bản sao chép trên nhiều database server khác nhau, replication nâng cao mức độ chịu lỗi chống lại việc mất dữ liệu trên signle database.
    • Trong một số trường hợp, replication có thể cải thiện khả năng đọc dữ liệu vì client có thể đọc dữ liệu trên nhiều database server khác nhau. Duy trì các bản sao dữ liệu làm tăng tính cục bộ và khả dụng của dữ liệu.
    • Các replica cũng có thể duy trì cho các mục đích như khôi phục dữ liệu, sao lưu.

    Replication trong MongoDB

    Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

    • Replica set là một group các mongod instances để duy trì cùng một bộ cơ sở dữ liệu. Trong replica set bao gồm một số node mang dữ liệu, trong các nút này chỉ duy nhất một nút là nút chính để ghi dữ liệu trong khi các nút còn lại là các nút phụ được sao chép dữ liệu từ nút chính. Nếu nút chính bị lỗi một trong những nút phụ sẽ được thay thế thành một nút chính mới.

    Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  2. Cấu hình replica trong MongoDB trên môi trường ubuntu

  • Cài đặt MongoDB: reference
  • Set up replica set với 3 node (1primary và 2 slave)
    • đầu tiền cần tạo 3 thư mục cho 3 node của replica. Ở đây mình sẽ chạy 3 node trên 3 port 27017, 27018, 27019 nên mình tạo 3 thư mục tương ứng.

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  • Lần lượt run 3 node bằng lệnh:

    sudo mongod --dbpath mongo27017 --port 27017 --replSet "rs0"

    sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"

    sudo mongod --dbpath mongo27019 --port 27019 --replSet "rs0"

    Trong đó:

    • --dbpath là đường dẫn đến thư mục vừa tạo.
    • --port là port để run node của của mongo.
    • --replSet là tên của replication.
  • Access vào mongo để config replica bằng lệnh mongo --port 27017

    Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  • Run lệnh: rs.initiate()

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  • Add lần lượt các node còn lại vào replica set:

    rs.addArb('127.0.0.1:27018')

    rs.add('127.0.0.1:27019')

    • rs.addArb: để add 1 node làm trọng tài.
    • rs.add: để add 1 member vào replica.

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  • Xem lại cấu hình của replica ta thấy lần có 3 node với 3 port 27017, 27018, 27019.

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

  • Access vào các node còn lại và run sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"0 để hoàn thành cấu hình replica set.
  • Set up replica với authentication.

    • Tạo file key để authen giữa các node trong replica.

      sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"1

      sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"2

    • Access primary node để tạo mới user.

    • run: sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"3 sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"4 ở đây mình tạo mới user admin với full quyền trên tất cả db.

  • Restart lại 3 node với sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"5 để yêu cầu authen.

    sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"6

    sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"7

    sudo mongod --dbpath mongo27018 --port 27018 --replSet "rs0"8

reference replica

All rights reserved

Hướng dẫn replica set mongodb configuration - bản sao đặt cấu hình mongodb

Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.