Đặt -- MongoDB

Một trong những thách thức phổ biến mà mọi doanh nghiệp đang phát triển phải đối mặt là khả năng xử lý hiệu quả dữ liệu đang tăng theo cấp số nhân. Ngoài Cơ sở dữ liệu quan hệ truyền thống, các tổ chức hiện đang sử dụng Cơ sở dữ liệu NoQuery nguồn mở hướng đến tài liệu như MongoDB.  

MongoDB Replication là một tính năng tuyệt vời giúp bảo vệ dữ liệu của bạn trong trường hợp có bất kỳ lỗi phần cứng hoặc phần mềm nào. Để kích hoạt tính năng này, bạn có thể dễ dàng thiết lập Cấu hình bộ bản sao MongoDB. Các Bộ bản sao này cho phép người dùng tạo các bản sao dữ liệu bổ sung cho một số mục đích như Khôi phục thảm họa, Sao lưu, Báo cáo, v.v.

Trong bài viết này, bạn sẽ tìm hiểu cách thiết lập hiệu quả Cấu hình bộ bản sao MongoDB trong 7 bước đơn giản

Mục lục

MongoDB là gì?

MongoDB Replica Set Config - MongoDB LogoNguồn hình ảnh

MongoDB là Cơ sở dữ liệu NoSQL nguồn mở hướng đến tài liệu. Nó lưu trữ dữ liệu trong tài liệu và hỗ trợ Ngôn ngữ truy vấn NoSQL để tương tác với dữ liệu. MongoDB rất phổ biến trong các tổ chức do các tính năng của nó. MongoDB có tính đàn hồi cao và cho phép bạn kết hợp và lưu trữ dữ liệu đa biến mà không ảnh hưởng đến các tùy chọn lập chỉ mục mạnh mẽ, quyền truy cập dữ liệu và quy tắc xác thực

Cơ sở dữ liệu NoSQL có nghĩa là nó không lưu trữ dữ liệu theo hàng và cột so với cơ sở dữ liệu truyền thống mà thay vào đó sử dụng các tài liệu thu thập các cặp khóa-giá trị để lưu trữ dữ liệu. Cặp khóa-giá trị cho phép MongoDB lưu trữ dữ liệu không có lược đồ và chia tỷ lệ chúng theo chiều dọc khi cần mà không làm gián đoạn mô hình dữ liệu. Nó giữ dữ liệu ở định dạng lưu trữ được gọi là BSON (Kiểu nhị phân của tài liệu JSON).  

Bản sao trong MongoDB là gì?

Sao chép là quá trình tạo bản sao dữ liệu trên các máy chủ để đảm bảo tính sẵn sàng cao của dữ liệu trong trường hợp lỗi. Sao chép dữ liệu đảm bảo rằng dữ liệu luôn có sẵn cho người dùng trong trường hợp có lỗi mạng hoặc lỗi phần cứng có khả năng gây mất dữ liệu

Bộ bản sao MongoDB là một nhóm các quy trình mongod duy trì cùng một bộ dữ liệu xuyên suốt. Sao chép trong MongoDB được thực hiện thông qua Bộ bản sao. Bộ bản sao cung cấp Dự phòng dữ liệu và Tính sẵn sàng cao và cung cấp khả năng chịu lỗi chống mất mát. Bộ bản sao cho phép người dùng tạo các bản sao dữ liệu bổ sung cho các mục đích chuyên dụng như Khắc phục sự cố, Sao lưu, Báo cáo, v.v.

Tại sao bạn cần Bản sao trong MongoDB?

Sao chép là một kỹ thuật để đồng bộ hóa dữ liệu trên nhiều nút máy chủ. Nhu cầu nhân rộng có thể được hiểu từ các điểm sau

  • Sao chép dữ liệu sao chép dữ liệu trên các máy chủ, do đó đảm bảo tính khả dụng của dữ liệu cao
  • Sao chép dữ liệu cung cấp mức độ chịu lỗi chống lại mọi mất dữ liệu
  • Giữ một bản sao dữ liệu ở máy chủ khác giúp người dùng khôi phục dữ liệu trong trường hợp lỗi mạng hoặc mất dữ liệu
  • Nó cũng có thể phục vụ cho việc khắc phục thảm họa, báo cáo, v.v.
  • Nó cũng có thể hoạt động như một bộ cân bằng tải, vì nó gây ra tải ít hơn trên một máy chủ cụ thể để truy xuất dữ liệu

Cấu hình bộ bản sao MongoDB là gì?

Bản sao của MongoDB sử dụng một bộ bản sao để thực hiện Bản sao. Có nhiều cấu hình khác nhau liên quan đến bộ bản sao để sao chép dữ liệu từ máy chủ này sang máy chủ khác thành công. Trong bài đăng trên blog này, bạn sẽ tìm hiểu về các tùy chọn cấu hình khác nhau có sẵn và cách bạn có thể sử dụng chúng để sao chép dữ liệu của mình một cách hiệu quả

Bạn có thể truy cập cấu hình bộ bản sao thông qua phương thức rs. conf(). Đưa ra dưới đây là một tài liệu cấu hình mẫu.  

{
  _id: ,
  version: ,
  term: ,
  protocolVersion: ,
  writeConcernMajorityJournalDefault: ,
  configsvr: ,
  members: [
    {
      _id: ,
      host: ,
      arbiterOnly: ,
      buildIndexes: ,
      hidden: ,
      priority: ,
      tags: ,
      secondaryDelaySecs: ,
      votes: 
    },
    ...
  ],
  settings: {
    chainingAllowed : ,
    heartbeatIntervalMillis : ,
    heartbeatTimeoutSecs: ,
    electionTimeoutMillis : ,
    catchUpTimeoutMillis : ,
    getLastErrorModes : ,
    getLastErrorDefaults : ,
    replicaSetId: 
  }
}

Tài liệu cấu hình trên chứa các yếu tố sau.   

  • _Tôi. Đây là tên của bộ bản sao
  • phiên bản. Đây là số tăng dần để phân biệt các phiên bản Replication khác nhau
  • thuật ngữ. Số gia tăng được sử dụng để phân biệt các phiên bản của tài liệu cấu hình bộ bản sao với các lần lặp lại cấu hình trước đó
  • cấu hình. là một thuật ngữ boolean cho biết liệu bộ bản sao có được sử dụng cho các máy chủ cấu hình của cụm bị phân mảnh hay không
  • giao thứcPhiên bản. Nó mặc định là 1
  • writeConcernMajorityJournalDefault. Xác định hành vi của { w. “đa số”} ghi mối quan tâm nếu mối quan tâm ghi không chỉ định rõ ràng tùy chọn nhật ký j
  • các thành viên. Phần tử mảng này chứa thông tin về các thành viên sao chép khác nhau (máy chủ) được bao gồm trong bộ sao chép. Nó lưu trữ id, tên máy chủ, chỉ mục, mức độ ưu tiên, v.v.
  • cài đặt. Nó chứa các cài đặt tùy chọn được áp dụng cho toàn bộ bản sao

Bạn có thể tìm thêm thông tin về các tùy chọn cấu hình này từ trang Tài liệu chính thức của MongoDB

Mở rộng quy mô tích hợp dữ liệu của bạn một cách dễ dàng với Đường ống dữ liệu không có mã chịu lỗi của Hevo

Khi khả năng thu thập dữ liệu của các doanh nghiệp bùng nổ, các nhóm dữ liệu có vai trò quan trọng trong việc thúc đẩy các quyết định dựa trên dữ liệu. Tuy nhiên, họ đấu tranh để hợp nhất dữ liệu nằm rải rác trên các nguồn vào kho của họ để xây dựng một nguồn sự thật duy nhất. Đường ống bị hỏng, vấn đề về chất lượng dữ liệu, lỗi và sai sót, thiếu kiểm soát và khả năng hiển thị đối với luồng dữ liệu khiến việc tích hợp dữ liệu trở thành cơn ác mộng

Hơn 1000 nhóm dữ liệu dựa vào Nền tảng đường ống dữ liệu của Hevo để tích hợp dữ liệu từ hơn 150 nguồn trong vài phút. Hàng tỷ sự kiện dữ liệu từ các nguồn đa dạng như ứng dụng SaaS, Cơ sở dữ liệu, Lưu trữ tệp và nguồn Truyền phát có thể được sao chép gần như theo thời gian thực với kiến ​​trúc chịu lỗi của Hevo. Hơn thế nữa - Hevo trao toàn quyền kiểm soát cho các nhóm dữ liệu với bảng điều khiển trực quan để theo dõi đường ống, quản lý lược đồ tự động, lịch trình nhập/tải tùy chỉnh.  

Tất cả những điều này kết hợp với giá cả minh bạch và hỗ trợ 24×7 khiến chúng tôi trở thành phần mềm đường dẫn dữ liệu được yêu thích nhất trên các trang web đánh giá

Hãy dùng thử miễn phí 14 ngày của chúng tôi để trải nghiệm cách tốt hơn để quản lý các đường dẫn dữ liệu

Làm cách nào để thiết lập Cấu hình bộ bản sao MongoDB?

MongoDB Replica Set Config - Set up MongoDb Replica SetNguồn hình ảnh

Thiết lập Replication trong MongoDB gồm các bước khá đơn giản và dễ học. Đảm bảo rằng MongoDB được cài đặt trên tất cả các nút mà bạn muốn sao chép dữ liệu. Để cài đặt MongoDB, bạn có thể tham khảo hướng dẫn có sẵn trong Tài liệu chính thức về MongoDB. Bây giờ bạn có thể làm theo quy trình từng bước để thiết lập Bản sao trong MongoDB

Bản sao MongoDB Đặt cấu hình Bước 1. Thiết lập máy chủ

Đối với ví dụ này, các nút sau được sử dụng để sao chép dữ liệu.  

192.168.0.29 mongo-db1 
192.168.0.30 mongo-db2
192.168.0.31 mongo-db3

Thêm địa chỉ IP trên vào tệp/etc/hosts của mỗi nút. Vui lòng đảm bảo rằng tất cả ba IP cần phải có trong tệp/etc/hosts của mỗi nút

Bản sao MongoDB Đặt cấu hình Bước 2. Thiết lập tên máy chủ

Trên mỗi nút, đổi tên tên máy chủ được xác định thông qua tên, không chỉ bằng địa chỉ IP

$ sudo vim /etc/hostname     ## On Node1 
mongo-db1 
$ sudo vim /etc/hostname     ## On Node2
mongo-db2
$ sudo vim /etc/hostname     ## On Node3
mongo-db3

Bước cấu hình thiết lập bản sao MongoDB 3. Tạo khóa

Các khóa sẽ giúp giao tiếp với các nút mà không yêu cầu mật mã bên ngoài

Để tạo khóa, hãy thực hiện các lệnh bên dưới

On Node 1(mongo-db1)
# mkdir -p /etc/mongodb/keys/
# openssl rand -base64 756 > /etc/mongodb/keys/mongo-key
# chmod 400 /etc/mongodb/keys/mongo-key
# chown -R mongodb:mongodb /etc/mongodb

Bây giờ, bạn có thể sao chép tệp khóa đã tạo vào tất cả các nút khác ở cùng vị trí tôi. e. /etc/mongodb/keys

Bước cấu hình thiết lập bản sao MongoDB 4. Định cấu hình Bộ bản sao

Bây giờ bạn đã hoàn thành tất cả các cấu hình trên các nút, bước cuối cùng là thêm địa chỉ IP của các nút và cung cấp tên bộ sao chép. Tệp cấu hình MongoDB có thể được tìm thấy tại /etc/mongo. conf

On node 1 => mongo-db1
# network interfaces
net:
  port: 27017
  bindIp: 192.168.0.29
#security:
security:
 authorization: enabled
 keyFile:  /etc/mongodb/keys/mongo-key
#replication:
replication:
  replSetName: "replicaset-01"

Thực hiện tương tự trên hai nút còn lại

Sau khi thay đổi xong, bạn có thể khởi động lại dịch vụ MongoDB bằng cách chạy lệnh sau.  

sudo systemctl restart mongod

Bản sao MongoDB đặt cấu hình Bước 5. Bắt đầu sao chép

Đăng nhập vào nút chính 192. 168. 0. 29

$ mongo
> rs.initiate()

Bản sao MongoDB đặt cấu hình Bước 6. Thêm trường hợp vào bộ bản sao

Sau khi REPL sao chép được bắt đầu, đã đến lúc thêm các nút vào bản sao được đặt bằng lệnh sau

rs.add(“mongo-db2:27017”)
rs.add(“mongo-db3:27017”)

Khi bạn thêm các nút, bạn sẽ thấy đầu ra là {‘ok’. 1}, cho biết việc bổ sung thành công các nút trong bộ bản sao

Tất cả các khả năng, không có chữa cháy

Sử dụng tập lệnh thủ công và mã tùy chỉnh để di chuyển dữ liệu vào kho rất cồng kềnh. Sự cố thường xuyên, lỗi đường ống và thiếu giám sát luồng dữ liệu khiến việc mở rộng hệ thống như vậy trở thành cơn ác mộng. Nền tảng đường dẫn dữ liệu đáng tin cậy của Hevo cho phép bạn thiết lập các đường dẫn dữ liệu không mã và không cần bảo trì chỉ hoạt động

  • Độ tin cậy ở quy mô. Với Hevo, bạn sẽ có được kiến ​​trúc chịu lỗi đẳng cấp thế giới, có khả năng mở rộng quy mô mà không làm mất dữ liệu và độ trễ thấp.  
  • Giám sát và khả năng quan sát. Theo dõi tình trạng đường ống với việc tiết lộ mọi chỉ số của đường ống và luồng dữ liệu. Đưa khả năng hiển thị theo thời gian thực vào ELT của bạn bằng Cảnh báo và Nhật ký hoạt động
  • Ở trong kiểm soát hoàn toàn. Khi tự động hóa là chưa đủ, Hevo cung cấp tính linh hoạt – chế độ nhập dữ liệu, quá trình nhập và tần suất tải, phân tích cú pháp JSON, bàn làm việc đích, quản lý lược đồ tùy chỉnh, v.v. – để bạn có toàn quyền kiểm soát.     
  • Quản lý lược đồ tự động. Việc sửa lược đồ không phù hợp sau khi dữ liệu được tải vào kho của bạn là một thách thức. Hevo tự động ánh xạ lược đồ nguồn với kho đích để bạn không phải đối mặt với các lỗi lược đồ
  • Hỗ trợ khách hàng 24×7. Với Hevo, bạn không chỉ nhận được một nền tảng, bạn còn có được một đối tác cho các quy trình của mình. Khám phá sự bình yên với “Trò chuyện trực tiếp” 24/24 trong nền tảng. Hơn nữa, bạn nhận được hỗ trợ 24×7 ngay cả trong 14 ngày dùng thử miễn phí đầy đủ tính năng
  • Định giá minh bạch. Nói lời tạm biệt với các mô hình định giá phức tạp và ẩn. Định giá minh bạch của Hevo mang lại khả năng hiển thị đầy đủ cho chi tiêu ELT của bạn. Chọn một kế hoạch dựa trên nhu cầu kinh doanh của bạn. Giữ quyền kiểm soát với cảnh báo chi tiêu và giới hạn tín dụng có thể định cấu hình đối với các đột biến không lường trước được trong luồng dữ liệu.  

Bản sao MongoDB đặt cấu hình Bước 7. Kiểm tra trạng thái

Trạng thái của bộ sao chép có thể được nhìn thấy từ lệnh sau

________số 8_______

Lệnh trên sẽ dẫn đến đầu ra sau

{ 
"set" : "myitsocial", 
"date" : ISODate("2022-02-10T06:15:02Z"), 
"myState" : 1, 
"members" : [ 
   { 
      "_id" : 0, 
      "name" : "192.168.0.29:27017", 
      "health" : 1, 
      "state" : 1, 
      "stateStr" : "PRIMARY", 
      "uptime" : 303165, 
      "optime" : Timestamp(1644516902, 1), 
      "optimeDate" : ISODate("2022-02-10T06:15:02Z"), 
      "self" : true 
   }, 
   { 
      "_id" : 1, 
      "name" : "192.168.0.30:27017", 
      "health" : 1, 
      "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 302985, 
      "optime" : Timestamp(1644516902, 1), 
      "optimeDate" : ISODate("2022-02-10T06:15:02Z"), 
      "lastHeartbeat" : ISODate("2022-02-10T06:15:02Z"), 
      "lastHeartbeatRecv" : ISODate("2014-08-12T06:15:02Z"), 
      "pingMs" : 0, 
   "syncingTo" : "10.20.30.40:27017" 
   },
   { 
      "_id" : 2, 
      "name" : "192.168.0.31:27017", 
      "health" : 1, "state" : 2, 
      "stateStr" : "SECONDARY", 
      "uptime" : 302985, 
      "optime" : Timestamp(1644516902, 1), 
      "optimeDate" : ISODate("2022-02-10T06:15:02Z"), 
      "lastHeartbeat" : ISODate("2022-02-10T06:15:02Z"), 
      "lastHeartbeatRecv" : ISODate("2022-02-10T06:15:02Z"), 
      "pingMs" : 0, 
      "syncingTo" : "192.168.0.29:27017" 
   } 
], 
"ok" : 1 
} 

Phần kết luận

Trong bài viết này, bạn đã học cách thiết lập Cấu hình bộ bản sao MongoDB với sự trợ giúp của quy trình từng bước. MongoDB ngăn chặn việc mất bất kỳ dữ liệu nào thông qua tính năng Sao chép của nó. Sử dụng các bộ Bản sao, MongoDB cung cấp Dự phòng dữ liệu, Tính sẵn sàng cao và Khả năng chịu lỗi bằng cách cho phép người dùng tạo các bản sao dữ liệu bổ sung cho các mục đích chuyên dụng như Khôi phục thảm họa, Sao lưu, Báo cáo, v.v.

Ngoài MongoDB, bạn sẽ sử dụng một số ứng dụng và cơ sở dữ liệu trong doanh nghiệp của mình để Tiếp thị, Kế toán, Bán hàng, Quản lý quan hệ khách hàng, v.v. Để có cái nhìn tổng quan đầy đủ về hiệu quả kinh doanh của bạn, điều quan trọng là phải hợp nhất dữ liệu từ tất cả các nguồn này. Để đạt được điều này, bạn cần chỉ định một phần Băng thông kỹ thuật của mình để Tích hợp dữ liệu từ tất cả các nguồn, Làm sạch & Chuyển đổi dữ liệu và cuối cùng, Tải dữ liệu đó vào Kho dữ liệu đám mây hoặc đích bạn chọn để phân tích thêm về doanh nghiệp. Tất cả những thách thức này có thể được giải quyết một cách thoải mái bằng công cụ ETL dựa trên đám mây như Hevo.  

Ghé thăm trang web của chúng tôi để khám phá Hevo

Hevo, Đường ống dữ liệu không mã có thể truyền dữ liệu liền mạch từ một biển rộng lớn gồm hơn 100 nguồn như MongoDB & MongoDB Atlas đến Kho dữ liệu hoặc Đích bạn chọn để hiển thị trong Công cụ BI. Đây là một dịch vụ đáng tin cậy, hoàn toàn tự động và an toàn không yêu cầu bạn viết bất kỳ mã nào.   

Hevo sẽ tự động hóa quy trình truyền dữ liệu của bạn, do đó cho phép bạn tập trung vào các khía cạnh khác của doanh nghiệp như Phân tích, Quản lý khách hàng, v.v. Hevo cung cấp nhiều loại nguồn – Hơn 150 Nguồn dữ liệu (bao gồm hơn 40 Nguồn miễn phí) – kết nối với hơn 15 Điểm đến. Nó sẽ cung cấp cho bạn trải nghiệm liền mạch và giúp cuộc sống công việc của bạn dễ dàng hơn nhiều

Bạn muốn thử Hevo?

Hãy cho chúng tôi biết về trải nghiệm của bạn khi thiết lập Cấu hình bộ bản sao MongoDB. Chia sẻ suy nghĩ của bạn với chúng tôi trong phần bình luận bên dưới

Những gì được thiết lập trong MongoDB?

$set xuất tài liệu chứa tất cả các trường hiện có từ tài liệu đầu vào và các trường mới được thêm vào . Giai đoạn $set là bí danh cho $addFields. Cả hai giai đoạn đều tương đương với giai đoạn $project chỉ định rõ ràng tất cả các trường hiện có trong tài liệu đầu vào và thêm các trường mới.

Làm cách nào để đặt giá trị trong MongoDB?

Trong MongoDB, toán tử $set được sử dụng để thay thế giá trị của một trường thành giá trị đã chỉ định . Nếu trường đã cho không tồn tại trong tài liệu, toán tử $set sẽ thêm trường vào giá trị đã chỉ định. Tên cơ sở dữ liệu của chúng tôi là 'myinfo' và tên bộ sưu tập của chúng tôi là "nhân viên".

Sự khác biệt giữa đẩy và đặt trong MongoDB là gì?

$push là một toán tử cập nhật trong MongoDB để thêm giá trị vào một mảng. Ngược lại, toán tử $set được sử dụng để cập nhật giá trị của trường hiện có trong tài liệu .

Làm cách nào để đặt thư mục dữ liệu MongoDB?

Phương pháp 2 – Đặt thư mục dữ liệu MongoDB vĩnh viễn . Locate the mongod. tệp conf được tìm thấy trong thư mục install_dir/bin. Thay đổi giá trị của tham số dpPath thành đường dẫn của thư mục dữ liệu đích của bạn. Lưu tệp và khởi động lại Máy chủ MongoDB.