Instalasi Oracle TimesTen In-Memory Database


Inti dari komputer adalah CPU (prosesor) yang bekerja mengolah data.   Prosesor hanya ‘seorang’ pemikir yang pandai berhitung (bayangkan kalkulator!), namun ia tidak bisa mengingat data.  Oleh sebab itu, data perlu ditampung di cache CPU, memori, dan hard drive. Cache CPU terintegrasi di dalam fisik prosesor sehingga merupakan memory paling cepat tetapi terbatas (misalnya karena ukuran prosesor).   Biasanya pada spesifikasi prosesor akan tercantum besarnya cache, seperti:  Intel Core i3-3220 3M Cache, 3.30 GHz.   Bila data tidak cukup disimpan di cache, maka CPU akan meletakkannya di main memory.  Bentuk main memory adalah DRAM yang bersifat volatile (data akan hilang bila tidak dialiri listrik).   Main memory dapat dibeli terpisah dan dipasang pada slot motherboard yang kosong.   Saat ini, ukuran antara 2 hingga 4 GB adalah jumlah main memory di komputer desktop yang wajar dan harganya terjangkau.   Motherboard dengan chipset pasaran dapat mendukung ukuran main memory hingga maksimal 32 GB (batas tergantung pada chipset dan rancangan motherboard).   Bila terdapat data yang lebih besar ukuran main memory, maka data tersebut perlu disimpan di hard disk drive (HDD).   Ukuran HDD biasanya jauh lebih besar dibanding ukuran main memory, misalnya 120 GB adalah ukuran yang wajar untuk HDD di komputer desktop.

Kesimpulannya: cache CPU paling cepat, main memory lebih lambat dan hard drive yang paling lambat!   Tapi seberapa lambat? Sebuah main memory akan lebih lambat 10 kali lipat dibandingkan dengan cache CPU.   Tapi sebuah hard drive akan lebih lambat 1.000 kali lipat dibandingkan dengan main memory!!   Ini adalah selisih yang sangat jauh.   Jangan lupa juga bahwa main memory dapat diakses dimana saja secara cepat (random access), sementara piringan hard disk harus berputar secara berurut menuju lokasi tujuan (sequential).

Pada aplikasi enterprise, jumlah data yang ditangani database mungkin akan mencapai di atas 2 GB.   Akan tetapi pada aplikasi yang lebih kecil, jumlah data untuk periode hingga empat tahun bisa jadi hanya berkisar antara 500 MB.   Saat melakukan backup database atau migrasi database, saya lebih sering lagi menemukan hasil dump MySQL yang berukuran lebih kecil.   Jadi muncul sebuah pertanyaan: bila seluruh data tersebut dapat ditampung di memory, mengapa tidak meletakkannya di memory dari awal?   Ide ini mungkin terdengar konyol bila diungkapkan sepuluh tahun silam saat ukuran memory PC baru menembus batas 1 GB.  Tapi dilihat dari perkembangan hardware zaman sekarang, baik kelas desktop maupun kelas enterprise, ini bisa dipertimbangkan🙂

Oracle TimesTen In-Memory Database adalah salah satu contoh produk database yang dioptimalkan untuk penggunaan in-memory. TimesTen tetap mendukung SQL dan memiliki driver JDBC yang dapat dipakai di Java.   Satu hal yang harus diingat adalah Oracle TimesTen bukan produk gratis atau open-source.  Developer boleh men-download full version secara bebas untuk keperluan percobaan atau pengembangan. Akan tetapi saat aplikasi dipakai, perusahan harus membayar biaya lisensi sebesar US$ 23.000 per prosesor (berdasarkan daftar harga global Oracle).

Langkah pertama yang saya lakukan untuk memakai Oracle TimesTen adalah men-downloadnya di http://www.oracle.com/technetwork/products/timesten/downloads/index.html.   Jangan lupa untuk membuat account (bebas biaya) di Oracle bila belum memiliki akun.   Saya akan akan men-download TimesTen versi 11.2.2.5.0 for Windows 32-bit karena saya akan mencobanya di sebuah sistem operasi Windows 7 32-bit (batas memori yang dapat diakses oleh sistem operasi 32-bit adalah 4 GB!).   Setelah selesai, saya men-extract file zip, men-klik kanan file setup.exe dan memilih Run as administrator.

Pada dialog Choose Installation Folder, saya memakai direktori default yaitu C:\TimesTen\tt1122_32 dan men-klik tombol OK.

Pada langkah berikutnya, saya diminta untuk memilih komponen yang akan di-install.   Saya akan memakai default yang terpilih, kemudian men-klik tombol Next.

Berikutnya, saya memilih lokasi direktori yang dipakai untuk instalasi Demo DataStore.   Ini adalah database bawaan yang dapat dipakai untuk percobaan.   Setelah itu, saya men-klik tombol Next.

Pada dialog berikutnya, saya diminta untuk mengisi nilai environment variables TNS_ADMIN seperti yang terlihat pada gambar berikut ini:

Mengisi nilai TNSADMIN

Mengisi nilai TNS_ADMIN

Nilai ini dibutuhkan bila ingin memakai TimesTen sebagai Oracle In-Memory Database Cache yang bekerja sebagai cache dari Oracle Database.   Aplikasi akan membaca dan menulis dari/ke cache group (kumpulan database TimesTen) yang selanjutnya berkomunikasi dengan Oracle Database melalui cache agent.   Cache agent akan mengisi database TimesTen berdasarkan Oracle Database secara asynchronous.   Karena saya tidak ingin memakai TimesTen sebagai cache dari Oracle Database, maka saya akan mengosongkan isi TNS_ADMIN dan langsung men-klik tombol Next.

Berikutnya, saya menentukan nama shorcut di Start menu dan men-klik tombol Next.

Pada langkah berikutnya, saya dimintai konfirmasi mengenai keamanan seperti yang terlihat pada gambar berikut ini:

Pengaturan Keamanan

Pengaturan Keamanan

Karena saya berada di komputer developer dimana saya jarang sekali harus berpindah user, maka saya tidak ingin membatasi akses hanya pada user yang merupakan anggota dari group TimesTen.   Oleh karena itu, saya memberi tanda centang pada Enable.   Hal ini bisa berbahaya bila dilakukan pada komputer production nanti karena siapa saja user yang login dapat membaca dan menulis ke database TimesTen!   Setelah ini, saya men-klik tombol Next.

Pada langkah berikutnya, saya memberi tanda centang pada Enable PL/SQL untuk mengaktifkan dukungan PL/SQL pada database TimesTen.   PL/SQL adalah bahasa pemograman untuk stored procedure Oracle Database.   Ini adalah bahasa pemograman yang saya ikutin mata kuliahnya hingga dua semester semasa di perkuliahan dulu, tetapi paling jarang saya pakai sejak berada disini :)   Btw, saya mengaktifkan dukungan PL/SQL di TimesTen semata-mata karena alasan nostalgia.   Bila tidak dibutuhkan, maka tanda centang dapat dihilangkan sehingga ukuran library TimesTen akan lebih kecil.   Setelah ini, saya men-klik tombol Next.

Pada langkah berikutnya, saya membiarkan tanda centang pada Register TimesTen environment variables sehingga environment variables seperti PATH, LIB dan INCLUDE akan diatur secara global.   Ini akan mempermudah saya yang sering bekerja di Command Prompt. Setelah ini, saya men-klik tombol Next.

Pada langkah berikutnya, installer TimesTen menawarkan untuk menambahkan driver JDBC ke environment variable CLASSPATH seperti yang terlihat pada gambar berikut ini:

Menambahkan lokasi JDBC ke CLASSPATH

Menambahkan lokasi JDBC ke CLASSPATH

Saya akan memilih JDK 6 karena ini pilihan yang paling mendekati versi Java yang saya pakai.   Pengaturan ini akan menambah lokasi driver JDBC pada environment variable CLASSPATH.   Karena driver JDBC TimesTen pada dasarnya adalah JDBC/ODBC bridge yang berlaku untuk komputer tersebut, maka lebih baik untuk tidak mendistribusikan driver JDBC pada aplikasi.   Walaupun demikian, ketergantungan pada CLASSPATH dapat menimbulkan kebingungan bila aplikasi dijalankan pada komputer lain yang environment variable CLASSPATH-nya tidak berisi lokasi JDBC TimesTen.   Setelah ini, saya men-klik tombol Next.

Instalasi TimesTen akan menampilkan sebuah review.   Saya men-klik tombol Next untuk lanjut ke langkah berikutnya.   Proses instalasi akan segera dimulai.   Setelah selesai, saya dapat men-klik tombol Finish untuk mengakhiri proses instalasi.

Untuk menguji apakah instalasi berlangsung dengan baik, saya membuka Control Panel, Administrative Tools dan Services. Saya memastikan bahwa terdapat sebuah service dengan nama TimesTen Data Manager 11.2.2 seperti yang terlihat pada gambar di bawah ini:

Memeriksa Service TimesTen Data Manager

Memeriksa Service TimesTen Data Manager

Karena ini adalah komputer developer untuk percobaan, saya bisa mengganti Startup Type dari Automatic (dijalankan secara otomatis setiap kali komputer dinyalakan) menjadi Manual (menjalankan dan mematikan services saat dibutuhkan).

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: