Archive for December, 2008
Backup dan Restore Schema Oracle Menggunakan exp dan imp
Dec 31st
Oracle menyediakan perintah untuk membackup schema dan merestore schema hasil backup tersebut. Kedua perintah tersebut yaitu exp untuk membackup schema dan imp untuk merestore schema hasil backup sebelumnya. Kita coba dengan backup terlebih dahulu. Pertama kita buat direktori backup untuk menampung hasil backup schema yang kita lakukan, kemudian kita gunakan direktori tersebut sebagai base direktori pekerjaan kita:
oracle@NeuronServer:~> mkdir schema-backup oracle@NeuronServer:~> cd schema-backup/ oracle@NeuronServer:~/schema-backup>
Misalnya kita ingin membackup schema train yang memiliki password train yang ada di server oracle dengan service id neuron, file backup schema-nya kita simpan dengan nama train.dmp. Penggunaan perintah exp-nya seperti dibawah ini:
oracle@NeuronServer:~/schema-backup> exp train/train@neuron file=train.dmp Export: Release 10.2.0.1.0 - Production on Fri Jan 2 16:17:32 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Export done in US7ASCII character set and AL16UTF16 NCHAR character set server uses WE8ISO8859P1 character set (possible charset conversion) . exporting pre-schema procedural objects and actions . exporting foreign function library names for user TRAIN . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user TRAIN About to export TRAIN's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export TRAIN's tables via Conventional Path ... . . exporting table TRAIN 2 rows More >
Me-Resize ukuran Temporary Tablespace
Dec 29th
Suatu ketika saya kaget melihat ukuran temporary tablespace saya yang mencapai 2 GB, kenapa bisa sebesar ini, ternyata setelah di lihat memang di konfigurasinya autoextends, ya sudah akhirnya saya mencoba untuk meresize ukuran tersebut.
berikut kronologi melakukan resize temp tablesapce :
langkah pertama yang saya lakukan adalah :
SQL> ALTER DATABASE tempfile '/app/oradata/NEURON/temp01.dbf' resize 250M; ALTER DATABASE tempfile '/app/oradata/NEURON/temp01.dbf' resize 250M * ERROR AT line 1: ORA-03297: FILE contains used data beyond requested RESIZE VALUE
ooo , ternyata error berarti tidak bisa menggunakan cara ini, cara berikutnya adalah Drop dan Create ulang tablesapce temp
berikut langkah-langkahnya :
SQL> DROP TABLESPACE temp; TABLESPACE dropped.
Create ulang temp tablespace
SQL> CREATE TEMPORARY TABLESPACE TEMP 2 TEMPFILE '/app/oradata/NEURON/temp01.dbf' SIZE 500M REUSE 3 AUTOEXTEND ON NEXT 100M MAXSIZE unlimited 4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; TABLESPACE created.
perintah diatas akan berhasil jika, oracle yang kita gunakan adalah oracle 8i atau oracle 9i dengan temp tablespace bukan default temporary tablesapace.
SQL> DROP TABLESPACE temp; DROP TABLESPACE temp * ERROR AT line 1: ORA-12906: cannot DROP DEFAULT TEMPORARY TABLESPACE
jika kita ingin merubah ukuran temp tablespace yang menjadi default temp tablespace kita harus meggunakan menggunakan cara berikut :
misalkan tablespace yang akan dirubah adalah temp dan merupakan default tablesapce, langkah pertama kita harus membuat tablespace baru misal temp2, kemudian merubah default tablespace dari temp menjadi temp2, kita rubah kembali default tablespace ke temp dan hapus temp2
SQL> CREATE TEMPORARY TABLESPACE temp2 2 TEMPFILE '/app/oradata/NEURON/temp2_01.dbf' SIZE 5M REUSE 3 AUTOEXTEND ON NEXT 1M MAXSIZE unlimited 4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; More >
Call webMethods Flow Service with Java
Dec 29th
Berikut adalah contoh pemanggilan FLow Service di webMethods dari java. Asumsi dari environment yang digunakan adalah sebagai berikut : Service yang dipanggil memiliki input nomor telepon dan output min dan iccid
berikut code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
package webmethods; import com.wm.app.b2b.client.*; import com.wm.data.IData; import com.wm.data.IDataFactory; import com.wm.data.IDataCursor; import com.wm.data.IDataUtil; /** * * @author gatotkaca */ public class Main { /** Creates a new instance of Main */ public Main() { String server = "WMSERVER:WMPORT"; String user = "WMUSER"; String password = "WMPASSWORD"; String mdn = "XXXXXXX"; IData idata = IDataFactory.create(); IDataCursor idc = idata.getCursor(); IDataUtil.put(idc, "mdn", mdn); idc.destroy(); Context ctx = new Context(); try { ctx.connect(server, user, password); idata = ctx.invoke("MDNQuery", "QueryMDN", idata); idc = idata.getCursor(); String statusCode = IDataUtil.getString(idc,"statusCode"); String fullStatusMsg = IDataUtil.getString(idc,"fullStatusMsg"); String min = IDataUtil.getString(idc,"min"); String iccid= IDataUtil.getString(idc,"iccid"); System.out.println("Status Code = "+statusCode); System.out.println("fullStatusMsg = "+fullStatusMsg); System.out.println("MDN = "+mdn); System.out.println("MIN = "+min); System.out.println("ICCID = "+iccid); } catch (ServiceException ex) { ex.printStackTrace(); } ctx.cleanUpConnection(); } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Main m = new Main(); } }
package com.wm.* ada di client.jar dan bisa dicopy dari library di webMethods dan tempatkan di classpath dari program anda. silahkan mencoba komentar, saran sangat diharapkan.
More >Mengetahui Ukuran File dan Direktori
Dec 29th
Kita bisa menggunakan perintah du untuk mengetahui ukuran sebuah file seperti ini:
alam@NeuronServer:~> du linux-2.6.28.tar.bz2 51488 linux-2.6.28.tar.bz2
Nilai yang ditampilkan secara default dalam ukuran Kilobyte. Berarti ukuran source kernel diatas adalah 51488 Kilobyte. du menyediakan opsi -h agar informasi yang ditampilkan lebih mudah dipahami:
alam@NeuronServer:~> du -h linux-2.6.28.tar.bz2 51M linux-2.6.28.tar.bz2
Bagaimana apabila kita ingin mengetahui ukuran sebuah direktori? Penggunaannya seperti tadi:
alam@NeuronServer:~> du -h linux-2.6.28/ 40K linux-2.6.28/firmware/ttusb-budget 188K linux-2.6.28/firmware/keyspan 264K linux-2.6.28/firmware/emi26 144K linux-2.6.28/firmware/edgeport 16K linux-2.6.28/firmware/ess ... 92K linux-2.6.28/kernel/irq 172K linux-2.6.28/kernel/power 280K linux-2.6.28/kernel/trace 3.2M linux-2.6.28/kernel 476K linux-2.6.28/block 344M linux-2.6.28/
Perintah diatas kurang efektif karena menampilkan informasi ukuran semua file yang ada di direktori linux-2.6.28, padahal yang kita butuhkan hanya ukuran direktori linux-2.6.28 itu sendiri yang ditempatkan di baris paling akhir. Untuk menyiasatinya lempar output dari perintah du ke perintah tail yang hanya akan menampilkan baris terakhir perintah du tersebut:
alam@NeuronServer:~> du -h linux-2.6.28/ | tail -1 344M linux-2.6.28/
Opsi -1 dari tail untuk menentukan baris ke berapa yang akan ditampilkan. Defaultnya 10 baris terakhir.
Semoga bermanfaat and have a lot of fun!
Membuat Application Control Script
Dec 29th
Sekitar seminggu yang lalu saya ditugaskan untuk membuat sebuah skrip yang digunakan untuk mengontrol service di Linux. Skrip tersebut harus bisa menjalankan proses server apabila servernya belum dijalankan, mampu memberhentikan service tersebut dan juga merestart server, baik dari keadaan sudah dijalankan atau belum. Server executablenya disini merupakan aplikasi java dalam bentuk java archive.
Work FlowApabila user menjalankan skrip tersebut, skripnya akan mengecek apakah user memberikan parameter yang dibutuhkan, yaitu start, restart atau stop. Apabila user memasukkan parameter yang tidak dikenali, skrip akan menampilkan pesan yang memberitahukan bahwa parameter tidak dikenal. Apabila user memberikan parameter start skrip akan memeriksa apakah file server.pid yang berisi pid dari aplikasi tersebut ada atau tidak. Apabila ada skrip akan menampilkan pesan bahwa aplikasi tersebut sudah jalan dengan pid yang dambil dari file server.pid. Apabila belum skrip akan menjalankan aplikasi tersebut dan menyimpan pid dari process itu ke file server.pid. Bila parameter yang diberikan parameter stop maka skrip akan memeriksa apakah aplikasinya memang berjalan dengan mengecek file server.pid. Apabila ada skrip akan memberhentikan process tersebut dengan bantuan pid yang diambil dari file server.pid, dan setelah process-nya berhenti file server.pid tersebut akan dihapus. Apabila file server.pid tidak ditemukan maka skrip akan menampilkan pesan bahwa aplikasi yang dimaksud tidak berjalan. Parameter restart akan More >