Câu trả lời ngắn gọn / tl; dr
Không.
Câu trả lời dài hơn một chút
Không, vì sử dụng shell là hợp lý.
Trả lời
Khi bạn thiết lập một tập hợp bản sao, bạn thường có nhiều hơn một thành viên. Cho đến khi tập hợp bản sao được khởi tạo, không có thành viên nào nắm giữ cấu hình cần thiết. Nút bạn khởi tạo tập hợp bản sao sẽ trở thành nút chính, lưu trữ cấu hình. Bây giờ bạn thêm thành viên bằng cách sử dụng rs.add
lệnh hoặc bằng cách sử dụng rs.reconfig
. Điều xảy ra sau đó là liên hệ chính với thành viên được thêm vào, cấu hình được đồng bộ hóa và một số thứ khác. Cách tốt nhất là các thành viên của tập hợp bản sao thông thường phải bằng nhau để một nút bị lỗi, không có nhược điểm là nút khác trở thành chính và vì vậy nút chính mới có thể giữ nguyên trạng thái chính cho đến khi nó bị hỏng vì lý do nào đó hoặc vì lý do khác.
Vì vậy, nếu bạn bắt đầu một thành viên tập hợp bản sao, nó nên lấy cấu hình từ đâu? Tự quyết định xem nó phải làm gì? Điều đó sẽ không hoạt động tốt trong một cụm. Làm thế nào nó nên khám phá các thành viên khác và cấu hình của họ? Hãy nhớ rằng, các thành viên tập hợp bản sao có thể ở các trung tâm dữ liệu khác nhau. Và nếu có --IamPrimaryDoAsISay
tùy chọn, điều gì sẽ xảy ra nếu có một trang chính khác hiện đang có trong cụm? Và một tình huống có nhiều hơn một thành viên đã bắt đầu với lựa chọn đó phải được xử lý như thế nào? Một bước xuống của máy chủ khác? Có thể chỉ vì bạn đã thay một bộ làm mát? Hay phiên bản mới bắt đầu không nên làm gì khi đã có phiên bản chính? Sau đó, tùy chọn sẽ có ý nghĩa gì ngay từ đầu?
Và tất cả những biến chứng này chỉ để ngăn chặn một lệnh duy nhất từ trình bao?
Lưu ý:Nếu bạn muốn có một máy chủ duy nhất, chỉ cần bắt đầu một phiên bản độc lập (một mongod không có --replSet
tùy chọn). nếu bạn muốn khám phá các khả năng của một tập hợp bản sao, bạn cần nhiều hơn một thành viên.