MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để khởi tạo bộ sao chép mongodb mà không cần gọi rs.initiate ()?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nguy cơ của việc xây dựng chỉ mục trên MongoDB

  2. Trước khi $ unwind, hãy kiểm tra xem tài liệu con có trống không

  3. MongoDB cung cấp một hệ thống xác thực cơ bản. Nó có thay đổi trong phiên bản 2.2.3 không?

  4. Có thể dự án $ của mongodb trả về một mảng không?

  5. Chuẩn bị máy chủ MongoDB để sản xuất