Tôi không biết tại sao, hôm qua dịch vụ vẫn ổn và đột nhiên tôi không thể khởi động MongoDB.
[root@purr ~]# dịch vụ mongod bắt đầu
Bắt đầu mongod: Thứ năm 29 tháng 8 23:26:07.550
Thu Aug 29 23:26:07.550 cảnh báo: máy chủ 32-bit không bật ghi nhật ký theo mặc định. Vui lòng sử dụng --journal nếu bạn muốn độ bền.
Thu Aug 29 23:26:07.550
sắp phân nhánh tiến trình con, chờ cho đến khi máy chủ sẵn sàng kết nối.
quá trình phân nhánh: 5078
tất cả đầu ra sẽ chuyển đến: /var/log/mongo/mongod.log
LỖI: tiến trình con không thành công, thoát với lỗi số 100
[THẤT BẠI]
Tôi đã xem /var/log/mongo/mongod.log và những điều sau:
***** MÁY CHỦ ĐÃ KHỞI ĐỘNG LẠI *****
Thu Aug 29 23:29:05.874 [initandlisten] MongoDB đang khởi động: pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Thứ 5 ngày 29 tháng 8 23:29:05.874 [initandlist]
Thứ năm, 29 tháng 8, 23:29:05.874 [initandlisten] ** LƯU Ý: Đây là tệp nhị phân MongoDB 32 bit.
Thu Aug 29 23:29:05.874 [initandlisten] ** Bản dựng 32 bit bị giới hạn ở mức dữ liệu dưới 2GB (hoặc ít hơn với --journal).
Thu Aug 29 23:29:05.874 [initandlisten] ** Lưu ý rằng mặc định ghi nhật ký sẽ tắt đối với 32 bit và hiện đang tắt.
Thứ năm 29 tháng 8 23:29:05.874 [initandlisten] ** Xem http://dochub.mongodb.org/core/32bit
Thứ 5 ngày 29 tháng 8 23:29:05.874 [initandlist]
Thu Aug 29 23:29:05.874 [initandlisten] ** CẢNH BÁO: Bạn đang chạy trong OpenVZ. Điều này được biết là bị hỏng!!!
Thứ 5 ngày 29 tháng 8 23:29:05.875 [initandlist]
Thu Aug 29 23:29:05.875 [initandlisten] phiên bản db v2.4.6
Thu 29 tháng 8 23:29:05.875 [initandlisten] phiên bản git: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] thông tin xây dựng: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Thứ sáu 15 tháng 2 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] bộ phân bổ: hệ thống
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] tùy chọn: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
*************
Phát hiện tắt máy không sạch.
Vui lòng truy cập http://dochub.mongodb.org/core/repair để biết hướng dẫn khôi phục.
*************
Thu Aug 29 23:29:05.875 [initandlisten] ngoại lệ trong initAndListen: 12596 tệp khóa cũ, đang kết thúc
Thu Aug 29 23:29:05.875 dbexit:
Thứ năm, 29 tháng 8, 23:29:05.875 [initandlisten] tắt máy: sắp đóng các ổ cắm lắng nghe...
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] tắt máy: sẽ xóa diaglog...
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] tắt máy: sắp đóng các ổ cắm...
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] tắt máy: đang chờ bộ phân bổ trước fs...
Thứ năm 29 tháng 8 23:29:05.875 [initandlisten] tắt máy: đóng tất cả các tệp...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() đã hoàn tất
Thu Aug 29 23:29:05.875 dbexit: thực sự thú vị bây giờ
Tôi nên khắc phục điều này như thế nào, khởi động lại máy chủ, dịch vụ dường như không hoạt động.
Xảy ra lỗi sau khi sửa
Không biết phải làm gì với lỗi không thể mở tệp /var/lib/mongo/địa phương.ns chấm dứt
***** MÁY CHỦ ĐÃ KHỞI ĐỘNG LẠI *****
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlisten] MongoDB bắt đầu: pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit Host=purr.ipetfindr.com
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlist]
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.041 [initandlisten] ** LƯU Ý: Đây là tệp nhị phân MongoDB 32 bit.
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.041 [initandlisten] ** Bản dựng 32 bit bị giới hạn ở mức dữ liệu dưới 2GB (hoặc ít hơn với --journal).
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.041 [initandlisten] ** Lưu ý rằng mặc định ghi nhật ký sẽ tắt đối với 32 bit và hiện đang tắt.
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlisten] ** Xem http://dochub.mongodb.org/core/32bit
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlist]
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.041 [initandlisten] ** CẢNH BÁO: Bạn đang chạy trong OpenVZ. Điều này được biết là bị hỏng!!!
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlist]
Thứ sáu 30 tháng 8 04:49:43.041 [initandlisten] phiên bản db v2.4.6
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlisten] phiên bản git: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thứ sáu 30 tháng 8 04:49:43.041 [initandlisten] thông tin xây dựng: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Thứ sáu 15 tháng 2 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thứ sáu ngày 30 tháng 8 04:49:43.041 [initandlist] cấp phát: hệ thống
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.041 [initandlisten] tùy chọn: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.058 [initandlisten] không thể mở /var/lib/mongo/local.ns errno:13 Quyền bị từ chối
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.058 [initandlisten] lỗi không thể mở tệp /var/lib/mongo/local.ns đang kết thúc
Thứ sáu ngày 30 tháng 8 04:49:43.059 dbexit:
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: sắp đóng các ổ cắm đang lắng nghe...
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: sẽ xóa diaglog...
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: sắp đóng các ổ cắm...
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: đang chờ bộ phân bổ trước fs...
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: đóng tất cả các tệp...
Thứ sáu 30 tháng 8 04:49:43.059 [initandlisten] closeAllFiles() đã hoàn tất
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 [initandlisten] tắt máy: xóa khóa fs...
Thứ sáu, ngày 30 tháng 8 lúc 04:49:43.059 dbexit: thực sự thú vị bây giờ
Sau khi chạy sửa chữa, tôi có thể khởi động bộ xử lý mongod với quyền root, điều đó có nghĩa là dịch vụ mongod bắt đầu
sẽ không hoạt động. Để khắc phục điều này, tôi cần đảm bảo rằng tất cả các tệp trong thư mục cơ sở dữ liệu đều thuộc sở hữu của mongod và được nhóm lại. Tôi đã làm điều này thông qua:
- Kiểm tra quyền truy cập tệp trong thư mục cơ sở dữ liệu
- Lưu ý rằng bạn cần phải ở trong thư mục dbpath của tôi
/var/lib/mongo
tôi đã đicd/var/lib
- tôi đã chạy
ls -l mongo
- Điều này chỉ ra rằng cơ sở dữ liệu được sở hữu bởi root, điều này là sai. Tôi đã chạy lệnh sau để giải quyết vấn đề:
chown -R mongod: mongod mongo
. Điều này thay đổi chủ sở hữu và nhóm của mọi tệp trong thư mục thành mongod. (Nếu sử dụng gói mongodb,chown -R mongodb:mongodb mongodb
)
Tôi hy vọng điều này sẽ giúp người khác trong tương lai.
Tôi là một lập trình viên xuất sắc, rất giỏi!