Upload
agus-kurniawan
View
1.265
Download
22
Embed Size (px)
Citation preview
2 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Administrasi MongoDB
Agus Kurniawan
Seri MongoDB
3 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Seri MongoDB – Administrasi MongoDB Edisi 1 Penulis: Agus Kurniawan Penerbit: People Enterprise Press ©2013 People Enterprise Press Hak cipta dilindungi undang-undang Dilarang memperbanyak isi buku ini sebagian atau keseluruhan dengan printing, cetak, fotokopi, dan sebagainya tanpa izin tertulis dari Penerbit People Enterprise Press.
MongoDB adalah hak cipta 10gen.
Gambar cover buku merupakan hak cipta dari http://www.imagewa.net/
4 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Buku ini kupersembahkan kepada isteriku, Ela Juitasari, dan kedua anakku, M. Thariq Akbar dan Zahra Zhafirah Fathinah.
Dan juga kedua orang tuaku di Ds. Sukasukur-Tasikmalaya, (Alm) mak Yoyom dan bapak Didi.
5 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Kata pengantar
Alhamdullilah, dengan rahmat Allah SWT akhirnya buku ini dapat diselesaikan, Buku Seri MongoDB: Administrasi MongoDB. Selain itu, penulis berharap buku ini dapat membantu dan memberikan motivasi para administrator atau pemula yang ingin belajar tentang database MongoDB.
Penulis juga sebagai manusia biasa yang tidak luput dari kesalahan. Oleh karena itu, saran dan kritik guna meningkatkan kualitas konten buku ini dari pembaca sangat diperlukan. Semoga buku ini bermanfaat.
Berlin-Jerman, Oktober 2013
Agus Kurniawan Fakultas Ilmu Komputer Universitas Indonesia
6 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Daftar Isi
Kata pengantar ............................................................................................................................. 5
Daftar Isi ........................................................................................................................................ 6
Mengenal MongoDB .................................................................................................................... 8
Apakah Itu MongoDB? .......................................................................................................... 10
Mengapa MongoDB? ............................................................................................................. 11
System Requirement .............................................................................................................. 12
MongoDB Server .................................................................................................................... 12
Instalasi MongoDB Pada Platform Windows .................................................................... 13
Instalasi MongoDB Pada Platform Linux Ubuntu ............................................................ 16
Sintak MongoDB Shell .............................................................................................................. 17
MongoDB Shell ....................................................................................................................... 18
Membuat Database Baru ....................................................................................................... 19
Membuat Dokumen Baru ...................................................................................................... 20
Menampilkan Koleksi Dokumen ......................................................................................... 22
Menampilkan Data Pada Dokumen .................................................................................... 23
Memperbarui Data ................................................................................................................. 23
Menghapus Data .................................................................................................................... 24
Menghapus Dokumen ........................................................................................................... 24
Kondisional Operator ............................................................................................................ 24
Limit dan Sorting .................................................................................................................... 25
Operasi OR dan AND ............................................................................................................ 25
Regular Expression ................................................................................................................ 26
Manajemen MongoDB............................................................................................................... 27
Administrative Tool ............................................................................................................... 28
7 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Manajemen Database ............................................................................................................. 29
Monitoring Server .................................................................................................................. 30
Export & Import Data ................................................................................................................ 33
Export Data ............................................................................................................................. 34
Import Data ............................................................................................................................. 35
Backup & Restore ....................................................................................................................... 37
Backup Data ............................................................................................................................ 38
Restore Data ............................................................................................................................ 39
Daftar Pustaka ............................................................................................................................ 41
Profile Penulis ............................................................................................................................. 42
8 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Mengenal MongoDB
Bab 1
9 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Sebagian besar dari kita mungkin sudah tidak asing dengan database relational bahkan beberapa universitas juga mengajarkan. Beberapa perusahan dan industri juga memanfaatkan database relational ini untuk kepentingan aplikasinya. Database relational sudah terbukti banyak dipakai dan keandalannya masih dapat diterima. Ada banyak produk yang berbasis database relational antara lain
• SQL Server
• Oracle
• MySQL
• Postgre
• dan banyak lagi
Database relational ini memanfaatkan SQL untuk mengaksesnya. Para programmer sudah tidak asing melakukan query ataupun transaksi dengan menggunakan SQL. Beberapa dari para programmer ini mungkin tidak menyukai SQL dan selanjutnya memanfaatkan ORM (object relational mapping) yang menyederhanakan sintak SQL menjadi objek sehingga para programmer tidak menggunakan sintak SQL dalam mengakses databasenya.
Selain menggunakan pendekatan ORM, kita juga dapat mengganti paradigm SQL ini secara totol dengan mengganti sistem database yang sering dikenal dengan aliran NoSQL. Konsep umum pada sistem database berbasis NoSQL didasarkan pada bagaimana cara menyimpan data dengan pendekatan seperti
• Key-value
• BigTable
• Document store
• Graph database
Sistem database berbasis NoSQL ini cukup cepat perkembangannya. Ditambah lagi dengan banyaknya perusahan besar yang memakainya seperti Google, Amazon, Twitter, dan Facebook. Kalau kita perhatikan secara implementasi NoSQL maka kita akan memperoleh banyak sekali sistem database yang dapat dipilih contohnya MongoDB, CouchDB, Cassandra, Berkeley DB dan sebagainya.
10 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Pada bab ini penulis akan memaparkan apa dan bagaimana memanfaatkan database MongoDB sebagai sistem database berbasis NoSQL.
Apakah Itu MongoDB? MongoDB merupakan sistem database yang awalnya diperuntuknan untuk aplikasi web dan infrastruktur internet. Strategi model data dengan tingkat throughput yang tinggi dan kemampuan automatic failover membuat MongoDB menjadi pilihan alternatif untuk data. Kemudahan skalabilitas yang fleksibel menjadikan fitur utama dari database yang berbasis NoSQL ini. Sistem database MongoDB ini dapat dibaca informasinya pada alamat http://www.mongodb.org .
Database MongoDB dikembangkan oleh 10gen yang merupakan perusahan yang berkecimpung dalam bidang cloud dengan fokus software platform-as-a-service yang terdiri dari aplikasi server dan database. Database MongoDB sendiri dikembangan dengan bahasa C++ dan dikompilasi diplatform Mac, Windows dan paling banyak pada Linux.
MongoDB didasarkan pada bagaimana cara menyimpan dan memperoleh data. Teknik yang digunakan adalah BSON (binary JSON) yang iini merupakan serialisasi binary-encoded berbasis dokumen JSON. Setiap BSON akan mempunyai 0 atau lebih pasangan key/value berformat binary yang disimpan sebagai satu entiti. Satu entiti ini dikenal dengan dokumen. Berikut ini tipe dasar yang digunakan pada MongoDB yang diserialisasikan dalam format little-endian:
public enum BsonType { Double = 0x01, String = 0x02, Document = 0x03, Array = 0x04, Binary = 0x05, Undefined = 0x06, ObjectId = 0x07, Boolean = 0x08, DateTime = 0x09, Null = 0x0a, RegularExpression = 0x0b, JavaScript = 0x0d, Symbol = 0x0e, JavaScriptWithScope = 0x0f, Int32 = 0x10, Timestamp = 0x11, Int64 = 0x12, MinKey = 0xff, MaxKey = 0x7f
11 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
}
Sebagai ilustrasikan misalkan kita mempunyai data pasangan key/value sebagai berikut
{"hello": "world"}
Maka format BSON akan menjadi seperti dibawah ini
\x16\x00\x00\x00\x02hello\x00
\x06\x00\x00\x00world\x00\x00
Mengapa MongoDB? Seperti telah dijelaskan diawal mengenai MongoDB dan selanjutnya ini akan menjadi pilihan para pembaca untuk menyelesaikan beberapa permasalahan yang berhubungan dengan database. Berdasarkan tujuan dari MongoDB dibuat, kita dapat melihat bahwa MongoDB dirancang dengan mengkombinasikan konsep key-value dan relational database. Pendekatan key-value ini akan menyederhanakan proses penyimpanan dan aksesnya serta kemudahan dalam melakukan skalabilitas.
Pada beberapa kasus database MongoDB sangat cocok untuk aplikasi web untuk hal yang berhubungan dengan analisa dan logging serta beberapa aplikasi yang memerlukan cache. Seperti pada memcache yang menerapkan key-value sebagai metode untuk cache, MongoDB juga melakukannya seperti itu.
MongoDB tidak mengenal join karena memang tidak berparadigma SQL melainkan dengan pendekatan dokumen. Dokumen satu dengan dokumen lainnya dapat saling berhubungan berdasarkan relasi dokumen nya. Solusi ini diharapkan dapat mempercepat query data dari MongoDB.
Sistem database MongoDB juga dapat digunakan bebas tanpa harus mengeluarkan biaya sama sekali. Selain itu, MongoDB juga membuka kode programnya atau dengan kata lain berbasis open source.
Dukungan driver terhadap beberapa bahasa pemrograman juga menjadi menarik untuk para pengembangan yang ingin memanfaatkan database MongoDB sebagai databasenya. Dukungan ini akan menambah kreatifitas para pengembang.
12 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
System Requirement Komputer merupakan alat yang terpenting untuk menjalankan MongoDB. Berikut ini beberapa spesifikasi komputer yang dibutuhkan
Processor 1 GHz atau lebih tingi
OS yang didukung
Linux Ubuntu, Debian, dan generic Linux
Windows XP, Vista, 7, 8
Windows Server 2003, 2008
Mac
Memory minimal 1 GB. Sebaiknya memory diatas 2 GB untuk kelancaran dan kenyaman waktu mengoperasikan MongoDB
Hardisk minimal yang kosong 2 GB
Spesifikasi komputer tidak diperuntuk untuk mesin server. Khusus untuk server harus menggunakan spesifikasi komputer yang terbaik.
MongoDB Server Database MongoDB mendukung banyak platform seperti Mac, Windows, Solaris, dan Linux baik platform 32-bit maupuan 64-bit. Sistem database MongoDB ini dapat diunduh melalui websitenya yaitu
http://www.mongodb.org/downloads
Unduh database MongoDB sesuai dengan platform yang dimiliki.
13 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Gambar 1.1 Website MongoDB untuk unduh aplikasi server
MongoDB juga menyediakan source code dari aplikasi database server ini. Apabila ada platform yang tidak disediakan instalasinya maka kita dapat memanfaatkan source code ini untuk dilakukan proses kompilasi sendiri pada platform yang tidak di support. Hal ini memungkinkan karena MongoDB dibangun menggunakan kode C++ yang berjalan pada lintas platform.
Pada buku ini penulis hanya membagi pengalaman bagaimana instalasi MongoDB pada platform Windows dan LinuxUbuntu.
Instalasi MongoDB Pada Platform Windows Pada platform Windows, MongoDB server dapat berjalan pada berbagai platform OS Windows meliputi
Windows XP
Windows Vista
Windows 7
Windows Server 2008
14 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Windows Server 2008 R2
Windows 8
Untuk proses instalasinya, ekstrak file instalasi dari hasil mengunduh ke folder tertentu misalkan c:\mongo dan selanjutnya kita membuat folder untuk datanya misalkan c:\data\db . Kalau kita perhatikan hasil ekstraksi , kita akan menjumpai file-file ini didalam folder (lihat gambar 1.2):
Mongod.exe merupakan database server
Mongo.exe merupakan administrative shell
Gambar 1.2 Hasil ekstrasi file MongoDB
Selanjutnya cara menjalankan database MongoDB servernya, kita cukup mengklik dua kali file Mongod.exe. Selanjutnya kita dapat menggunakan konsole dan memanggil shellnya yaitu mongo.exe. Selanjutnya kita dapat berteraksi dengan database MongoDB seperti pada gambar 1.3.
15 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Gambar 1.3. Interaksi shell MongoDB pada Windows
Kita dapat juga menjalankan MongoDB server sebagai Windows Service. Keuntungan menggunakan Windows Service adalah aplikasi database server ini berjalan dibelakang proses sehingga tidak perlu logon ke Windows untuk sekedar mengaktifkan servernya. Ini sangat cocok untuk platform Windows Server.
MongoDB mempunyai sintak script untuk menjalankan sebagai Windows Service dengan cara menjalankan script seperti dibawah ini.
mongod --install
mongod --service
mongod --remove
mongod --reinstall
Sebagai contoh ilustrasi dengan konfigurasi sebelumnya, kita jalankan konsole (CMD) dengan RunAs Administrator dan kemudian ketik sintak dibawah ini
mongod --logpath c:\mongo\log\log.log --logappend --dbpath c:\data\db --directoryperdb --install
Setelah sukses, kita panggil bagian Services dari Administrative Tools seperti yang terlihat pada gambar 1.4.
16 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Gambar 1.4 MongoDB server yang berjalan sebagai service pada Windows
Instalasi MongoDB Pada Platform Linux Ubuntu Sedangkan untuk instalasi MongoDB pada platform Linux, misalkan Ubuntu, mula-mula kita install GPG key sebagai berikut
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Kemudian menambahkan repository pada /etc/apt/sources.list sebagai berikut
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Kemudian lakukan update
sudo apt-get update
Terakhir, kita install mongodb
sudo apt-get install mongodb-10gen
Selanjutnya sistem akan mengunduh dan menginstalnya. Secara umum service sudah jalan langsung, jika tidak panggil script ini pada konsole
mongod
Sedangkan untuk mengaktifkan MongoDB shell nya dapat digunakan sintak
mongo
17 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
Sintak MongoDB Shell
Bab 3