Sampai sekarang saya belum menentukan direktori data MongoDB dan hanya memiliki satu partisi primer 30 GB.
Saya baru saja kehabisan ruang dan menambahkan hard disk baru. Bagaimana saya bisa mentransfer data saya (yang tampaknya dalam /var/lib/mongodb/
) dan mengkonfigurasi MongoDB sehingga semuanya berjalan dari disk baru tanpa mempengaruhi instalasi saya yang ada?
mongodb
filepath
data-files
Mark Gill
sumber
sumber
sudo chmod o+rx /media
misalnya jika titik mount Andamedia
. R + x harus tersedia untuk grup dan pengguna 'lain' dari titik mount pertama.Jawaban:
Jawaban singkatnya adalah bahwa
--dbpath
parameter dalam MongoDB akan memungkinkan Anda untuk mengontrol darimana MongoDB membaca dan menulis datanya.Akan mulai mongodb dan memasukkan file
/usr/local/mongodb-data
.Bergantung pada distribusi dan instalasi MongoDB Anda, Anda juga dapat mengonfigurasi
mongod.conf
file untuk melakukan ini secara otomatis:Paket 10gen Linux resmi ( Ubuntu / Debian atau CentOS / Fedora ) dikirimkan dengan file konfigurasi dasar yang diletakkan di dalamnya
/etc/mongodb.conf
, dan layanan MongoDB membacanya saat dijalankan. Anda bisa membuat perubahan di sini.sumber
/etc/mongodb.conf
per solusi ini. Kemudian, setelah memulaimongod
, saya melihat/data/db
itu digunakan. Mengapa memperbarui mongodb.conf tidak memengaruhi tempat mongod menyimpan db? (Perhatikan bahwa menggunakan--dbpath
argumen berhasil./etc/mongodb.conf
dan memperbarui yang berfungsi dengan baik untuk saya.chown
milik pengguna mongod untuk skrip mulai layanan.Diselesaikan dalam 2 menit downtime :)
Gerakkan folder Anda, tambahkan symlink, lalu tune izin.
sumber
chmod -R o+x /<home>
. lihat: stackoverflow.com/a/38193187/205049Permission denied: "/var/lib/mongodb"
Ini adalah bagaimana / home / ../mongodb/mongodb/ terlihat seperti:drwxrwxr-x 3 mongodb mongodb 4096 oct 13 09:32 ../ drwxr-xr-x 2 mongodb nogroup 4096 oct 13 09:29 journal/ -rw------x 1 mongodb nogroup 67108864 sep 23 14:44 local.0* -rw------x 1 mongodb nogroup 16777216 sep 23 14:44 local.ns* -rwxr-xr-x 1 mongodb mongodb 0 oct 13 09:29 mongod.lock*
mv
perintah, jika Anda menjalankan perintah mv dari dalam lib, Anda tidak lagi memiliki mongodbln
untukPerintah berikut akan bekerja untuk Anda, jika Anda ingin mengubah jalur default. Cukup ketik ini di direktori bin mongodb.
Jika Anda ingin memindahkan data yang ada juga, maka cukup salin semua folder dari direktori data yang ada \ db ke direktori baru sebelum Anda menjalankan perintah.
Dan juga menghentikan layanan mongodb yang ada yang sedang berjalan.
sumber
Buat file bernama mongod.cfg di folder MongoDB jika Anda tidak memilikinya. Dalam kasus saya: C: \ Users \ ivanbtrujillo \ MongoDB
Kemudian, edit mongod.cfg dengan notepad dan tambahkan baris dengan yang berikut (dbpath khusus kami):
Dalam file ini Anda juga harus menentukan logpath. File mongod.cfg saya adalah:
Jika Anda menggunakan mongoDB sebagai layanan windows, Anda harus mengubah kunci ini dan menentukan file mongod.cfg.
Untuk menginstal mongodb sebagai layanan windows jalankan perintah ini:
Buka regedit.exe dan pergi ke rute berikut:
Layanan MongoDB tidak berfungsi, kita harus mengedit kunci ImagePath, menghapus kontennya dan meletakkan yang berikut ini:
Kami menunjukkan ke mongo file konfigurasi dan logpath-nya.
Kemudian ketika Anda init layanan mongodb, itu berfungsi.
Berikut ini adalah tutorial lengkap untuk menginstal mongoDB di windows: http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/
Semoga ini bisa membantu,
sumber
Salin konten
/var/lib/mongodb
ke/data/db
. File yang seharusnya Anda cari harus memiliki nama sepertiyour_db_name.ns
dan diyour_dbname.n
manan
angka dimulai dengan 0. Jika Anda tidak melihat file seperti itu/var/lib/mongodb
, cari di sistem file Anda.Setelah disalin, gunakan
--dbpath=/data/db
ketika memulai MongoDB melaluimongod
perintah.sumber
Inilah yang saya lakukan, semoga bermanfaat bagi orang lain:
Langkah:
/etc/rc.d/rc.mongod stop
, jika Anda menggunakan sesuatu yang lain, seperti systemd Anda harus memeriksa dokumentasi Anda bagaimana melakukannyamkdir /mnt/database
chown mongodb:mongodb -R /mnt/database/mongodb
) - terima kasih @DanailGabenski.cp -R /var/lib/mongodb/ /mnt/database/
rm -rf /var/lib/mongodb/
ln -s /mnt/database/mongodb /var/lib/mongodb
/etc/rc.d/rc.mongod start
mongo
sambungkan ke database Anda untuk melihat apakah semuanya baik-baik saja)Tidak perlu mengatakan bahwa Anda harus berhati-hati ketika melakukan ini, terutama dengan
rm -rf
tetapi saya pikir ini adalah cara terbaik untuk melakukannya.Anda tidak boleh mencoba menyalin dir database saat mongod sedang berjalan, karena mungkin ada layanan yang menulis / membaca darinya yang akan mengubah konten database Anda.
sumber
chown mongodb:mongodb -R /mnt/database/mongodb
Jika diinstal melalui
apt-get
Ubuntu 12.04, jangan lupachown -R mongodb:nogroup /path/to/new/directory
. Juga, ubah konfigurasi di/etc/mongodb.conf
.Sebagai pengingat,
mongodb-10gen
paket sekarang dimulai melalui pemula, sehingga skrip konfigurasi masuk/etc/init/mongodb.conf
Saya baru saja melalui ini, semoga googler bermanfaat :)
sumber
Bagi saya, pengguna itu
mongod
bukanmongodb
sudo chown mongod:mongod /newlocation
Anda dapat melihat log untuk kesalahan jika layanan gagal:
/var/log/mongodb/mongod.log
sumber
Di debian / ubuntu, Anda harus mengedit skrip /etc/init.d/mongodb. Sungguh, file ini harus menarik pengaturan dari /etc/mongodb.conf tetapi sepertinya tidak menarik direktori default (mungkin bug)
Ini sedikit hack, tetapi menambahkan ini ke skrip membuatnya mulai dengan benar:
Menambahkan:
perubahan:
untuk:
sumber