Skip to main content
Mỗi bản phát hành mới của Server CE/Server Pro sẽ ghi rõ mọi thay đổi về phiên bản MongoDB được hỗ trợ trong ghi chú phát hành của nó.

Tôi có nên cập nhật MongoDB không?

Bạn chỉ nên cân nhắc cập nhật phiên bản MongoDB nếu bạn đang lên kế hoạch nâng cấp phiên bản Server CE/Server Pro của mình. Nếu bạn đang chạy một phiên bản MongoDB mới hơn phiên bản được khuyến nghị cho phiên bản hiện tại (hoặc phiên bản mục tiêu) của bạn, thì không cần thực hiện bất kỳ thay đổi nào.
Bạn không bao giờ nên hạ cấp phiên bản MongoDB của mình.
Nếu bạn gặp một vấn đề cụ thể mà bạn cho rằng có thể liên quan đến phiên bản MongoDB hiện tại, hãy thoải mái tạo issue nếu bạn là người dùng Server CE, hoặc liên hệ với bộ phận hỗ trợ của Overleaf nếu bạn là người dùng Server Pro.

Kiểm tra phiên bản MongoDB của bạn

Mở shell mongo sẽ in ra phiên bản hiện tại ngay lập tức. Người dùng Overleaf Toolkit:
Người dùng Docker Compose:

Quy trình cập nhật

Việc cập nhật phiên bản MongoDB trong quá trình nâng cấp phiên bản Server CE/Server Pro được thực hiện như sau:
  1. Quyết định phiên bản Server CE/Server Pro mà bạn dự định nâng cấp lên.
  2. Tìm phiên bản MongoDB được khuyến nghị cho bản phát hành Overleaf Server CE/Server Pro cụ thể đó.
  3. Làm theo hướng dẫn để nâng cấp MongoDB lên phiên bản mục tiêu.
  4. Nâng cấp phiên bản image Server CE/Server Pro và khởi động lại phiên bản.
Khuyến nghị của chúng tôi là luôn nâng cấp Server CE/Server Pro lên phiên bản mới nhất hiện có, vì phiên bản đó luôn được đảm bảo hỗ trợ (chỉ dành cho người dùng Server Pro).
Khi nâng cấp Server CE/Pro, chúng tôi khuyến nghị nâng cấp lên bản phát hành mới nhất của phiên bản chính (major) đang triển khai trước khi nâng cấp lên bản phát hành mới nhất của phiên bản chính tiếp theo. Nếu bản triển khai của bạn chậm hơn bản mới nhất từ hai phiên bản chính trở lên, bạn sẽ phải thực hiện nâng cấp qua nhiều bước.Ví dụ, nếu bạn đang chạy 3.5.10, bạn sẽ cần nâng cấp lên 3.5.13 -> Thực hiện di chuyển Full Project History -> 4.2.9 -> 5.5.4.Bạn không bao giờ nên bỏ qua các phiên bản chính (3.5.10 -> 5.5.4). Nếu bạn đang dùng Toolkit và chậm hơn bản mới nhất từ hai phiên bản chính trở lên, bạn không được dùng script bin/upgrade vì bạn sẽ cần thực hiện nâng cấp thủ công qua nhiều bước.
Điều quan trọng là phải đảm bảo bạn tạo một bản sao lưu nhất quán trước mỗi lần nâng cấp phiên bản chính để có thể khôi phục lại khi cần.

Thông tin hỗ trợ phiên bản

Trong trường hợp bạn quyết định dùng một phiên bản cũ hơn, bảng này cho thấy phiên bản MongoDB được khuyến nghị cho các bản phát hành Server CE/Server Pro trước đây, nhưng bạn không bao giờ nên hạ cấp phiên bản MongoDB của mình.
Server CE/Server ProPhiên bản MongoDBPhiên bản tương thích tính năng tối thiểuPhiên bản tối đa được trình điều khiển Node.js hỗ trợ
2.0.x3.4--
2.1.x đến 2.4.x3.6--
>=2.5.04.0--
>=3.1.04.2--
>=3.2.04.4--
>=4.2.05.0--
>=5.1.06.0--
>=5.3.16.05.08.0
>=5.5.06.06.08.0
6.0.08.08.08.0
Phiên bản tương thích tính năng tối thiểu ở trên dựa trên phiên bản MongoDB tương ứng được khuyến nghị sử dụng với phiên bản Overleaf được nêu. Nếu bạn dự định sử dụng phiên bản cao hơn, MongoDB sẽ có yêu cầu tối thiểu riêng.
Bạn có thể xem bảng tương thích chỉ rõ các phiên bản trình điều khiển MongoDB Node.js được hỗ trợ để dùng với MongoDB tại đây. Bạn có thể xem trạng thái hết vòng đời (end-of-life) của từng phiên bản MongoDB tại đây.

Nâng cấp MongoDB

MongoDB yêu cầu nâng cấp từng bước. Điều đó có nghĩa là bạn không thể đi thẳng từ, chẳng hạn, 4.0 lên 5.0. Trước tiên bạn cần cập nhật từ 4.2 lên 4.4, rồi sau đó mới lên 5.0.
MongoDB dùng số chẵn cho các phiên bản ổn định của họ.

Hướng dẫn cập nhật khi chạy MongoDB bên ngoài Docker

Dưới đây là các liên kết đến hướng dẫn cập nhật từ mongodb.com khi nâng cấp MongoDB.
Hướng dẫn cho 5.0 trở lên hướng đến cài đặt dạng replica set thay vì standalone. Vì Server Pro/CE 4.0.1+ sử dụng transaction, MongoDB cần được chạy dưới dạng replica set.
Tài liệu cho MongoDB 3.2 đến 4.2 hiện có tại https://www.mongodb.com/docs/legacy/
Hướng dẫn cơ bản Trong hầu hết các trường hợp, việc cập nhật đòi hỏi phải thiết lập một cờ tương thích trước khi thực sự cập nhật phiên bản mongo. Các bước như sau:
  1. Đặt cờ tương thích như mô tả trong ghi chú phát hành của MongoDB (xem các ví dụ bên dưới).
  2. Sau đó cập nhật image mongo:
    1. Người dùng Toolkit Cập nhật MONGO_VERSION, ví dụ: MONGO_VERSION=6.0
    2. Người dùng Docker Compose Cập nhật phiên bản của tag image mongo,
      ví dụ: services -> mongo -> image: mongo:6.0;
Ví dụ: Nâng cấp MongoDB từ 5.0 lên 6.0 Hãy bắt đầu bằng việc đảm bảo rằng chúng ta đang chạy MongoDB 6.0: Người dùng Overleaf Toolkit:
Người dùng Docker Compose:
Theo hướng dẫn nâng cấp, yêu cầu duy nhất là featureCompatibilityVersion phải được đặt thành 5.0. Chúng ta thực hiện điều này bằng cách mở một shell MongoDB và chạy lệnh được chỉ định: Người dùng Overleaf Toolkit:
Người dùng Docker Compose có thể chạy docker compose exec mongo mongosh để mở shell và chạy các lệnh tương tự như người dùng Toolkit.
Người dùng Overleaf Toolkit: Sau đó, chúng ta sẽ dừng các phiên bản Server CE/Server Pro và MongoDB bằng lệnh bin/stop, đặt MONGO_VERSION=6.0 trong config/overleaf.rc, rồi khởi động lại dịch vụ mongo bằng bin/up mongo) để xác nhận việc cập nhật diễn ra suôn sẻ. Cuối cùng, chúng ta sẽ cập nhật phiên bản image Server CE/Server Pro lên phiên bản mục tiêu và tạo lại tất cả dịch vụ bằng lệnh bin/up -d. Người dùng Docker Compose: Sau đó, chúng ta sẽ dừng các phiên bản Server CE/Server Pro và MongoDB bằng lệnh docker compose stop, cập nhật tệp docker-compose.yml để dùng image: mongo:6.0, rồi khởi động lại dịch vụ mongo bằng lệnh docker compose up mongo để xác nhận việc cập nhật diễn ra suôn sẻ. Cuối cùng, chúng ta sẽ cập nhật phiên bản image Server CE/Server Pro lên phiên bản mục tiêu và tạo lại tất cả dịch vụ bằng lệnh docker compose up. Bắt đầu bằng việc đảm bảo rằng bạn đang chạy MongoDB 6.0 bằng các lệnh mongod --version ở trên. Theo hướng dẫn nâng cấp, yêu cầu duy nhất là featureCompatibilityVersion phải được đặt thành 6.0. Chúng ta thực hiện điều này bằng cách mở một shell MongoDB và chạy lệnh db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }). Người dùng Overleaf Toolkit:
Sau đó, chúng ta sẽ dừng các phiên bản Server CE/Server Pro và MongoDB bằng lệnh bin/stop, đặt MONGO_VERSION=7.0 trong config/overleaf.rc, rồi khởi động lại dịch vụ mongo bằng bin/up mongo) để xác nhận việc cập nhật diễn ra suôn sẻ. Cuối cùng, chúng ta sẽ cập nhật phiên bản image Server CE/Server Pro lên phiên bản mục tiêu và tạo lại tất cả dịch vụ bằng lệnh bin/up -d. Bắt đầu bằng việc đảm bảo rằng bạn đang chạy MongoDB 7.0 bằng các lệnh mongod --version ở trên. Theo hướng dẫn nâng cấp, yêu cầu duy nhất là featureCompatibilityVersion phải được đặt thành 7.0. Chúng ta thực hiện điều này bằng cách mở một shell MongoDB và chạy lệnh db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Lưu ý rằng lệnh này giờ đây yêu cầu thêm tham số confirm: true.
Sau đó, chúng ta sẽ dừng các phiên bản Server CE/Server Pro và MongoDB bằng lệnh bin/stop, đặt MONGO_VERSION=8.0 trong config/overleaf.rc, rồi khởi động lại dịch vụ mongo bằng bin/up mongo) để xác nhận việc cập nhật diễn ra suôn sẻ. Cuối cùng, chúng ta sẽ cập nhật phiên bản image Server CE/Server Pro lên phiên bản mục tiêu và tạo lại tất cả dịch vụ bằng lệnh bin/up -d.

Các lệnh tương đương cho người dùng docker compose

Đối với người dùng docker compose, các lệnh tương đương là:
  • docker compose exec mongo mongod --version để hiển thị phiên bản mongo
  • docker compose exec mongo mongosh để mở shell mongo cho các lệnh quản trị
  • Lệnh docker compose stop để dừng máy chủ
  • Chỉnh sửa tệp docker-compose.yml để dùng image: mongo:6.0 nhằm nâng cấp phiên bản mongo
  • docker compose up mongo để khởi động lại dịch vụ mongo và xác nhận việc cập nhật diễn ra suôn sẻ
  • Chỉnh sửa tệp docker-compose.yml để dùng image: sharelatex:VERSION nhằm nâng cấp phiên bản image
  • docker compose up để tạo lại tất cả dịch vụ.

Tạo role tùy chỉnh

Trong phiên bản 5.5.1, chúng tôi đã thêm một bước kiểm tra khi khởi động để xác minh phiên bản tương thích tính năng của MongoDB. Nếu cơ sở dữ liệu MongoDB của bạn sử dụng xác thực (ví dụ: xác thực cơ bản), container sharelatex có thể không khởi động được và hiển thị lỗi quyền “not authorized on admin to execute command”. Để khắc phục, bạn có thể tạo một role mới trong MongoDB và gán nó cho tài khoản người dùng được dùng để truy cập cơ sở dữ liệu theo hướng dẫn bên dưới, hoặc đặt ALLOW_MONGO_ADMIN_CHECK_FAILURES=true để cho phép bước kiểm tra thất bại mà không ngăn bản triển khai khởi động.
Role mới này chỉ cấp quyền đọc các tham số máy chủ MongoDB trên toàn cluster và có thể được tái sử dụng cho mục đích giám sát,
Lần sửa đổi cuối 5 tháng 10, 2026