Chuyển đến nội dung chính

Các kiểm tra thiết yếu để có một cơ sở dữ liệu MongoDB khỏe mạnh

Hướng dẫn về các kiểm tra chủ động thiết yếu trong sao chép, hiệu năng và sao lưu để giữ nền tảng dữ liệu của bạn vững chắc và đáng tin cậy.
Đã cập nhật 4 thg 5, 2026  · 7 phút đọc

Duy trì một cơ sở dữ liệu MongoDB khỏe mạnh là điều cốt yếu để đảm bảo sự ổn định của ứng dụng, hiệu năng tối ưu và tính toàn vẹn dữ liệu. Một cụm "khỏe mạnh" là cụm có thể phục vụ thao tác đọc/ghi một cách tin cậy, bảo vệ dữ liệu khỏi thất thoát và vận hành trong các ngưỡng mong đợi. Các kiểm tra định kỳ và giám sát chủ động giúp phát hiện và xử lý vấn đề tiềm ẩn trước khi chúng ảnh hưởng đến dịch vụ của bạn.

Chúng ta có thể phân loại tình trạng sức khỏe của cụm MongoDB theo ba lĩnh vực cơ bản:

  • Sao chép (Replication)
  • Hiệu năng
  • Sao lưu

Bằng cách thường xuyên đánh giá các lĩnh vực này, bạn đảm bảo nền tảng dữ liệu luôn vững chắc và đáng tin cậy. Bên cạnh đó, các công cụ quản lý hiện đại như MongoDB Atlas và MongoDB Ops Manager cung cấp giám sát tích hợp kèm cảnh báo và khuyến nghị để bạn chủ động ứng phó với rủi ro. Thiết lập cảnh báo sẽ giúp bạn không bỏ sót vấn đề. Bạn có thể tìm hướng dẫn và ví dụ về cách thiết lập cảnh báo trong tài liệu chính thức của MongoDB.

Hãy cùng lần lượt đi qua các lĩnh vực này.

Trạng thái sao chép

Sao chép là xương sống của tính sẵn sàng cao trong MongoDB. Một bộ bản sao (replica set) khỏe mạnh đảm bảo dư thừa dữ liệu và khả năng chuyển đổi dự phòng. Hãy xem xét ba chỉ báo chính để đảm bảo việc sao chép diễn ra hiệu quả giữa các máy chủ là thành viên của bộ bản sao.

Tổng quan và chi tiết về trạng thái sao chép

Bạn có thể lấy trạng thái đầy đủ của một bộ bản sao bằng cách chạy lệnh rs.status() trong shell của MongoDB. Lệnh này cung cấp cái nhìn toàn diện về trạng thái hiện tại của bộ bản sao. Hãy kiểm tra kết quả để xác nhận tất cả thành viên đều khỏe mạnh (tức ở trạng thái PRIMARY hoặc SECONDARY) và vận hành như mong đợi.

Từ giao diện Atlas, bạn cũng có thể truy cập thông tin tương tự như lệnh trên. Tại trang "Clusters", bấm vào tên cụm cụ thể. Hành động này sẽ đưa bạn đến thẻ "Overview", nơi hiển thị tổng quan về các nút. Nếu có sự cố nghiêm trọng, bạn sẽ thấy tại đây.

Thời gian sao chép

Tính bền vững trong một cụm sao chép phụ thuộc vào việc nhân bản dữ liệu tới đa số nút. Vì thế, một cụm khỏe mạnh phải sao chép nhanh. Nếu không, các thao tác với write concern majority sẽ có độ trễ cao hơn.

Chỉ báo hàng đầu cho đặc tính này là độ trễ sao chép (replication lag). Đây là độ trễ giữa một thao tác trên nút primary và thời điểm thao tác đó được áp dụng trên một nút secondary. Độ trễ thấp và ổn định là dấu hiệu mạnh mẽ cho thấy hệ thống khỏe mạnh. Ngược lại, sao chép chậm có thể là dấu hiệu của cấu hình kết nối giữa các nút chưa tốt.

Cách dễ nhất để quan sát độ trễ sao chép là xem biểu đồ "Replication Lag" trong thẻ "Cluster Metrics". Dưới đây là ví dụ biểu đồ cho một cụm khỏe mạnh. Lưu ý chỉ số này không áp dụng cho nút PRIMARY của cụm, nút ở giữa có ký hiệu "P".

Biểu đồ hiển thị chỉ số Replication Lag cho một cụm MongoDB khỏe mạnh, cho thấy độ trễ thấp và ổn định trên các nút secondary.

Cửa sổ Oplog sao chép

Sao chép được triển khai thông qua một bộ sưu tập đặc biệt gọi là "oplog". Oplog (nhật ký thao tác) là một capped collection ghi lại mọi thao tác làm thay đổi dữ liệu. "Replication Oplog Window" đề cập đến khoảng thời gian xấp xỉ còn lại trong oplog sao chép dành cho nguồn đồng bộ trước khi các thao tác hiện tại bắt đầu bị ghi đè. Nói cách khác, Replication Oplog Window là chênh lệch thời gian giữa dấu thời gian mới nhất và cũ nhất trong oplog. Giá trị cửa sổ oplog đủ lớn là cực kỳ quan trọng để cho phép các nút secondary bắt kịp sau một lần gián đoạn và tránh phải đồng bộ lại toàn bộ dữ liệu.

Nếu một nút secondary ngoại tuyến lâu hơn giá trị Replication Oplog Window hiện có, bạn sẽ phải đồng bộ lại nút secondary từ đầu. Nói cách khác, bạn muốn giá trị Replication Oplog Window dài hơn thời gian tối đa mà một bản sao có thể không sẵn sàng. Lưu ý giá trị này nhạy cảm với các đợt ghi bùng nổ.

Để tăng Replication Oplog Window, bạn có thể tăng kích thước của bộ sưu tập oplog.

Biểu đồ Cluster Metrics của MongoDB Atlas hiển thị Replication Oplog Window, cho thấy thời gian còn lại trong oplog dành cho sao chép.

Trạng thái hiệu năng

Hiệu năng tác động trực tiếp đến trải nghiệm người dùng của ứng dụng và chi phí vận hành cụm. Một cụm khỏe mạnh là cụm vận hành hiệu quả tương ứng với khối lượng công việc của nó.

Một lần nữa, hãy xem các khía cạnh hiệu năng quan trọng cần theo dõi.

Số lượng thao tác hiện tại như kỳ vọng

Điều đầu tiên tôi muốn kiểm tra là cụm có nhận được số lượng thao tác như kỳ vọng hay không. Ở đây, "kỳ vọng" giả định bạn biết giá trị đó. Nếu không, việc xem xu hướng truy vấn trong giờ, ngày, tuần gần đây... có thể giúp bạn hiểu ngưỡng bình thường và phát hiện đỉnh hoặc bất thường. Một đỉnh tải hàng tuần cố định tại một thời điểm có thể đòi hỏi nâng cấp quy mô cụm từ trước.

Theo dõi tốc độ thao tác (đọc, ghi, lệnh). Mọi biến động tăng/giảm đột ngột ngoài dự kiến có thể chỉ ra vấn đề, chẳng hạn sự cố ứng dụng, nút thắt tài nguyên hoặc mẫu truy vấn kém hiệu quả. Để hỗ trợ, hãy đặt cảnh báo trên số lượng thao tác, có thể quan sát trong phần "Opcounters" của số liệu cụm.

Ngoài ra, thông tin theo thời gian thực về tốc độ thao tác hiện tại có trong thẻ "Real Time".

Giao diện Real-Time Tab trong MongoDB Atlas, hiển thị biểu đồ số lượng thao tác hiện tại (đọc, ghi và lệnh) để theo dõi hoạt động và tải công việc của cụm theo thời gian thực.

Hiểu rõ hơn về truy vấn chậm

Những truy vấn mất thời gian thực thi dài bất thường được gọi là truy vấn chậm. Điều này thường cho thấy cần lập chỉ mục hoặc tối ưu hóa truy vấn. Bên cạnh đó, việc theo dõi các thao tác yêu cầu sắp xếp trong bộ nhớ là rất quan trọng, vì chúng có thể tiêu tốn nhiều tài nguyên máy chủ và làm suy giảm hiệu năng.

Thẻ "Query Insights" cho phép bạn xem truy vấn, lọc theo tiêu chí và thực hiện hành động bổ sung. Bạn nên dùng trang này để xác định truy vấn cần tối ưu, truy vấn nên chạy trên nút khác hoặc vào thời điểm khác.

Thẻ Query Insights trong MongoDB Atlas, dùng để xem và phân tích truy vấn chậm nhằm xác định nhu cầu lập chỉ mục và cơ hội tối ưu hóa.

Thiếu chỉ mục

Nguyên nhân phổ biến nhất của truy vấn chậm trong MongoDB là thiếu các chỉ mục phù hợp. Khi thiếu chỉ mục, MongoDB có thể thực hiện quét bộ sưu tập (kiểm tra mọi tài liệu trong bộ sưu tập), nhưng đây là thao tác rất kém hiệu quả, đặc biệt trên các bộ sưu tập lớn. Việc xác định và tạo các chỉ mục còn thiếu là điều thiết yếu để duy trì hiệu năng truy vấn.

Thẻ "Performance Advisor" cung cấp một số công cụ hữu ích để tối ưu hiệu năng. Bên dưới là trang "Create Indexes".

Ảnh chụp trang 'Create Indexes' trong Performance Advisor của MongoDB Atlas, cung cấp khuyến nghị tạo chỉ mục mới để tối ưu truy vấn chậm.

Trạng thái sao lưu

Sao chép là tài sản quý giá để giảm thiểu mất mát dữ liệu khi tài nguyên (như đĩa của máy chủ) bị mất hoặc hỏng. Tính sẵn sàng cao nội tại của cụm sẽ bao phủ hầu hết lỗi phần cứng. Tuy nhiên, một chiến lược sao lưu đáng tin cậy vẫn là tuyến phòng thủ cuối cùng chống mất dữ liệu. Một cụm khỏe mạnh có hệ thống sao lưu và khôi phục đã được kiểm thử và vận hành.

Giống như các phần khác, hãy xem một số điểm cần lưu ý cho chiến lược sao lưu của bạn.

Xác định mục tiêu khôi phục

Xác định Recovery Point Objective (RPO) — lượng mất dữ liệu tối đa có thể chấp nhận — và Recovery Time Objective (RTO) — thời gian tối đa cho phép để khôi phục dịch vụ. Các mục tiêu này quyết định tần suất và phương pháp sao lưu cần thiết.

Những điều cơ bản về sao lưu

Có nhiều công cụ để sao lưu dữ liệu với MongoDB. Bắt đầu bằng việc dump dữ liệu đơn giản với mongodump. Sau đó, tiến tới sử dụng các công cụ quản lý MongoDB để thực hiện snapshot và lưu giữ các thao tác riêng lẻ (oplog) nhằm tái tạo ảnh chụp ở bất kỳ thời điểm nào. MongoDB Atlas tích hợp các công cụ đó cho cụm được lưu trữ, trong khi MongoDB OpsManager cung cấp chức năng tương tự cho cụm tại chỗ.

Giữ nhiều phiên bản dữ liệu làm bản sao lưu thường tốn nhiều dung lượng hơn bản cơ sở dữ liệu gốc. Bạn cần hiểu chi phí để phù hợp với nhu cầu. Bài toán này sẽ đưa ra lịch biểu thể hiện số lượng snapshot cần tạo và tần suất tương ứng.

Giao diện MongoDB Atlas để quản lý và xem lịch sao lưu đám mây, hiển thị tần suất snapshot, chính sách lưu giữ và tùy chọn khôi phục.

Theo dõi, truy cập và khôi phục bản sao lưu

Nếu bạn dùng MongoDB Atlas, hãy xác minh quy trình sao lưu được quản lý đang chạy thành công, chụp snapshot đều đặn và các chính sách lưu giữ phù hợp với RPO của bạn.

Thực hiện khôi phục: Cách duy nhất để thực sự xác nhận bản sao lưu hợp lệ là thường xuyên kiểm thử khôi phục. Hành động này xác thực toàn bộ quy trình sao lưu–khôi phục, đảm bảo dữ liệu có thể phục hồi khi khẩn cấp.

Giao diện MongoDB Atlas hiển thị danh sách các snapshot sao lưu gần đây, gồm thời gian, kích thước và trạng thái snapshot, xác nhận quy trình sao lưu hoạt động thành công.

Kết luận

Một cụm MongoDB khỏe mạnh được đặc trưng bởi:

  • Trạng thái sao chép tối ưu
  • Hiệu năng hiệu quả
  • Sao lưu đáng tin cậy

Giám sát chủ động trong ba lĩnh vực này, phân tích hiệu năng truy vấn và kiểm thử khôi phục sẽ đảm bảo sự ổn định và bền vững lâu dài cho triển khai MongoDB của bạn.


Daniel Coupal's photo
Author
Daniel Coupal

Chuyên gia Vận động Nhà phát triển Cấp cao @ MongoDB

Câu hỏi thường gặp

Bước đầu tiên quan trọng nhất để bảo mật một cụm MongoDB là gì?

Bảo mật là yếu tố tuyệt đối quan trọng. Bật xác thực và thiết lập kiểm soát truy cập dựa trên vai trò (RBAC) là bước đầu tiên thiết yếu để đảm bảo chỉ người dùng và ứng dụng được ủy quyền mới có thể truy cập và sửa đổi dữ liệu. Bảo mật liên lạc giữa các nút trong cụm bằng SSL cũng là điều cần thiết.

Giới hạn trên chấp nhận được cho độ trễ sao chép trong một cụm sản xuất khỏe mạnh là bao nhiêu?

Tùy theo khối lượng công việc và cấu trúc, độ trễ sao chép lý tưởng nên ở mức khoảng một giây. Bất kỳ độ trễ nào vượt quá 10 giây một cách thường xuyên nhìn chung được xem là vấn đề có thể làm suy giảm tính sẵn sàng cao.

Tôi nên xác định kích thước tối ưu cho Replication Oplog Window như thế nào?

Thực tiễn phổ biến là đặt kích thước oplog đủ để giữ ít nhất 24 đến 72 giờ thao tác. Tuy nhiên, nhiều người dùng thích có dữ liệu cho một tuần. Như vậy có đủ đệm thời gian để các nút secondary bắt kịp sau hầu hết các cửa sổ bảo trì hoặc sự cố ngừng hoạt động mà không cần đồng bộ lại toàn bộ. Cách khác để nhìn nhận là bao nhiêu ngày có thể trôi qua trước khi đội ngũ của bạn khởi động lại một cụm khỏe mạnh.

Ngoài thiếu chỉ mục, nguyên nhân phổ biến nào khác gây truy vấn chậm đòi hỏi xem xét hiệu năng sâu hơn?

Thiết kế schema kém hiệu quả có thể gây ra vấn đề hiệu năng nghiêm trọng, đặc biệt là các truy vấn dẫn tới việc đọc tài liệu quá lớn không cần thiết hoặc các thao tác ghi không tối ưu.

Bài viết đề cập rằng chiến lược sao lưu đáng tin cậy là biện pháp bảo vệ cuối cùng. Tần suất nên chạy kiểm thử khôi phục toàn phần là bao lâu một lần?

Nên thực hiện kiểm thử khôi phục toàn phần ít nhất mỗi quý một lần hoặc sau bất kỳ thay đổi cấu hình quan trọng nào đối với cụm hoặc hệ thống sao lưu. Điều này xác thực toàn bộ quy trình khôi phục để đảm bảo dữ liệu thực sự có thể phục hồi khi cần.

Chủ đề

Học MongoDB cùng DataCamp

Courses

Nhập môn MongoDB với Python

3 giờ
23.9K
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow
Có liên quan

blogs

Claude Opus 4.6: Tính năng, điểm chuẩn, các bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu bảng xếp hạng về mã hóa theo hướng tác nhân và suy luận phức tạp. Thêm nữa, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêmXem thêm