Kemarin ( 10 Juni 2009) ada yang nulis lowongan di bagian komentar artikel Gaji DBA Oracle di Indonesia. Siapa tahu anda cocok, silahkan hubungi contact person-nya. Berikut ini isinya:
Dear All…
Saat ini kami sedang membutuhkan :
Database Oracle Specialist
Persyaratan :
- Pendidikan min. S1 Teknik Komputer/Informatika/ Manajemen Informatika
- Pengalaman minimal 2 tahun di bidang Oracle
- Memiliki kemampuan untuk melakukan instalasi Oracle & performance tuning
- Menguasai pemrograman dengan menggunakan database : PL/SQL,Oracle, Access
- Mampu bekerja secara mandiri dengan sedikit pengawasan
- Mampu bekerja dalam suatu team work
Bila berminat silahkan kirimkan CV anda ke: recruitment@artajasa.co.id
Tulis subjectnya : DBA
Tks
Salah satu feature Oracle 10g (ke atas) yang jadi andalan saya adalah Oracle Flashback Technology. Dengan Oracle Flashback, kita bisa me-restore (recovery) data dengan sangat mudah.
Sebagai contoh, ketika kita secara tidak sengaja menghapus sebagian record di file Excel, untuk mengembalikannya, kita cukup klik tombol UNDO. Kita klik UNDO sekian kali untuk kembali ke kondisi data yang kita inginkan. Ketika kita tidak sengaka menghapus (drop/delete) file, untuk mengembalikan file tersebut kita cukup me-restore-nya dari recycle bin.
Nah, sederhanya, Oracle Flashback Technology menyediakan feature seperi UNDO dan RECYCLE BIN di Windows. Enak, bukan?
Macam-macam Oracle flashback:
1. Oracle Flashback Query.
Berguna untuk melihat (query) isi tabel di masa lalu. Misalkan siang ini kita baru saja men-delete atau update record. Karena terkanjur commit, kita tidak bisa melakukan rollback. Dengan Oracle Flashback Query, kita bisa melihat record (isi tabel) tadi pagi sebelum kita delete atau update. Berikut ini contoh command-nya (Catatan: nama tabel yang saya pakai untuk contoh di artikel ini adalah TB):
SQL> SELECT * FROM TB AS OF TIMESTAMP
TO_TIMESTAMP('2009-06-03 06:08:03', 'yyyy-mm-dd hh24:mi:ss');
SQL> SELECT * FROM TB AS OF TIMESTAMP
TO_TIMESTAMP('2009-06-03 06:08:03', 'yyyy-mm-dd hh24:mi:ss') where nomor=3;
Keterbatasan:
- Karena feature ini memanfaatkan UNDO segment di UNDO tablespace, maka size dari UNDO tablespace sangat mempengaruhi sampai berapa lama masa lalu yang bisa dikembalikan lagi. Semakin besar UNDO tablespace maka semakin besar (lama) masa lalu yang bisa dikembalikan.Bila data yang diquery sudah tidak ada lagi di UNDO tablespace maka akan muncul error berikut:
ORA-08180: no snapshot found based on specified time
- Batas yang bisa query adalah setelah operasi DDL (data definition language) terakhir. Contoh DDL adalah mengubah definisi tabel (alter table, add column, alter column, truncate, dll). Bila data yang di-query ada pada waktu sebelum DDL terakhir (last DDL) maka akan muncul error berikut:
ORA-01466: unable to read data - table definition has changed
More…
Sudah lebih dua bulan saya tidak menulis di blog ini. Tulisan terakhir adalah 17 Oktober 2008. Selama itu pula saya tidak menjawab pertanyaan teman-teman pembaca sekalian; baik yang bertanya lewat komentar di tiap tulisan, forum tanya jawab, ataupun lewat email. Saya mohon maaf yang sebesar-besarnya bila para penanya menunggu-nunggu jawaban dari saya.
Untuk mengobati kekurangpuasan rekan-rekan pembaca, saya telah mengkompilasi tulisan-tulisan di blog ini ke dalam e-book. Silahkan download di Buku Pegangan Oracle DBA.pdf, gratis … tis… tis… Namun anda mesti register dulu di milis indo-oracle.
Saya membuka lebar-lebar pertanyaan, kritik, saran, atau pun complaint terhadap e-book ini. Bahkan sayapun membuka kesempatan bagi yang mau memberikan donasinya. Silahkan transfer ke Rek BCA no 7610329271 atas nama Rohmad
Salam,
Rohmad
Berikut ini cara mengetahui informasi seputar konfigurasi database Oracle yang kita maintain. Informasi ini sangat penting diketahui, terutama bagi DBA yang databasenya di-install/create/configure oleh orang (DBA) lain.
Informasi tentang environment Operating System (OS)
Salah satu informasi yang paling penting adalah ORACLE_HOME, yaitu directory di mana instalasi Oracle ditaruh. Lihat environment OS di sini:
- Di Windows, lihat di registry My Computer --> HKEY_LOCAL_MACHINE --> SOFTWARE --> ORACLE
- Di Unix, lihat di user profile dari database owner. Untuk shell sh/ksh/bash, user profile ada di file .profile. Untuk shell csh/tcsh, user profile ada di file .login
Informasi parameter Instance (init file)
Lokasinya ada di $ORACLE_HOME/dbs untuk OS Unix, atau %ORACLE_HOME%\database untuk Windows. Lebih detail silahkan lihat Teori dan Administrasi init file (pfile dan spfile).
Parameter instance, kalau tidak di-specify di init file, maka Oracle akan memberi nilai default. Ketika instance up, kita bisa melihat parameter-parameter instance melalui view v$parameter. Contoh:
SQL> select NAME,VALUE,ISDEFAULT from v$parameter order by name;
Kolom NAME adalah nama parameter. Kolom VALUE adalah nilai dari parameter tersebut. Kolom ISDEFAULT, kalau bernilai YES berarti nilai tersebut masih merupakan nilai default atau belum di-specify.
More…
Cost based optimizer (CBO) menggunakan statistic untuk menentukan execution plan yang paling optimal. Saya pernah membahas sekilas tentang CBO ini di artikel Tuning Query dengan Explain Plan.
DI versi 9i ke bawah, gather statistic dilakukan secara manual dengan package DBMS_STATS. By default di database Oracle 10g, gather statistic ini dilakukan oleh Oracle secara otomatis; selanjutnya kitapun bisa memilih cara melakukan gather statistic ini, apakah secara otomatis atau manual.
Agar Database melakukan gather statistic secara manual, jalankan command berikut di SQL:
conn system
BEGIN
DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
END;
/
Untuk mengembalikan gather statistic berjalan otomatic, jalankan command berikut di SQL:
BEGIN
DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
END;
/
Untuk mempermudah pekerjaan, saya menyarankan untuk menjalankan gather statistic secara otomatis. Untuk database versi 9i, mau tidak mau kita harus melakukan secara manual karena di 9i belum ada feature gather statistic otomatis. Walaupun manual, kita bisa mensiasatinya dengan menjalankan DBMS_STATS lewat DBMS_JOB.
More…
Oracle 10g, g adalah singkatan dari grid. Berikut ini pembahasan mengenai Grid yang saya kutip dari Wikipedia.
Komputasi Grid (grid computing) adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Latar belakang grid
Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwidth jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.
Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang “peneliti haus tenaga komputasi” dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.
Definisi grid
Menurut tulisan singkat [1] oleh Ian Foster ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
More…
Kadang kita perlu memindahkan datafile dari satu tempat (disk/file system/directory/drive) ke tempat yang lainnya. Atau kadang juga kita perlu me-rename datafile karena ada salah ketik waktu membuatnya. Baik memindahkan file dari satu tempat ke tempat lain, maupun merename datafile di tempat yang sama, intinya adalah sama saja.
Misalkan kita ingin memindahkan/me-rename datafile dari ‘/oradata/oracle/ts/users01.dbf’ ke ‘/oradata/oracle/ts/users02.dbf’
Pada database yang NOARCHIVELOG:
- Shutdown database
SQL> shutdown immediate
- Pindahkan/move/rename datafile. Di Windows bisa pakai Windows explorer. Di unix gunakan command ini:
mv /oradata/oracle/ts/users01.dbf /oradata/oracle/ts/users02.dbf
- Startup mount database
SQL> startup mount
- Rename datafile di level database
SQL> alter database rename file '/oradata/oracle/ts/users01.dbf'
to '/oradata/oracle/ts/users02.dbf';
- Setelah itu, open database
SQL> alter database open;
More…
Kadang kita bingung, ketika query TABLESPACE_NAME di view DBA_TABLES, kok nilai TABLESPACE_NAME ada yang NULL (blank/kosong).
SQL> select distinct TABLESPACE_NAME from dba_tables;
TABLESPACE_NAME
------------------------------
SYSTEM
<--- Kosong/blank/NULL
USERS
SYSAUX
Tidak perlu bingung, itu tandanya ada tabel berpartisi di database tersebut. Pada tabel yang berpartisi, data disimpan di dalam partisinya. Contoh, lihat tabel berpartisi PENJUALAN_RANGE yang pernah dibahas di Partitioning Table: Definisi dan Contoh.
CREATE TABLE penjualan_range
( no_invoice NUMBER,
tgl_jual DATE NOT NULL,
area varchar2(10))
PARTITION BY RANGE (tgl_jual)
(
PARTITION jual_kw1 VALUES LESS THAN (TO_DATE('01-APR-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw2 VALUES LESS THAN (TO_DATE('01-JUL-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw3 VALUES LESS THAN (TO_DATE('01-OCT-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw4 VALUES LESS THAN (TO_DATE('01-JAN-2009','DD-MON-YYYY')) TABLESPACE users
);
More…
Berikut ini pertanyaan-pertanyaan seputar tuning:
- Bagian mana yang perlu dituning. Siapa yang melakukan?
- Dari sisi aplikasi, apanya yang perlu dituning?
- Bagian database yang mana yang perlu dituning?
- Darimana kita bisa belajar banyak tentang tuning?
Bagian mana yang perlu dituning? Oleh siapa?
- Aplikasi, oleh application designer dan developer
- Database, oleh database administrator (DBA)
- System Operasi (OS), oleh system administrator (sysadmin)
Tuning Aplikasi
Tuning aplikasi memberikan kontribusi tersebar terhadap performa sistem secara keseluruhan. Termasuk bagian-bagian tuning aplikasi adalah:
- Normalisasi yang tepat
- Pemakaian index
- Pemakaian hint dalam query SQL atau PL/SQL
- Pemanfaatan sharing cursor
- dan lain-lain
Bagian database yang mana yang perlu dituning?
- Memory -> PGA dan SGA SGA (shared pool, large pool, buffer cache, redo log buffer, sort area size)
- I/O -> distributing I/O, striping, multiple DBWn processes, DBWn I/O slaves.
- CPU -> CPU utilization.
- Network
- Space management -> extent allocation dan Oracle block efficiency.
- Redo log dan checkpoint -> redo log file configuration, redo entries, dan checkpoint.
- Rollback segment -> sizing rollback segments. Mulai versi 9i, banyakbagian yang dibuat automatic
- dan lain-lain
Darimana kita bisa belajar banyak tentang tuning?
More…
Untuk alasan keamanan, pemakaian resource oleh user database perlu dibatasi. Selain itu, otorisasi (password) user juga perlu diperketat. Di database Oracle, pembatasan itu dilakukan oleh profile.
Berikut ini informasi profile (beserta parameter-patameternya) yang ada di database:
SQL> conn system
SQL> SELECT * FROM DBA_PROFILES ORDER BY PROFILE,RESOURCE_TYPE;
PROFILE RESOURCE_NAME RESOURCE LIMIT
---------- -------------------------------- -------- ----------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
Ketika kita membuat database, by default Oracle membuat profile dengan nama DEFAULT. Ketika kita membuat user tanpa menyebutkan profile-nya, maka user tersebut akan di-assign ke profile DEFAULT.
Membuat profile
Gambar diambil dari Oracle Documentation.
More…