Cara Menginstal MongoDB di Ubuntu: Panduan Komprehensif
Pendahuluan
MongoDB adalah basis data NoSQL sumber terbuka yang populer yang menyediakan kinerja tinggi, ketersediaan tinggi, dan skalabilitas yang mudah. Ini dirancang untuk menyimpan dan mengelola volume besar data yang tidak terstruktur atau semi-terstruktur, menjadikannya pilihan yang sangat baik untuk aplikasi modern yang berurusan dengan struktur data yang kompleks dan cepat berubah.
Gambaran Singkat tentang MongoDB
MongoDB menyimpan data dalam dokumen fleksibel yang mirip dengan JSON yang disebut BSON (Binary JSON). Pendekatan berbasis dokumen ini memungkinkan skema dinamis, yang berarti Anda dapat menyimpan dokumen dengan struktur yang berbeda dalam koleksi yang sama. Fitur utama MongoDB meliputi:
- Penyimpanan berbasis dokumen: Data disimpan dalam dokumen fleksibel alih-alih baris dan kolom.
- Dukungan indeks penuh: MongoDB mendukung pengindeksan pada atribut apa pun.
- Replikasi & ketersediaan tinggi: MongoDB menyediakan replikasi bawaan dan failover otomatis.
- Sharding: MongoDB dapat mendistribusikan data di beberapa mesin.
- Agregasi: Ini menawarkan kerangka agregasi yang kuat untuk analisis data.
Mengapa Menggunakan MongoDB di Ubuntu?
Ubuntu adalah salah satu distribusi Linux yang paling populer, dikenal karena kemudahan penggunaannya, pembaruan reguler, dan dukungan komunitas yang kuat. Ada beberapa alasan mengapa MongoDB dan Ubuntu merupakan kombinasi yang hebat:
- Kompatibilitas: MongoDB didukung dengan baik di Ubuntu, dengan paket resmi yang tersedia.
- Kinerja: Manajemen sumber daya yang efisien di Ubuntu melengkapi kemampuan kinerja tinggi MongoDB.
- Dukungan jangka panjang: Baik versi LTS (Long Term Support) Ubuntu maupun MongoDB menawarkan dukungan yang diperpanjang, memastikan stabilitas untuk lingkungan produksi Anda.
- Komunitas besar: Baik MongoDB maupun Ubuntu memiliki komunitas besar dan aktif, membuatnya lebih mudah untuk menemukan solusi untuk masalah yang mungkin muncul.
- Keamanan: Fitur keamanan yang kuat di Ubuntu, dikombinasikan dengan opsi keamanan MongoDB, memberikan fondasi yang solid untuk melindungi data Anda.
Prasyarat
Sebelum kita memulai proses instalasi, penting untuk memastikan bahwa sistem Anda memenuhi persyaratan yang diperlukan dan bahwa Anda memiliki izin yang sesuai. Mari kita tinjau prasyarat untuk menginstal MongoDB di Ubuntu.
Versi Ubuntu yang Didukung
MongoDB mendukung rilis LTS (Long Term Support) Ubuntu berikut:
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Ubuntu 16.04 LTS (Xenial Xerus)
Disarankan untuk menggunakan versi LTS terbaru dari Ubuntu untuk kinerja dan keamanan yang optimal. Panduan ini akan fokus pada Ubuntu 20.04 LTS, tetapi langkah-langkahnya harus serupa untuk versi lain yang didukung.
Persyaratan Sistem
MongoDB dapat berjalan di sistem dengan berbagai sumber daya, tetapi untuk kinerja optimal, pertimbangkan rekomendasi berikut:
-
CPU:
- Minimum: 2 inti
- Disarankan: 4 inti atau lebih untuk penggunaan produksi
-
RAM:
- Minimum: 4 GB
- Disarankan: 8 GB atau lebih untuk penggunaan produksi
-
Penyimpanan:
- Minimum: 10 GB ruang kosong
- Disarankan: SSD untuk kinerja yang lebih baik
-
Arsitektur:
- Sistem 64-bit (MongoDB tidak mendukung sistem 32-bit)
Izin yang Diperlukan
Untuk menginstal MongoDB, Anda memerlukan hak istimewa sudo di sistem Ubuntu Anda. Ini berarti Anda harus masuk sebagai pengguna root atau memiliki akun yang dapat menggunakan sudo untuk mengeksekusi perintah dengan hak istimewa root.
Untuk memeriksa apakah pengguna Anda memiliki hak istimewa sudo, Anda dapat menjalankan perintah berikut di terminal:
sudo -v
Jika Anda diminta untuk memasukkan kata sandi dan perintah dieksekusi tanpa kesalahan, pengguna Anda memiliki hak istimewa sudo.
Persyaratan Tambahan
-
Koneksi Internet: Anda memerlukan koneksi internet aktif untuk mengunduh MongoDB dan dependensinya.
-
Akses Terminal: Anda harus nyaman menggunakan antarmuka baris perintah (CLI) karena kita akan menggunakan terminal untuk sebagian besar proses instalasi dan konfigurasi.
-
Manajer Paket: Pastikan bahwa manajer paket sistem Anda (apt) berfungsi dengan baik.
-
Konfigurasi Firewall: Jika Anda memiliki firewall yang diaktifkan (seperti UFW), Anda mungkin perlu mengkonfigurasinya untuk mengizinkan lalu lintas MongoDB.
-
SELinux: Jika Anda memiliki SELinux yang diaktifkan, Anda mungkin perlu mengkonfigurasinya agar MongoDB dapat berfungsi dengan baik.
Memperbarui Sistem
Sebelum menginstal MongoDB, sangat penting untuk memastikan bahwa sistem Ubuntu Anda diperbarui. Langkah ini penting untuk beberapa alasan:
- Keamanan: Pembaruan sering kali mencakup patch keamanan penting.
- Stabilitas: Pembaruan terbaru dapat memperbaiki bug dan meningkatkan stabilitas sistem.
- Kompatibilitas: Memiliki paket terbaru dapat mencegah masalah kompatibilitas yang mungkin terjadi selama instalasi MongoDB.
Pentingnya Pembaruan Sistem
Menjaga sistem Anda tetap diperbarui adalah aspek mendasar dari pemeliharaan instalasi Ubuntu yang sehat dan aman. Ini memastikan bahwa Anda memiliki patch keamanan terbaru, perbaikan bug, dan peningkatan fitur. Ini sangat penting ketika Anda akan menginstal perangkat lunak baru seperti MongoDB, karena membantu mencegah konflik dan memastikan Anda bekerja dengan versi terbaru yang kompatibel dari semua komponen sistem.
Perintah untuk Memperbarui Ubuntu
Untuk memperbarui sistem Ubuntu Anda, ikuti langkah-langkah berikut:
-
Buka terminal Anda. Anda dapat melakukan ini dengan menekan
Ctrl + Alt + T
atau dengan mencari "Terminal" di dasbor Ubuntu. -
Pertama, perbarui daftar paket untuk pembaruan dan instalasi paket baru. Jalankan perintah berikut:
sudo apt update
Perintah ini menyegarkan daftar paket yang tersedia dan versinya, tetapi tidak menginstal atau memperbarui paket apa pun.
-
Setelah pembaruan selesai, tingkatkan paket yang terinstal ke versi terbaru mereka:
sudo apt upgrade
Perintah ini akan menunjukkan daftar paket yang akan diperbarui. Tinjau daftar tersebut dan tekan 'Y' lalu 'Enter' untuk mengonfirmasi dan melanjutkan dengan pembaruan.
-
(Opsional) Jika Anda ingin memastikan bahwa semua paket yang terinstal diperbarui ke versi terbaru mereka, termasuk yang memerlukan instalasi paket baru atau penghapusan yang sudah ada, Anda dapat menggunakan perintah berikut:
sudo apt full-upgrade
Hati-hati dengan perintah ini karena mungkin menghapus beberapa paket jika diperlukan untuk menyelesaikan konflik.
-
Setelah proses pembaruan selesai, adalah ide yang baik untuk me-reboot sistem Anda untuk memastikan semua pembaruan diterapkan dengan benar:
sudo reboot
Memverifikasi Pembaruan
Setelah sistem Anda reboot, Anda dapat memverifikasi bahwa pembaruan berhasil dengan memeriksa versi Ubuntu:
lsb_release -a
Perintah ini akan menampilkan informasi tentang distribusi Ubuntu Anda, termasuk nomor versi.
Dengan menjaga sistem Anda tetap diperbarui, Anda sedang menetapkan fondasi yang solid untuk proses instalasi MongoDB. Sistem yang diperbarui cenderung tidak mengalami masalah kompatibilitas atau kerentanan keamanan selama dan setelah instalasi.
Menginstal MongoDB
Sekarang bahwa sistem Anda sudah diperbarui, kita dapat melanjutkan dengan menginstal MongoDB. Kita akan melalui proses langkah demi langkah, termasuk menambahkan repositori MongoDB, mengimpor kunci publik, dan menginstal paket MongoDB.
Menambahkan Repositori MongoDB
MongoDB tidak tersedia di repositori default Ubuntu. Oleh karena itu, kita perlu menambahkan repositori resmi MongoDB ke sistem kita.
-
Pertama, mari kita tambahkan repositori MongoDB ke daftar sumber kita. Buat file daftar untuk MongoDB menggunakan perintah berikut:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Catatan: Perintah ini untuk Ubuntu 20.04 (Focal Fossa) dan MongoDB 5.0. Jika Anda menggunakan versi Ubuntu yang berbeda atau ingin versi MongoDB yang berbeda, Anda perlu menyesuaikan perintah tersebut sesuai kebutuhan.
Mengimpor Kunci Publik
-
Untuk memastikan keaslian paket yang akan kita instal, kita perlu mengimpor kunci GPG publik MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Jika perintah berhasil, Anda akan melihat output "OK".
Menginstal Paket MongoDB
-
Setelah menambahkan repositori dan mengimpor kunci, perbarui daftar paket:
sudo apt update
-
Sekarang, instal MongoDB:
sudo apt install -y mongodb-org
Perintah ini akan menginstal paket-paket berikut:
mongodb-org
(Sebuah metapaket yang secara otomatis menginstal empat paket komponen yang terdaftar di bawah)mongodb-org-server
(Daemon mongod dan skrip konfigurasi serta inisialisasi terkait)mongodb-org-mongos
(Daemon mongos)mongodb-org-shell
(Shell mongo)mongodb-org-tools
(Berisi beberapa alat MongoDB untuk mengimpor dan mengekspor data, statistik, dan utilitas lainnya)
Memverifikasi Instalasi
-
Setelah instalasi selesai, Anda dapat memverifikasi versi MongoDB dengan menjalankan:
mongod --version
Ini harus menampilkan versi MongoDB yang baru saja Anda instal.
-
MongoDB harus mulai secara otomatis setelah instalasi. Anda dapat memverifikasi statusnya dengan:
sudo systemctl status mongod
Jika MongoDB sedang berjalan, Anda akan melihat output yang menunjukkan bahwa layanan aktif (running).
-
Jika MongoDB tidak berjalan, Anda dapat memulainya dengan:
sudo systemctl start mongod
-
Untuk memastikan bahwa MongoDB mulai secara otomatis saat reboot sistem, jalankan:
sudo systemctl enable mongod
Mengonfigurasi MongoDB
Setelah berhasil menginstal MongoDB, langkah selanjutnya adalah mengonfigurasinya sesuai kebutuhan Anda. Dalam bagian ini, kita akan membahas pemahaman file konfigurasi, pengaturan konfigurasi dasar, dan cara mengamankan MongoDB dengan mengaktifkan otentikasi.
Memahami File Konfigurasi
File konfigurasi utama MongoDB adalah mongod.conf
. Di Ubuntu, file ini biasanya terletak di /etc/mongod.conf
. File ini menggunakan format YAML untuk pengaturan konfigurasi.
Untuk melihat isi file ini, Anda dapat menggunakan perintah berikut:
sudo nano /etc/mongod.conf
Pengaturan Konfigurasi Dasar
Mari kita tinjau beberapa pengaturan konfigurasi kunci:
-
bindIp: Secara default, ini diatur ke 127.0.0.1, yang berarti MongoDB hanya akan menerima koneksi dari localhost. Jika Anda perlu menerima koneksi dari host jarak jauh, Anda perlu mengubah ini.
-
port: Port default adalah 27017. Anda dapat mengubah ini jika diperlukan, tetapi ingat untuk memperbarui aturan firewall Anda sesuai.
-
dbPath: Ini menentukan di mana MongoDB menyimpan file datanya. Defaultnya adalah
/var/lib/mongodb
. -
logPath: Ini menentukan di mana MongoDB menulis lognya. Defaultnya adalah
/var/log/mongodb/mongod.log
.
Berikut adalah contoh bagaimana ini mungkin terlihat di file konfigurasi Anda:
# antarmuka jaringan
net:
port: 27017
bindIp: 127.0.0.1
# tempat menulis data logging
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# tempat dan cara menyimpan data
storage:
dbPath: /var/lib/mongodb
Mengamankan MongoDB (Mengaktifkan Otentikasi)
Secara default, MongoDB tidak memerlukan otentikasi. Sangat penting untuk mengaktifkan ini untuk lingkungan produksi.
-
Pertama, mulai shell MongoDB:
mongo
-
Beralih ke database admin:
use admin
-
Buat pengguna administrator:
db.createUser( { user: "adminUser", pwd: "securePassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Ganti "adminUser" dan "securePassword" dengan nama pengguna dan kata sandi pilihan Anda.
-
Keluar dari shell MongoDB:
exit
-
Sekarang, edit file konfigurasi MongoDB:
sudo nano /etc/mongod.conf
-
Tambahkan atau modifikasi bagian keamanan untuk mengaktifkan otentikasi:
security: authorization: enabled
-
Simpan file dan keluar dari editor.
-
Restart MongoDB agar perubahan dapat diterapkan:
sudo systemctl restart mongod
Sekarang, MongoDB akan memerlukan otentikasi untuk semua koneksi. Untuk terhubung ke MongoDB dengan otentikasi, Anda akan menggunakan perintah seperti ini:
mongo -u adminUser -p --authenticationDatabase admin
Anda akan diminta untuk memasukkan kata sandi Anda.
Ingat untuk mengganti informasi sensitif seperti nama pengguna dan kata sandi dengan nilai yang aman dalam konfigurasi Anda yang sebenarnya.
Memulai dan Menghentikan MongoDB
Mengelola layanan MongoDB adalah bagian penting dari administrasi basis data. Dalam bagian ini, kita akan membahas cara memulai, menghentikan, me-restart, dan memeriksa status layanan MongoDB di Ubuntu.
Memulai Layanan MongoDB
Jika MongoDB belum berjalan, Anda dapat memulainya menggunakan perintah berikut:
sudo systemctl start mongod
Perintah ini memberi tahu systemd (manajer sistem dan layanan untuk Ubuntu) untuk memulai layanan MongoDB.
Menghentikan Layanan MongoDB
Jika Anda perlu menghentikan MongoDB, mungkin untuk pemeliharaan atau perubahan konfigurasi, gunakan perintah ini:
sudo systemctl stop mongod
Ini akan mematikan layanan MongoDB dengan baik.
Me-restart Layanan MongoDB
Jika Anda telah membuat perubahan pada file konfigurasi MongoDB atau jika Anda hanya ingin me-restart layanan, Anda dapat menggunakan:
sudo systemctl restart mongod
Perintah ini secara efektif menghentikan dan kemudian memulai layanan lagi.
Memeriksa Status Layanan
Untuk memeriksa status saat ini dari layanan MongoDB, gunakan:
sudo systemctl status mongod
Ini akan menampilkan informasi tentang layanan MongoDB, termasuk apakah itu aktif (running) atau tidak aktif (stopped), berapa lama sudah berjalan, dan entri log terbaru.
Outputnya akan terlihat seperti ini:
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-05-22 15:30:45 UTC; 2h 35min ago
Docs: https://docs.mongodb.org/manual
Main PID: 1234 (mongod)
Memory: 178.0M
CGroup: /system.slice/mongod.service
└─1234 /usr/bin/mongod --config /etc/mongod.conf
Mengaktifkan MongoDB untuk Mulai Saat Boot
Untuk memastikan bahwa MongoDB mulai secara otomatis saat sistem Anda boot, Anda dapat mengaktifkan layanan:
sudo systemctl enable mongod
Sebaliknya, jika Anda ingin menonaktifkan MongoDB dari mulai otomatis saat boot:
sudo systemctl disable mongod
Memeriksa Log MongoDB
Jika Anda perlu memecahkan masalah atau hanya ingin memantau aktivitas MongoDB, Anda dapat melihat file lognya:
sudo tail -f /var/log/mongodb/mongod.log
Perintah ini akan menunjukkan beberapa baris terakhir dari file log dan memperbarui secara real-time saat entri log baru ditambahkan. Gunakan Ctrl+C untuk keluar dari tampilan log.
Ingat, setiap kali Anda membuat perubahan pada file konfigurasi MongoDB (/etc/mongod.conf
), Anda perlu me-restart layanan agar perubahan tersebut dapat diterapkan.
Menghubungkan ke MongoDB
Sekarang bahwa MongoDB telah diinstal, dikonfigurasi, dan berjalan, mari kita pelajari cara terhubung ke MongoDB dan melakukan beberapa operasi dasar. Kita akan menggunakan shell MongoDB, yang merupakan antarmuka JavaScript interaktif untuk MongoDB.
Menggunakan Shell MongoDB
-
Untuk memulai shell MongoDB, buka terminal dan ketik:
mongo
Jika Anda telah mengaktifkan otentikasi, Anda perlu terhubung dengan nama pengguna dan kata sandi:
mongo -u adminUser -p --authenticationDatabase admin
Anda akan diminta untuk memasukkan kata sandi Anda.
-
Setelah terhubung, Anda akan melihat prompt shell MongoDB:
MongoDB shell version v5.0.x connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 5.0.x >
Membuat Database dan Koleksi
-
Untuk membuat database baru (atau beralih ke yang sudah ada), gunakan perintah
use
:use myNewDatabase
MongoDB akan membuat database jika belum ada dan beralih ke database tersebut.
-
Untuk membuat koleksi baru, Anda dapat cukup menyisipkan dokumen ke dalamnya:
db.myCollection.insertOne({ name: "John Doe", age: 30, city: "New York" })
Ini membuat koleksi bernama
myCollection
dan menyisipkan dokumen ke dalamnya.
Operasi CRUD Dasar
Mari kita lakukan beberapa operasi dasar Create, Read, Update, dan Delete (CRUD):
-
Create (Sisipkan) lebih banyak dokumen:
db.myCollection.insertMany([ { name: "Jane Smith", age: 25, city: "San Francisco" }, { name: "Bob Johnson", age: 35, city: "Chicago" } ])
-
Read (Kuery) dokumen:
// Temukan semua dokumen dalam koleksi db.myCollection.find() // Temukan dokumen yang cocok dengan kriteria tertentu db.myCollection.find({ city: "New York" }) // Temukan satu dokumen db.myCollection.findOne({ name: "John Doe" })
-
Update dokumen:
// Perbarui satu dokumen db.myCollection.updateOne( { name: "John Doe" }, { $set: { age: 31 } } ) // Perbarui beberapa dokumen db.myCollection.updateMany( { city: "New York" }, { $set: { country: "USA" } } )
-
Delete dokumen:
// Hapus satu dokumen db.myCollection.deleteOne({ name: "Jane Smith" }) // Hapus beberapa dokumen db.myCollection.deleteMany({ age: { $lt: 30 } })
-
Untuk keluar dari shell MongoDB, ketik:
exit
Perintah Berguna Tambahan
Berikut adalah beberapa perintah berguna lainnya:
- Tampilkan semua database:
show dbs
- Tampilkan semua koleksi di database saat ini:
show collections
- Tampilkan bantuan:
help
Ingat, ini hanya operasi dasar. MongoDB menawarkan banyak fitur canggih lainnya seperti pengindeksan, agregasi, dan pencarian teks. Saat Anda semakin nyaman dengan dasar-dasar ini, Anda dapat menjelajahi operasi dan kueri yang lebih kompleks.
Mengaktifkan Akses Jarak Jauh (Opsional)
Secara default, MongoDB dikonfigurasi untuk hanya mengizinkan koneksi dari localhost. Namun, dalam beberapa skenario, Anda mungkin perlu mengakses instance MongoDB Anda dari mesin jarak jauh. Bagian ini akan memandu Anda melalui proses mengaktifkan akses jarak jauh ke server MongoDB Anda.
Memodifikasi Konfigurasi untuk Akses Jarak Jauh
-
Pertama, buka file konfigurasi MongoDB:
sudo nano /etc/mongod.conf
-
Temukan bagian
net
dalam file konfigurasi. Ini harus terlihat seperti ini:net: port: 27017 bindIp: 127.0.0.1
-
Ubah nilai
bindIp
untuk mengizinkan koneksi dari semua alamat IP:net: port: 27017 bindIp: 0.0.0.0
Ini memberi tahu MongoDB untuk mendengarkan koneksi di semua alamat IP yang tersedia.
-
Simpan file dan keluar dari editor.
-
Restart MongoDB agar perubahan dapat diterapkan:
sudo systemctl restart mongod
Mengonfigurasi Pengaturan Firewall
Jika Anda memiliki firewall yang diaktifkan (seperti UFW di Ubuntu), Anda perlu membuka port MongoDB (default adalah 27017) untuk mengizinkan koneksi masuk.
-
Untuk membuka port menggunakan UFW:
sudo ufw allow 27017
-
Anda dapat memeriksa status UFW dengan:
sudo ufw status
Pertimbangan Keamanan
Mengaktifkan akses jarak jauh ke server MongoDB Anda memperkenalkan risiko keamanan potensial. Berikut adalah beberapa langkah keamanan penting yang perlu dipertimbangkan:
-
Gunakan Otentikasi yang Kuat: Pastikan Anda telah mengaktifkan otentikasi dan menggunakan kata sandi yang kuat dan unik untuk semua pengguna basis data.
-
Aktifkan SSL/TLS: Konfigurasikan MongoDB untuk menggunakan SSL/TLS untuk semua koneksi masuk untuk mengenkripsi data dalam perjalanan.
-
Gunakan VPN atau Terowongan SSH: Alih-alih mengekspos MongoDB langsung ke internet, pertimbangkan untuk menggunakan VPN atau terowongan SSH untuk akses jarak jauh.
-
Terapkan Whitelisting IP: Jika memungkinkan, konfigurasikan firewall Anda untuk hanya mengizinkan koneksi dari alamat IP atau rentang tertentu.
-
Jaga MongoDB Tetap Diperbarui: Secara teratur perbarui MongoDB ke versi terbaru untuk memastikan Anda memiliki patch keamanan terbaru.
Menghubungkan dari Klien Jarak Jauh
Setelah Anda mengaktifkan akses jarak jauh, Anda dapat terhubung ke instance MongoDB Anda dari mesin jarak jauh menggunakan string koneksi seperti ini:
mongodb://username:password@server_ip_address:27017/database_name
Ganti username
, password
, server_ip_address
, dan database_name
dengan nilai Anda yang sebenarnya.
Memverifikasi Koneksi Jarak Jauh
Untuk memverifikasi bahwa koneksi jarak jauh berfungsi:
-
Dari mesin lain, Anda dapat menggunakan shell MongoDB untuk terhubung:
mongo --host server_ip_address -u username -p --authenticationDatabase admin
Ganti
server_ip_address
danusername
dengan nilai Anda yang sebenarnya. Anda akan diminta untuk memasukkan kata sandi Anda. -
Jika koneksi berhasil, Anda akan melihat prompt shell MongoDB.
Ingat, mengaktifkan akses jarak jauh harus dilakukan dengan hati-hati dan hanya ketika diperlukan. Selalu utamakan keamanan saat mengekspos basis data Anda ke koneksi eksternal.
Cadangan dan Pemulihan MongoDB
Membackup data Anda adalah aspek penting dari manajemen basis data. Ini membantu melindungi dari kehilangan data akibat kegagalan perangkat keras, kesalahan manusia, atau keadaan tak terduga lainnya. Dalam bagian ini, kita akan membahas cara membuat cadangan basis data MongoDB Anda dan cara memulihkan dari cadangan tersebut.
Membuat Cadangan Database
MongoDB menyediakan dua alat utama untuk membuat cadangan: mongodump dan mongorestore.
Menggunakan mongodump
mongodump adalah utilitas yang membuat ekspor biner dari konten database.
-
Untuk mencadangkan semua database:
mongodump --out /path/to/backup/directory
-
Untuk mencadangkan database tertentu:
mongodump --db database_name --out /path/to/backup/directory
-
Jika Anda memiliki otentikasi yang diaktifkan, gunakan:
mongodump --username your_username --password your_password --authenticationDatabase admin --out /path/to/backup/directory
Menggunakan mongorestore
mongorestore adalah alternatif yang membuat ekspor JSON dari data Anda.
-
Untuk mencadangkan semua database:
mongodump --out /path/to/backup/directory
-
Untuk mencadangkan database tertentu:
mongodump --db database_name --out /path/to/backup/directory
Memulihkan dari Cadangan
Untuk memulihkan data Anda, Anda dapat menggunakan utilitas mongorestore.
Memulihkan dari mongodump
-
Untuk memulihkan semua database:
mongorestore /path/to/backup/directory
-
Untuk memulihkan database tertentu:
mongorestore --db database_name /path/to/backup/directory/database_name
-
Jika Anda memiliki otentikasi yang diaktifkan:
mongorestore --username your_username --password your_password --authenticationDatabase admin /path/to/backup/directory
Memulihkan dari mongorestore
Prosesnya mirip dengan mongodump:
-
Untuk memulihkan semua database:
mongorestore /path/to/backup/directory
-
Untuk memulihkan database tertentu:
mongorestore --db database_name /path/to/backup/directory/database_name
Praktik Terbaik untuk Cadangan MongoDB
-
Cadangan Reguler: Jadwalkan cadangan secara teratur, dengan frekuensi tergantung pada seberapa sering data Anda berubah.
-
Penyimpanan Off-site: Simpan cadangan di lokasi yang berbeda dari database utama Anda untuk melindungi dari bencana fisik.
-
Verifikasi Cadangan: Secara teratur uji cadangan Anda dengan melakukan pemulihan uji untuk memastikan mereka berfungsi dengan benar.
-
Pemulihan Point-in-Time: Untuk lingkungan produksi, pertimbangkan untuk menggunakan oplog MongoDB untuk pemulihan point-in-time.
-
Kompresi: Gunakan kompresi untuk mengurangi ukuran cadangan, terutama untuk database besar.
mongodump --gzip --out /path/to/backup/directory
-
Automasi: Gunakan skrip atau alat untuk mengotomatiskan proses cadangan Anda.
Memantau Status Cadangan
Anda dapat memantau kemajuan operasi cadangan Anda dengan memeriksa file log MongoDB:
tail -f /var/log/mongodb/mongod.log
Ingat, memiliki strategi cadangan yang solid sangat penting untuk basis data produksi mana pun. Secara teratur uji prosedur cadangan dan pemulihan Anda untuk memastikan Anda dapat memulihkan data Anda saat diperlukan.
Mengupgrade MongoDB
Menjaga instalasi MongoDB Anda tetap terbaru sangat penting untuk keamanan, kinerja, dan akses ke fitur baru. Bagian ini akan memandu Anda melalui proses mengupgrade MongoDB di sistem Ubuntu Anda.
Memeriksa Versi Saat Ini
Sebelum mengupgrade, penting untuk mengetahui versi MongoDB mana yang sedang Anda jalankan. Anda dapat memeriksa ini dengan menjalankan:
mongod --version
Langkah-langkah untuk Mengupgrade MongoDB
-
Perbarui daftar paket: Pertama, perbarui daftar paket sistem Anda untuk memastikan Anda memiliki informasi terbaru tentang paket yang tersedia:
sudo apt update
-
Cadangkan data Anda: Sebelum melakukan upgrade, sangat penting untuk mencadangkan data Anda. Lihat bagian sebelumnya tentang cadangan untuk instruksi rinci.
-
Hentikan layanan MongoDB:
sudo systemctl stop mongod
-
Perbarui paket MongoDB:
sudo apt upgrade mongodb-org
Perintah ini akan mengupgrade MongoDB ke versi terbaru di repositori yang telah Anda tambahkan.
-
Mulai layanan MongoDB:
sudo systemctl start mongod
-
Verifikasi versi baru: Setelah upgrade, verifikasi bahwa versi baru telah terinstal dengan benar:
mongod --version
Mengupgrade ke Versi Tertentu
Jika Anda ingin mengupgrade ke versi tertentu dari MongoDB daripada versi terbaru, Anda dapat menentukan nomor versi:
sudo apt install mongodb-org=X.Y.Z mongodb-org-server=X.Y.Z mongodb-org-shell=X.Y.Z mongodb-org-mongos=X.Y.Z mongodb-org-tools=X.Y.Z
Ganti X.Y.Z
dengan nomor versi yang ingin Anda instal.
Menangani Upgrade Versi Utama
Saat mengupgrade antara versi utama (misalnya, dari 4.x ke 5.x), mungkin ada langkah atau pertimbangan tambahan:
-
Periksa kompatibilitas: Pastikan bahwa versi MongoDB Anda saat ini dapat langsung diupgrade ke versi target. Beberapa upgrade mungkin memerlukan langkah-langkah perantara.
-
Tinjau catatan rilis: Selalu baca catatan rilis untuk versi baru untuk memahami perubahan yang mungkin memengaruhi.
-
Perbarui driver dan klien: Pastikan semua aplikasi dan driver yang terhubung ke MongoDB kompatibel dengan versi baru.
-
Uji di lingkungan non-produksi: Selalu uji proses upgrade di lingkungan staging sebelum menerapkannya ke produksi.
Langkah-langkah Pasca-Upgrade
Setelah mengupgrade:
-
Periksa log untuk kesalahan:
sudo tail -f /var/log/mongodb/mongod.log
-
Jalankan pemeriksaan integritas database: Terhubung ke shell MongoDB dan jalankan:
db.runCommand( { dbCheck: 1 } )
untuk setiap database Anda.
-
Perbarui MongoDB Compass atau alat GUI lainnya jika Anda menggunakannya.
-
Tinjau dan perbarui strategi cadangan Anda jika perlu, karena versi yang lebih baru mungkin menawarkan metode cadangan yang lebih baik.
Menurunkan Versi MongoDB
Jika Anda mengalami masalah setelah upgrade, Anda mungkin perlu menurunkan versi. Menurunkan versi harus dilakukan dengan hati-hati:
- Hentikan layanan MongoDB.
- Hapus paket baru.
- Instal paket versi sebelumnya.
- Pulihkan dari cadangan yang diambil sebelum upgrade.
Ingat, menurunkan versi mungkin tidak selalu sederhana, terutama antara versi utama, karena perubahan format data yang mungkin terjadi.
Memecahkan Masalah Masalah Umum
Bahkan dengan pengaturan dan pemeliharaan yang hati-hati, Anda mungkin mengalami masalah dengan instalasi MongoDB Anda. Bagian ini mencakup beberapa masalah umum dan solusinya.
Masalah Izin
-
Masalah: Kesalahan "Permission denied" saat mencoba mengakses MongoDB.
Solusi:
- Pastikan direktori data MongoDB memiliki kepemilikan yang benar:
sudo chown -R mongodb:mongodb /var/lib/mongodb
- Periksa izin file log MongoDB:
sudo chown mongodb:mongodb /var/log/mongodb/mongod.log
- Pastikan direktori data MongoDB memiliki kepemilikan yang benar:
-
Masalah: Tidak dapat mengakses MongoDB dengan pengguna Ubuntu Anda.
Solusi:
- Tambahkan pengguna Anda ke grup MongoDB:
sudo usermod -aG mongodb $USER
- Keluar dan masuk kembali agar perubahan berlaku.
- Tambahkan pengguna Anda ke grup MongoDB:
Masalah Koneksi
-
Masalah: Kesalahan "Koneksi ditolak".
Solusi:
- Periksa apakah MongoDB sedang berjalan:
sudo systemctl status mongod
- Jika tidak berjalan, mulai:
sudo systemctl start mongod
- Pastikan MongoDB mendengarkan pada alamat yang benar di
mongod.conf
:net: port: 27017 bindIp: 127.0.0.1
- Periksa apakah MongoDB sedang berjalan:
-
Masalah: Tidak dapat terhubung dari jarak jauh.
Solusi:
- Periksa apakah MongoDB terikat pada semua antarmuka (0.0.0.0) di
mongod.conf
. - Pastikan firewall Anda mengizinkan koneksi pada port 27017.
- Verifikasi bahwa otentikasi telah diatur dengan benar jika Anda menggunakannya.
- Periksa apakah MongoDB terikat pada semua antarmuka (0.0.0.0) di
Masalah Kinerja
-
Masalah: Kuery lambat atau kinerja keseluruhan yang buruk.
Solusi:
- Gunakan metode
explain()
untuk menganalisis kinerja kuery:db.collection.find(<query>).explain("executionStats")
- Pastikan pengindeksan yang tepat:
db.collection.createIndex({ field: 1 })
- Periksa sumber daya sistem (CPU, RAM, Disk I/O) untuk kemacetan.
- Gunakan metode
-
Masalah: Penggunaan memori tinggi.
Solusi:
- Sesuaikan ukuran cache WiredTiger di
mongod.conf
:storage: wiredTiger: engineConfig: cacheSizeGB: 1
- Optimalkan kuery Anda untuk mengurangi penggunaan memori.
- Sesuaikan ukuran cache WiredTiger di
Kerusakan Database
-
Masalah: File database rusak.
Solusi:
- Hentikan MongoDB:
sudo systemctl stop mongod
- Perbaiki database:
mongod --repair --dbpath /var/lib/mongodb
- Jika perbaikan gagal, pulihkan dari cadangan terbaru.
- Hentikan MongoDB:
Analisis File Log
Log MongoDB dapat memberikan informasi berharga untuk pemecahan masalah:
-
Lihat 100 baris terakhir dari file log:
sudo tail -n 100 /var/log/mongodb/mongod.log
-
Cari pesan kesalahan:
sudo grep "ERROR" /var/log/mongodb/mongod.log
Pesan Kesalahan Umum
-
"Operasi tidak diizinkan": Sering terkait dengan SELinux atau AppArmor. Periksa status mereka dan konfigurasikan untuk mengizinkan operasi MongoDB.
-
"Tidak ada ruang tersisa di perangkat": Periksa ruang disk Anda dan kosongkan ruang jika perlu.
-
"terlalu banyak file terbuka": Tingkatkan batas file terbuka sistem:
sudo ulimit -n 64000
Mencari Bantuan Lebih Lanjut
Jika Anda tidak dapat menyelesaikan masalah:
- Periksa dokumentasi resmi MongoDB.
- Cari di Forum Komunitas MongoDB.
- Tinjau MongoDB JIRA untuk masalah yang diketahui.
- Pertimbangkan untuk menghubungi dukungan MongoDB jika Anda memiliki lisensi komersial.
Praktik Terbaik dan Pertimbangan Keamanan
Menerapkan praktik terbaik dan memprioritaskan keamanan sangat penting untuk menjaga instalasi MongoDB yang kuat dan aman. Bagian ini akan membahas rekomendasi kunci untuk mengoptimalkan penyebaran MongoDB Anda.
Rekomendasi Keamanan
-
Aktifkan Otentikasi:
- Selalu gunakan otentikasi di lingkungan produksi.
- Buat akun pengguna individu dengan peran dan hak akses tertentu.
use admin db.createUser( { user: "adminUser", pwd: "securePassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
-
Aktifkan Kontrol Akses:
- Atur
authorization: enabled
di filemongod.conf
Anda.
- Atur
-
Gunakan TLS/SSL untuk Enkripsi:
- Konfigurasikan MongoDB untuk menggunakan TLS/SSL untuk semua koneksi jaringan.
- Di
mongod.conf
:net: ssl: mode: requireSSL PEMKeyFile: /path/to/mongodb.pem
-
Terapkan Keamanan Jaringan:
- Gunakan firewall untuk membatasi akses ke port MongoDB.
- Pertimbangkan menggunakan VPN untuk akses jarak jauh.
-
Audit Keamanan Secara Berkala:
- Tinjau akun pengguna dan hak akses mereka secara berkala.
- Gunakan daftar periksa keamanan bawaan MongoDB:
db.adminCommand( { getCmdLineOpts: 1 } )
-
Jaga MongoDB Tetap Terbaru:
- Secara teratur perbarui ke versi stabil terbaru untuk mendapatkan manfaat dari patch keamanan.
Tips Optimasi Kinerja
-
Pengindeksan yang Tepat:
- Buat indeks untuk mendukung kuery Anda:
db.collection.createIndex({ field: 1 })
- Gunakan metode
explain()
untuk menganalisis kinerja kuery.
- Buat indeks untuk mendukung kuery Anda:
-
Gunakan Write Concern yang Sesuai:
- Seimbangkan antara keamanan data dan kinerja:
db.collection.insertOne({ ... }, { writeConcern: { w: 1, j: true } })
- Seimbangkan antara keamanan data dan kinerja:
-
Optimalkan Desain Skema:
- Rancang skema Anda untuk mendukung kuery yang paling sering Anda lakukan.
- Pertimbangkan untuk menyematkan data terkait untuk informasi yang sering diakses.
-
Pantau dan Sesuaikan Sumber Daya Sistem:
- Pastikan RAM yang cukup untuk set kerja Anda.
- Gunakan penyimpanan SSD untuk meningkatkan kinerja I/O.
-
Gunakan Agregasi untuk Kuery Kompleks:
- Manfaatkan pipeline agregasi untuk pemrosesan data yang efisien:
db.collection.aggregate([ { $match: { ... } }, { $group: { ... } }, { $sort: { ... } } ])
- Manfaatkan pipeline agregasi untuk pemrosesan data yang efisien:
Cadangan dan Pemulihan Bencana
-
Cadangan Reguler:
- Terapkan cadangan otomatis dan teratur.
- Uji proses pemulihan Anda secara berkala.
-
Terapkan Replikasi:
- Gunakan set replika untuk ketersediaan tinggi dan redundansi data.
-
Rencana Pemulihan Bencana:
- Kembangkan dan dokumentasikan rencana pemulihan bencana.
- Latih skenario pemulihan secara berkala.
Pemantauan dan Pencatatan
-
Atur Pemantauan:
- Gunakan MongoDB Cloud Manager atau alat pemantauan lainnya.
- Pantau metrik kunci seperti ops/detik, koneksi, dan penggunaan memori.
-
Konfigurasi Pencatatan yang Tepat:
- Aktifkan pencatatan untuk kuery lambat:
operationProfiling: slowOpThresholdMs: 100 mode: slowOp
- Aktifkan pencatatan untuk kuery lambat:
-
Rotasi Log:
- Terapkan rotasi log untuk mengelola ukuran file log.
Praktik Terbaik Pengembangan
-
Gunakan Pooling Koneksi:
- Terapkan pooling koneksi di aplikasi Anda untuk mengelola koneksi database secara efisien.
-
Terapkan Penanganan Kesalahan yang Tepat:
- Tangani kesalahan database dengan baik dalam kode aplikasi Anda.
-
Gunakan Tipe Data yang Sesuai:
- Pilih tipe BSON yang benar untuk data Anda untuk mengoptimalkan penyimpanan dan kinerja kuery.
-
Validasi Input:
- Terapkan validasi input untuk mencegah serangan injeksi dan kerusakan data.
Pemeliharaan Reguler
-
Kompak Database:
- Secara teratur kompak database untuk mengklaim ruang disk:
db.runCommand( { compact: 'collection_name' } )
- Secara teratur kompak database untuk mengklaim ruang disk:
-
Periksa Integritas Database:
- Jalankan pemeriksaan integritas secara berkala:
db.runCommand( { dbCheck: 1 } )
- Jalankan pemeriksaan integritas secara berkala:
Pertanyaan yang Sering Diajukan (FAQ)
Berikut adalah beberapa pertanyaan yang sering diajukan tentang menginstal dan menggunakan MongoDB di Ubuntu:
Q: Bagaimana cara mengetahui versi MongoDB yang saya jalankan?
A: Anda dapat menggunakan perintah berikut di terminal:
mongod --version
Atau, jika Anda sudah berada di shell MongoDB:
db.version()
Q: Bisakah saya memiliki beberapa versi MongoDB yang diinstal di sistem Ubuntu yang sama?
A: Meskipun mungkin, umumnya tidak disarankan karena dapat menyebabkan konflik. Jika Anda perlu menjalankan beberapa versi, pertimbangkan menggunakan kontainer Docker untuk isolasi.
Q: Bagaimana cara mengubah kata sandi pengguna MongoDB?
A: Anda dapat mengubah kata sandi menggunakan perintah berikut di shell MongoDB:
db.changeUserPassword("username", "newPassword")
Q: Bagaimana saya dapat mengaktifkan akses jarak jauh ke server MongoDB saya?
A: Anda perlu memodifikasi bindIp
di file mongod.conf
Anda menjadi 0.0.0.0
, pastikan firewall Anda mengizinkan koneksi pada port 27017, dan restart MongoDB. Namun, pastikan untuk menerapkan langkah-langkah keamanan yang tepat sebelum melakukan ini.
Q: Apa perbedaan antara edisi MongoDB Community dan Enterprise?
A: MongoDB Community adalah gratis dan sumber terbuka, sementara Enterprise menawarkan fitur tambahan seperti otentikasi LDAP, audit, dan mesin penyimpanan terenkripsi. Untuk sebagian besar pengguna, edisi Community sudah cukup.
Q: Bagaimana cara mencadangkan database MongoDB saya?
A: Anda dapat menggunakan utilitas mongodump
untuk membuat ekspor biner dari database Anda:
mongodump --out /path/to/backup/directory
Q: Bagaimana saya dapat meningkatkan kinerja MongoDB?
A: Beberapa cara untuk meningkatkan kinerja termasuk:
- Pengindeksan yang tepat
- Menggunakan write concern yang sesuai
- Mengoptimalkan desain skema
- Memastikan sumber daya sistem yang memadai (terutama RAM)
- Pemeliharaan reguler (seperti menjalankan operasi kompak dan perbaikan)
Q: Apa yang harus saya lakukan jika MongoDB tidak mau mulai?
A: Periksa file log MongoDB (biasanya di /var/log/mongodb/mongod.log
) untuk pesan kesalahan. Masalah umum termasuk masalah izin, konflik port, atau file data yang rusak.
Q: Bagaimana cara terhubung ke MongoDB dari bahasa pemrograman?
A: Sebagian besar bahasa pemrograman memiliki driver MongoDB resmi atau yang didukung komunitas. Misalnya, dalam Python, Anda akan menggunakan pymongo
:
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
Q: Apakah aman menggunakan MongoDB tanpa otentikasi di lingkungan pengembangan?
A: Meskipun mungkin, umumnya disarankan untuk selalu menggunakan otentikasi, bahkan di lingkungan pengembangan. Ini membantu memastikan bahwa praktik pengembangan Anda selaras dengan persyaratan keamanan produksi.
Q: Seberapa sering saya harus mencadangkan database MongoDB saya?
A: Frekuensi cadangan tergantung pada kasus penggunaan spesifik Anda dan seberapa sering data Anda berubah. Untuk aplikasi kritis, pertimbangkan cadangan terus-menerus atau setidaknya cadangan harian.
Q: Bisakah saya mengubah port default (27017) yang digunakan MongoDB?
A: Ya, Anda dapat mengubah port default di file mongod.conf
:
net:
port: 27018
Ingat untuk merestart MongoDB setelah melakukan perubahan ini.