SQL*Plus Pada Mac OSX

SQLPlus adalah aplikasi yang berfungsi sebagai antar muka (interface) Oracle Database. Dengan menggunakan SQLPlus user bisa menjalankan perintah-perintah SQL, mengeksekusi PL/SQL procedure, atau melakukan administrasi databasenya (menyalakan/mematikan database, membuat tablespace, membuat schema, dsb). SQLPlus termasuk dalam paket instalasi Oracle Database. Biasanya saya menggunakan perntah sqlplus langsung dari server databasenya.

Beberapa waktu lalu saya iseng mencari apakah ada caranya memasang SQLPlus pada Mac OSX. Ternyata saya bisa memasang paket SQLPlus-nya saja tanpa harus memasang Oracle Database. Aplikasi SQL*Plus tersedia di website Oracle ini : http://www.oracle.com/technetwork/topics/intel-macsoft–096467.html

Ada 2 berkas instalasi SQL*Plus yang perlu saya unduh dari web Oracle tadi :

ttirtawi@macbookpro:Downloads$ ll instantclient-*
-rw-r--r--@ 1 ttirtawi  staff    25M Apr 14 22:06 instantclient-basiclite-macos.x64-11.2.0.4.0.zip
-rw-r--r--@ 1 ttirtawi  staff   864K Apr 14 22:06 instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
ttirtawi@macbookpro:Downloads$

Ini catatan saya untuk memasang SQL*Plus pada Mac OSX :

  1. Saya siapkan direktori baru untuk tempat instalasi SQL*Plus
    ttirtawi@macbookpro:Downloads$ cd /usr/local/
    ttirtawi@macbookpro:local$ mkdir instantclient_11_2
    ttirtawi@macbookpro:local$ cd instantclient_11_2/
    
  2. Berikutnya saya ekstrak kedua berkas instalasi yang sudah diunduh tadi :
    ttirtawi@macbookpro:~$ cd /usr/local/instantclient_11_2/
    ttirtawi@macbookpro:instantclient_11_2$ sudo unzip /Users/ttirtawi/Downloads/instantclient-basiclite-macos.x64-11.2.0.4.0.zip
    Archive:  /Users/ttirtawi/Downloads/instantclient-basiclite-macos.x64-11.2.0.4.0.zip
      inflating: instantclient_11_2/BASIC_LITE_README 
      inflating: instantclient_11_2/adrci 
      inflating: instantclient_11_2/genezi 
      inflating: instantclient_11_2/libclntsh.dylib.11.1 
      inflating: instantclient_11_2/libnnz11.dylib 
      inflating: instantclient_11_2/libocci.dylib.11.1 
      inflating: instantclient_11_2/libociicus.dylib 
      inflating: instantclient_11_2/libocijdbc11.dylib 
      inflating: instantclient_11_2/ojdbc5.jar 
      inflating: instantclient_11_2/ojdbc6.jar 
      inflating: instantclient_11_2/uidrvci 
      inflating: instantclient_11_2/xstreams.jar 
    ttirtawi@macbookpro:instantclient_11_2$ sudo unzip /Users/ttirtawi/Downloads/instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
    Archive:  /Users/ttirtawi/Downloads/instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
      inflating: instantclient_11_2/SQLPLUS_README 
      inflating: instantclient_11_2/glogin.sql 
      inflating: instantclient_11_2/libsqlplus.dylib 
      inflating: instantclient_11_2/libsqlplusic.dylib 
      inflating: instantclient_11_2/sqlplus 
    ttirtawi@macbookpro:instantclient_11_2$
    
  3. Lalu saya perlu mengatur ulang berkas tnsnames.ora. Berkas tnsnames.ora berisi detail koneksi ke setiap remote database.
    ttirtawi@macbookpro:instantclient_11_2$ vi tnsnames.ora
    RSDOD =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.57.100)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      )
    ttirtawi@macbookpro:~$ 
    

    Pada contoh di atas saya tambahkan 1 koneksi ke database ORCL yang berada pada server dengan IP 192.168.57.100.

  4. Berikutnya saya perlu menambahkan direktori tempat instalasi SQL*Plus tadi ke dalam berkas .bash_profile.
    ttirtawi@macbookpro:~$ cat .bash_profile
    export LC_ALL=en_US.UTF-8 
    export LANG=en_US.UTF-8
    export DYLD_LIBRARY_PATH=/usr/local/instantclient_11_2
    export TNS_ADMIN=/usr/local/instantclient_11_2
    export PATH="${PATH}:/Users/ttirtawi/MacPorts/bin:/Users/ttirtawi/bin:$PATH:/usr/local/instantclient_11_2"
    [[ -s ~/.bashrc ]] && source ~/.bashrc
    ttirtawi@macbookpro:~$ 
    ttirtawi@macbookpro:~$ 
    
  5. Sekarang saya bisa tes koneksi ke database tadi :
    ttirtawi@macbookpro:~$ sqlplus orauser/orauser@RSDOD
    
    SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 9 22:14:12 2014
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> show parameter db_name;
    
    NAME                         TYPE      VALUE
    ------------------------------------ ----------- ------------------------------
    db_name                     string      orcl
    SQL>
    

Kira-kira begitu langkah-langkah instalasi SQL*Plus pada MacOSX. Dengan begitu sekarang saya bisa langsung mengakses database tanpa perlu login dulu ke server databasenya.

Mengubah Huruf Besar/Kecil Pada VI

Ini adalah catatan singkat saya tentang cara mengubah huruf besar/huruf kecil dengan menggunakan teks editor vi. Misalnya saya punya teks tampilan di gambar di bawah ini. Semua teksnya menggunakan huruf besar :

Untuk mengubah semua teks dalam sebuah dokumen menjadi huruf kecil, saya bisa menggunakan perintah :

:%s/.*/\L&/

\L berarti lower case (huruf kecil). Dengan perintah tersebut, vi akan segera mengubah semua teks menjadi huruf kecil seperti tampak pada gambar di bawah ini :

Sebaliknya bila saya ingin mengubah semua teks menjadi huruf besar, maka saya bisa gunakan perintah :

:%s/.*/\U&/

\U berarti upper case (huruf kecil). Dengan perintah tersebut, vi akan segera mengubah semua teks menjadi huruf besar seperti tampak pada gambar di bawah ini :

Dua perintah tadi bisa digunakan pada vi maupun vim (versi yang lebih canggih dari vi).

SSH Reverse Proxy

VirtualBox menyediakan beberapa tipe network adapter yang bisa dipakai oleh setiap Virtual Machinenya. Salah satu jenis network adapter yang tersedia adalah NAT. Secara default, VM yang menggunakan NAT network adapter dan VM akan otomatis mendapatkan IP 10.0.2.15 (tentu bila VM diset menggunakan DHCP). Dengan IP NAT ini, VM bisa mengakses jaringan lokal & juga Internet melalui gateway IP 10.0.2.2. Akan tetapi kelemahan sistem NAT ini adalah, Host tidak bisa mengakses VM tersebut secara langsung. Misalnya pada Macbook saya punya VM Linux (hostname = svn). Meskipun VM tersebut memiliki SSH Server, saya tidak bisa mengakses SSH server tersebut dari Terminal-nya Mac.

Salah satu alternatif cara yang bisa saya gunakan untuk mengakses Virtual Machine yang menggunakan NAT Adapter adalah dengan Reverse SSH.

Dari dalam VM saya lakukan SSH ke Host dengan perintah berikut ini :

[oracle@svn ~]$ ssh -R 8080:localhost:22 ttirtawi@10.0.2.2
Password:
Last login: Mon Oct 13 11:49:32 2014 from localhost
ttirtawi@macbookpro:~$ 

Opsi -R 8080:localhost:22 dapat dibaca seperti ini : buatlah sebuah “tunnel” dari port 8080 milik Host (10.0.2.2) ke port 22 milik VM ‘SVN’. Dengan adanya tunnel tersebut setiap kali Host membuka koneksi SSH ke port 8080 miliknya sendiri, request SSH tersebut akan diteruskan ke port 22 milik VM ‘SVN’ tersebut. Pemilihan port 8080 sifatnya bebas, selama port tersebut aktif digunakan oleh Host. Sementara 22 adalah port SSH server milik VM.

Nah dari Host, saya tinggal lakukan SSH ke localhost port 8080 seperti contoh berikut ini :

ttirtawi@macbookpro:~$ ssh -p 8080 oracle@localhost
oracle@localhost's password: 
Last login: Mon Oct 13 03:49:03 2014 from localhost
[oracle@svn ~]$ 
[oracle@svn ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:49:df:4e brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
    inet6 fe80::a00:27ff:fe49:df4e/64 scope link 
       valid_lft forever preferred_lft forever
[oracle@svn ~]$ 
[oracle@svn ~]$ hostname
svn
[oracle@svn ~]$ 

Otomatis saya akan langsung terhubung ke VM tersebut. Ini tangkapan layar dari langkah-langkah tadi :

Upgrade SSD Macbook Air

Macbook Air saya cuma punya SSD berukuran 128GB. Ruang sebesar 128GB ini hampir seluruhnya terisi dengan data-data pekerjaan saya. Praktis tidak ada berkas musik, foto, atau film yang bisa saya simpan di dalam Macbook Air. Bahkan untuk menyimpan berkas virtual harddisk-nya VirtualBox, saya cuma bisa menyimpan 1 berkas VDI saja. Akibatnya, saya jadi kurang leluasa bekerja dengan beberapa virtual machine. Saya memutuskan untuk melakukan upgrade media penyimpanan SSD ini. Setahu saya agak sulit menemukan SSD untuk Macbook Air di Jakarta.

Dari pengalaman upgrade SSD Mac Mini, saya tahu kalau web Other World Computing menjual SSD untuk Macbook Air. Dulu saya membeli OWC Data Doubler untuk tambahan harddisk Mac Mini. OWC menjual berbagai macam komponen Mac termasuk SSD untuk Macbook Air. Setelah browsing-browsing sebentar, saya pilih SSD OWC 480GB Aura. SSD berukuran 480GB ini dibanderol dengan harga USD$409 . Harga ini sudah termasuk sebuah casing untuk SSD asli Macbook Air (Envoy USB 2.0/3.0 Enclosure).

Dulu waktu membeli OWC Data Doubler, saya menggunakan jasa pengiriman US Postal Service. Kali ini saya agak ragu untuk menggunakan jasa pengiriman yang sama mengingat harga SSD tadi cukup mahal. Karena khawatir SSD pesanan saya akan hilang saat proses pengiriman, saya memilih jasa pengiriman DHL. Ongkos pengiriman dengan DHL sebesar $24.11 (sekitar Rp270.000,- dengan kurs Rp11500,-). Jadi total biaya yang harus saya bayar ke OWC adalah USD$433.11.

Sebenarnya saya agak ragu menggunakan jasa DHL karena beberapa cerita di Internet tentang aneka pungutan yang dibebankan pada penerima paket. Beberapa cerita tentang bagaimana paket ditahan oleh pihak jasa pengiriman sebelum penerima membayar sejumlah tagihan. Tapi saya nekat saja memilih DHL. Saya siap dengan resiko membayar pajak atau pungutan lain-lainnya. DHL menyediakan sistem tracking online, fasilitas ini memudahkan saya mengetahui sudah sampai mana pengiriman paket saya dari Amerika. Ternyata paket ini sempat singgah ke Hongkong dan Taiwan terlebih dulu sebelum akhirnya sampai di Indonesia. Paket saya diperkirakan sampai pada tanggal 4 Agustus. Ternyata meleset 1 hari, saya baru menerima paketnya hari Selasa 5 Agustus 2014.

Saya sempat heran juga saat menerima paket, DHL tidak memberikan tagihan apa-apa. Ternyata keesokan harinya petugas DHL yang sama datang lagi membawa lembar invoice bernilai total Rp1.460.000,-. Saya sedikit curiga mengapa tagihan pajak ini datang terlambat, dalam hati saya mempertanyakan keaslian tagihan itu. Petugas DHL tersebut beralasan tagihan telat karena kemarin printer di kantor bermasalah. Alasan macam ini makin membuat saya curiga. Saya minta si bapak kembali lagi esok harinya. Saya ingin crosscheck dulu keaslian tagihan pajak DHL tersebut. Seorang teman yang pernah punya pengalaman buruk dengan DHL menyarankan saya untuk tidak membayar tagihan tersebut. Tapi karena komitmen awal untuk siap dengan aneka tagihan DHL, singkat cerita akhirnya saya bayar lunas tagihan tersebut. Saya sempat telepon kantor DHL Jakarta untuk meminta perincian pajak. Tapi sampai tulisan ini dibuat DHL belum mengirimkan email perincian pajak yang saya minta.

Proses Pasang SSD

Kemasan paket SSD OWC 480GB Aura terlihat seperti berikut ini :

Dalam paket ini disertakan juga 2 buah obeng Torx.

SSDnya sendiri dibungkus lagi dalam kemasan plastik kaku seperti ini :

Bentuk SSD untuk Macbook sekilas mirip seperti memori komputer desktop.

OWC menyediakan petunjuk lengkap cara memasang SSD Macbook Air. Saya tonton dulu video instruksinya dari URL ini. Pertama yang harus dilakukan adalah melepas tutup belakang Macbook Air. Ada 10 sekrup yang memegang tutup belakang ini ke body Macbook Air. Ini tampilan belakang Macbook Air setelah saya melepas tutupnya.

Mengikuti instruksi yang diberikan, selanjutnya saya melepas konektor batere. Konektor ini bentuknya seperti IC dan ukurannya cukup kecil. Untung saya masih menyimpan plastik pencongkel yang dulu saya dapat saat membeli OWC Data Doubler.

SSD bawaan Macbook Air hanya dikencangkan dengan 1 sekrup saja. Setelah sekrup dilepas, SSD sangat mudah dilepaskan. Cukup angkat ujung kanannya sedikit lalu menariknya keluar (pada foto terlihat ke arah kanan)

Lalu saya segera pasang OWC Aura 480GB ke posisi yang sama.

Ternyata SSD ini ukurannya lebih panjang, bagian ujung SSD tidak bisa masuk ke ceruk tempat SSD. Ada sedikit kelebihan plastik PCBnya (bagian yang berwarna kekuningan). Saya sempat kuatir karena bukan hal yang mudah menukar SSD ini ke penjualnya.

Ini tampilan lebih dekat hasil cropping foto :

Saya putuskan untuk mengamplas saja bagian ujung plastik SSD tersebut. Sayangnya saya tidak menemukan kertas amplas. Nekat saja saya ambil pisau cutter untuk mengikis sedikit-sedikit bagian plastik PCB tersebut. Perlu beberapa kali percobaan sampai akhirnya SSD tadi bisa ditempatkan dengan sempurna.

Proses Restore Data

Setelah SSD terpasang, saya segera boot Macbook Air ini dengan USB berisi OSX Maverick. Saya bukan ingin melakukan fresh install tapi ingin melakukan restore dari Time Machine. Setelah sukses boot dari USB, saya buka aplikasi Disk Utility. SSD OWC tadi terdeteksi dengan baik.

Segera saya buat 1 partisi baru dengan filesystem jenis Mac OS Extended (journaled). Saya beri nama volume ini “MacOSX”.

Setelah menutup aplikasi Disk Utility saya kembali ke menu utama, saya pilih menu Restore :

Sebelumnya saya sudah memasangkan USB External Disk tempat saya menaruh backup Time Machine. Harddisk eksternal tersebut saya namai TIMEMACHINE_MBA.

Saya tinggal pilih backup file terakhir yang ada dalam harddisk eksternal tadi.

Lalu saya diminta untuk menentukan tujuan restore. Saya pilih harddisk dengan nama MacOSX.

Berikutnya muncul peringatan bahwa proses restore akan menghapus semua data yang ada dalam target harddisk.

Saya hitung proses restore ini berlangsung kurang lebih 1 jam.

Setelah proses restore selesai saya bisa langsung boot Macbook Air ini seperti biasanya dari SSD. Saat saya ukur kecepatan baca tulis SSD baru ini dengan aplikasi BlackMagic, saya mendapati hasil seperti ini :

Hasilnya masih kalah dengan kecepatan baca tulis SSD asli bawaan Macbook Air :

Tapi saat dipakai sehari-hari saya belum menemukan perbedaan & penurunan performa SSD baru ini. Yang jelas saya sekarang bisa leluasa menyimpan banyak file dengan SSD besar ini.

Enclosure

SSD lama bawaan Macbook Air saya pasangkan pada enclosure Envoy. Enclosure ini menyulap SSD 128GB tadi menjadi harddisk eksternal dengan tampilan yang keren. Enclosure-nya terbuat dari bahan alumunium, bahan & bentuknya pun senada dengan body Macbook Air.

Di dalamnya ada konektor SSD tempat saya meletakkan SSD bawaan tadi.

Enclosure ini dilengkapi dengan port USB 3, jadi sudah cukup kencang untuk dipakai mentransfer data ke Mac.

Saat dihubungkan dengan Mac, ada lampu indikator berwarna biru yang menyala. Bila sedang terjadi proses transfer data, lampu indikator tersebut akan terus berkedip.

Saya beberapa kali mengalami SSD eksternal ini tidak dikenali oleh komputer (baik itu Mac maupun PC). Sepertinya konektor bagian dalam enclosure ini mudah tergoyang. Biasanya saya coba ketuk-ketukan enclosure ini di bagian tempat konektor SSD berada (dengan harapan SSD & konektornya kembali ke posisi yang benar). Dan cara bodoh-bodohan tadi biasanya berhasil, setelah diketuk-ketuk SSD bisa dibaca lagi oleh komputer.

Sekilas Tentang VirtualBox Shared Folder

VirtualBox Shared Folder adalah salah satu fitur VirtualBox yang memungkinkan kita berbagi data antara komputer host dengan setiap VirtualBox guest (virtual machine). Istilah komputer host & guest pernah saya tulis di tulisan sebelumya tentang virtualisasi. Syarat untuk bisa menggunakan VirtualBox Shared Folder ini adalah guest OS harus sudah dilengkapi dengan VirtualBox Guest Addition driver.

Tulisan ini adalah dokumentasi pribadi saya tentang langkah menggunakan VirtualBox Shared Folder (VBox SF) di Mac OSX 10.9. MacMini menjadi komputer sehari-hari saya untuk urusan pekerjaan & pribadi. Semua data saya ada di home directory-nya MacMini. Ada kalanya saya perlu menggunakan VirtualBox untuk menjalankan Linux (Ubuntu). Misalnya saat saya ingin terhubung dengan jaringan VPN kantor tanpa perlu menggangu koneksi LAN & aktivitas internet saya lainnya. Saat menggunakan virtual machine seperti ini, saya perlu juga mengakses data-data saya yang ada di Mac. Di sinilah saya perlu menggunakan VBox SF supaya Ubuntu saya bisa mengakses semua data yang ada di Mac. Ini langkah-langkah yang saya lakukan untuk mengijinkan Ubuntu mengakses folder Mac saya : Continue reading