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

moveChunk không thể tham gia TO-shard trong quá trình truyền dữ liệu:không thể chấp nhận các phần mới vì

Vấn đề này không phổ biến nhưng tôi đã thấy nó xảy ra không thường xuyên.

Biện pháp khắc phục hậu quả tốt nhất cần thực hiện ở đây là hạ cấp phân đoạn chính của phân đoạn TO được tham chiếu để xóa các thao tác xóa nền. Chuỗi xóa chỉ tồn tại trên chuỗi chính hiện tại (chúng sẽ được sao chép từ chuỗi chính đó qua oplog khi chúng được xử lý). Khi bạn hạ nó xuống, nó sẽ trở thành thứ yếu, các chuỗi không còn có thể viết được nữa và bạn sẽ có được một chuỗi chính mới mà không bị xóa đang chờ xử lý. Bạn có thể muốn khởi động lại trang chính cũ sau khi bước xuống để xóa các con trỏ cũ, nhưng điều này thường không khẩn cấp.

Khi bạn làm điều này, bạn sẽ để lại một số lượng lớn các tài liệu mồ côi, có thể là địa chỉ bằng cleanUpOrphaned lệnh mà tôi muốn khuyên bạn nên chạy vào những thời điểm lưu lượng truy cập thấp (nếu bạn có những thời điểm như vậy).

Để tham khảo, nếu đây là một vấn đề lặp lại, thì có thể các bầu cử sơ bộ đang gặp khó khăn một chút về tải và để tránh xếp hàng xóa, bạn có thể đặt _waitForDelete tùy chọn cho bộ cân bằng thành true (sai theo mặc định) như sau:

use config
db.settings.update(
   { "_id" : "balancer" },
   { $set : { "_waitForDelete" : true } },
   { upsert : true }
)

Điều này có nghĩa là mỗi lần di chuyển chậm hơn (có lẽ là đáng kể) nhưng sẽ không gây ra tích lũy các lần xóa nền.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb:truy vấn vài hàng đầu tiên trong đó tổng của cột cụ thể lớn hơn hoặc bằng C

  2. Tìm giá trị không chứa số trong SQL

  3. làm thế nào để tuần tự hóa lớp học?

  4. Mongoose chọn các trường phụ

  5. Lập phiên bản đối tượng Java MongoDB