MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

moveChunk gagal menggunakan TO-shard dalam transfer data:tidak dapat menerima potongan baru karena

Tidak umum untuk melihat masalah seperti ini, tetapi saya telah melihatnya terjadi secara sporadis.

Tindakan perbaikan terbaik yang harus dilakukan di sini adalah menghentikan bagian utama dari pecahan TO yang direferensikan yang akan menghapus penghapusan latar belakang. Utas penghapusan hanya ada di primer saat ini (mereka akan direplikasi dari primer itu melalui oplog saat mereka diproses). Saat Anda menurunkannya, itu menjadi sekunder, utas tidak bisa lagi menulis dan Anda mendapatkan primer baru tanpa penghapusan yang tertunda. Anda mungkin ingin memulai ulang primer sebelumnya setelah turun untuk menghapus kursor lama, tetapi biasanya tidak mendesak.

Setelah Anda melakukan ini, Anda akan ditinggalkan dengan sejumlah besar dokumen yatim piatu, yang dapat dialamatkan dengan cleanUpOrphaned perintah yang saya sarankan berjalan pada waktu lalu lintas rendah (jika Anda memiliki waktu seperti itu).

Untuk referensi, jika ini adalah masalah yang berulang, maka kemungkinan pendahuluan sedikit kesulitan dalam hal memuat, dan untuk menghindari antrian penghapusan, Anda dapat mengatur _waitForDelete pilihan untuk penyeimbang menjadi benar (salah secara default) sebagai berikut:

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

Ini berarti bahwa setiap migrasi lebih lambat (mungkin secara signifikan) tetapi tidak akan menyebabkan akumulasi penghapusan latar belakang.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. batas mongodb dalam dokumen yang disematkan

  2. MongoDb dimatikan dengan Kode 100

  3. Spring boot mencoba terhubung ke mongo saat menambahkan ketergantungan maven mongo-Java-driver

  4. Hapus duplikat di MongoDB

  5. Kueri mengembalikan hasil yang lebih dari yang diharapkan