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

Bagaimana cara menskalakan MongoDB?

Jika Anda kehabisan disk, Anda jelas perlu mendapatkan disk yang lebih besar.

Ada beberapa cara untuk memigrasi data Anda, itu sangat tergantung pada jenis up-time yang Anda butuhkan. Langkah pertama tentu saja melibatkan menggabungkan mesin dan membuat volume baru.

Kiat-kiat ini dimulai dari yang paling mudah hingga yang paling sulit.

Dapatkah Anda menonaktifkan database sepenuhnya selama beberapa menit?

Jika demikian, lakukan ini (migrasi dengan salinan):

  1. Pasang EBS baru di server.
  2. Hentikan aplikasi Anda agar tidak terhubung ke Mongo.
  3. Matikan mongod dan tunggu semuanya selesai ditulis (periksa lognya)
  4. Salin semua file data (dan mungkin log) ke volume EBS baru.
  5. Saat penyalinan sedang berlangsung, perbarui skrip awal mongod Anda (atau file konfigurasi) agar mengarah ke volume baru.
  6. Mulai mongod dan periksa koneksi
  7. Mulai ulang aplikasi Anda.

Dapatkah Anda menonaktifkan database hanya dalam beberapa menit?

Jika demikian, lakukan ini (slaving dan beralih):

  1. Mulai instance baru dan pasang EBS baru di server tersebut.
  2. Instal / mulai mongod sebagai --slave menunjuk ke database saat ini. (Anda mungkin perlu memulai ulang arus sebagai --master)
  3. Budak akan melakukan sinkronisasi baru. Setelah slave diperbarui, Anda akan melakukan "switch" (langkah selanjutnya).
  4. Matikan penulisan dari sistem.
  5. Matikan proses mongod asli.
  6. Mulai ulang mongod "baru" sebagai master, bukan slave.
  7. Aktifkan kembali penulisan sistem yang menunjuk ke master baru.

Dilakukan dengan benar, tiga langkah terakhir itu dapat terjadi dalam hitungan menit atau bahkan detik.

Bisakah Anda tidak membayar waktu henti?

Jika demikian, lakukan ini (master-master ):

  1. Mulai instance baru dan pasang EBS baru di server tersebut.
  2. Instal / mulai mongod sebagai master dan slave terhadap database saat ini. (mungkin perlu memulai ulang saat ini sebagai master, waktu henti minimal?)
  3. Komputer baru harus melakukan sinkronisasi baru.
  4. Setelah komputer baru diperbarui, alihkan sistem ke server baru.

Saya tahu sepertinya versi terakhir ini sebenarnya yang terbaik, tetapi bisa sedikit tidak pasti (pada tulisan ini). Alasannya sederhana karena sejujurnya saya memiliki banyak masalah dengan replikasi "Master-Master", terutama jika Anda tidak memulai dengan keduanya aktif.

Jika Anda berencana menggunakan metode ini, saya sangat menyarankan latihan yang lebih kecil dijalankan terlebih dahulu. Jika sesuatu mengebom di sini, Mongo mungkin hanya menghapus semua file data Anda yang akan berdampak menghapus lebih banyak barang.

Jika Anda mendapatkan versi yang bagus dari ini, harap kirimkan perintahnya, saya ingin melihatnya beraksi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoTimeoutException:Tidak Ada Server yang Cocok - Atlas MongoDB

  2. Tidak dapat mengubah dbpath di mongodb melalui mongodb.conf

  3. Mengapa kinerja Mongodb lebih baik di Linux daripada di Windows?

  4. gunakan model luwak.find() untuk mendapatkan semua entri hanya dari 1 bidang

  5. MongoDB:Temukan nilai bidang yang diberikan dokumen dalam objek dengan kunci yang tidak diketahui