J. Sains MIPA, April 2008, Vol. 14, No. 1, Hal.: 39 44 ISSN 1978-1873
PENGATURAN TEMPORARY FILES DAN UNDO SEGMENT PADA DATABASE
ORACLE SIAKAD ONLINE
Dwi Sakethi* dan Rico Andrian
Jurusan Matematika FMIPA Universitas Lampung
*
Alamat korespondensi e-mail:
dwijim@unila.ac.id
Diterima 10 Oktober 2007, perbaikan 15 Januari 2008, disetujui untuk diterbitkan 19 Januari 2008
ABSTRACT
Oracle is one of software database server used in common by instructions or companies. If one time, Oracle does not function as it was (due to function reduction), then it will cause information system fail. In data processing, Oracle has table space and undo segment. The two files are temporary files. With data increasing, the table space size and undo segment will follow if the two files size made as auto extend. This condition made harddisk was full and system will be stopped. Therefore, even though Oracle is a sophisticated software database server, but if the way of arranging table space and undo segment not accurate, it will because Oracle cannot be used.
Keywords: Oracle, temporary files, undo segment, siakad online, database server
1. PENDAHULUAN
Universitas Lampung (Unila) saat ini (Sampai dengan Oktober 2007) sudah memanfaatkan jaringan komputer (internet dan intranet) untuk pengelolaan data akademik. Aplikasi yang digunakan adalah Sistem Akademik (Siakad) Online dengan database server Oracle. Dengan system yang berbasis web seperti ini, memungkinkan system diakses oleh banyak pamakai dengan berbagai tingkat akses1). Oracle merupakan database server nomor 2 berdasarkan banyaknya
pemakai, dengan presentase sebesar 54,5 % pada tahun 20072). Unila masih menggunakan Oracle versi
10g meskipun Oracle akan segera merilis Oracle 11g3) .
Basis data ini secara fisik harus tersimpan dalam suatu media penyimpanan, dalam hal ini harddisk4). Dengan
semakin banyaknya data mahasiswa yang diolah maka media penyimpanan yang digunakan harus semakin besar kapasitasnya.
Dengan bertambahnya data, suatu saat harddisk yang digunakan pada Oracle penuh. Masalah harddisk penuh ini sangat fatal. Jika harddisk benar-benar sudah terpakai 100 % maka Oracle akan mati. Seandainya terjadi hal yang demikian maka data-data yang ada di sistem Oracle tidak dapat diapa-apakan lagi, termasuk
data juga sudah tidak dapat di-back up . Peristiwa ini terjadi tanggal 11 atau 12 Maret 2006. Kondisi saat itu sudah cukup kritis:
Data-data Oracle ada di subdirektori /opt yang sudah terpakai 98 %. Kondisi ini tidak dapat dibiarkan terus berlanjut karena Oracle pada suatu saat akan hang lagi. Jika ini terjadi, berarti sistem informasi mengalami penurunan fungsi yang pada akhirnya akan menyebabkan kegagalan proyek sistem informasi5) .
Komponen basis data dalam Oracle ada empat yaitu :
data files, redo log files, control files, dan temporary files6). Temporary files digunakan untuk menyimpan
proses hasil sorting dengan jumlah data yang sangat besar sehingga tidak dapat lagi ditampung di dalam
memory. Sedangkan data files merupakan tempat untuk
menyimpan semua data di Oracle. Salah satu data yang ada adalah undo segment yang digunakan untuk menerapkan prinsip konsistensi data pada Oracle. Dengan prinsip ini, sebuah permintaan data pada sebuah tabel akan diambilkan data asli, yaitu data sebelum dilakukan transaksi manipulasi data6) . Desain
basis data Oracle untuk komponen pada temporary files dan undo segment yang kurang tepat dapat menyebabkan kejadian seperti disebutkan di atas. Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cciss/c0d0p1 9071792 226604 8384356 3% / /dev/cciss/c0d0p6 10079868 3849020 5718812 41% /home /dev/cciss/c0d0p2 20159932 18644100 491752 98% /opt none 2027820 0 2027820 0% /dev/shm /dev/cciss/c0d0p5 10079868 1670432 7897400 18% /usr /dev/cciss/c0d0p3 10079884 224408 9343436 3% /var
2. METODE PENELITIAN
Penelitian ini dilakukan pada database server Oracle yang dijalankan pada system operasi Red Hat. Ada pun langkah-langkahnya adalah :
1. Mencari penyebab tidak aktifnya database server Oracle dan kemudian mengaktifkannya.
2. Mencek besarnya file-file dalam Oracle meliputi :
data files, redo log files, control files, dan temporary files.
3. Mengubah pengaturan pada temporary files dan
undo segment Oracle.
4. Mencek hasil perubahan temporary files dan undo
segment Oracle dan pengaruhnya pada free space harddisk.
3. HASIL DAN PEMBAHASAN
Kondisi di mana harddisk tempat menyimpan data-data Oracle menjadi penuh, dapat terjadi karena beberapa hal :
1. Data memang sudah sangat banyak.Untuk kondisi saat ini, jumlah data nilai di Siakad Online sudah mencapai 600 ribuan data.
2. Data sudah banyak tapi sebenarnya masih tertampung (mirip dengan masalah no. 1) akan tetapi ditambah lagi dengan adanya autoextend pada temporary file dan undo segment yang terlalu besar. Jika penyebabnya adalah ini, maka harddisk
menjadi penuh bukan oleh data yang memang digunakan akan tetapi penuh oleh data temporer. 3.1. Mencari Letak File Data dan Ukurannya
Sebelum bisa melakukan aktifitas apa pun pada Oracle, terlebih dahulu Oracle harus aktif. Untuk menjamin tidak ada akses apapun karena Oracle dalam proses perbaikan maka kabel jaringan dilepas dari kartu jaringan. Untuk memancing layanan Oracle supaya aktif, maka ada file log sistem Linux (bukan system Oracle) yang berukuran hampir 5GB yang bisa dihapus sehingga space terpakai yang sebelumnya 100 % menjadi 98 %. Hal yang dapat dilakukan hanyalah menghapus file-file yang memang tidak terpakai sehingga sisa space di harddisk menjadi bertambah lagi. Seperti disebutkan sebelumnya, sisa free space pada partisi Oracle tinggal 2%. Setelah tersedia free
space ini, layanan Oracle dapat diaktifkan. Akses ke
Oracle dilakukan dengan perintah SQL (Structured
Query Language)7). SQL merupakan suatu bahasa
yang memungkinkan untuk mengakses basis data, memproses query dengan kondisi yang bermacam-macam dan tersedianya operasi pemrosesan basis data dasar menggunakan perintah-perintah seperti retrieve,
insert, delete dan update sesuai dengan standar ANSI8).
Untuk mengetahui di mana Oracle menyimpan file-file data digunakan perintah berikut9,10):
select status, bytes, name from v$datafile
SYSTEM 503316480 /opt/oracle/oradata/reguler/system01.dbf ONLINE 20971520 /opt/oracle/oradata/reguler/cwmlite01.dbf ONLINE 20971520 /opt/oracle/oradata/reguler/drsys01.dbf ONLINE 26214400 /opt/oracle/oradata/reguler/indx01.dbf ONLINE 20971520 /opt/oracle/oradata/reguler/odm01.dbf ONLINE 10485760 /opt/oracle/oradata/reguler/tools01.dbf ONLINE 2046033920 /opt/oracle/oradata/reguler/users01.dbf ONLINE 39976960 /opt/oracle/oradata/reguler/xdb01.dbf ONLINE 503316480 /opt/oracle/oradata/reguler/undo_anyar.dbf
Di sini terlihat bahwa file-file data Oracle disimpan pada sub direktori /opt/oracle/oradata/reguler/. Maka langkah selanjutnya adalah mengecek langsung sudah seberapa besar ukuran file-file pada data Oracle, dalam hal ini digunakan perintah ls11). Perhatikan data berikut :
ls /opt/oracle/oradata/reguler/ -l
oracle oinstall 1613824 Mar 11 11:56 control01.ctl oracle oinstall 1613824 Mar 11 11:56 control02.ctl oracle oinstall 1613824 Mar 11 11:56 control03.ctl oracle oinstall 20979712 Mar 10 21:03 cwmlite01.dbf
D. Sakethi dan R. Andrian... Pengaturan Temporary Files dan Undo Segment
oracle oinstall 20979712 Mar 10 21:03 drsys01.dbf oracle oinstall 26222592 Mar 10 21:03 indx01.dbf oracle oinstall 20979712 Mar 10 21:03 odm01.dbf oracle oinstall 104858112 Mar 10 20:33 redo01.log oracle oinstall 104858112 Mar 11 11:56 redo02.log oracle oinstall 104858112 Mar 9 09:45 redo03.log oracle oinstall 471867392 Mar 11 11:56 system01.dbf oracle oinstall 11374960640 Mar 10 16:06 temp01.dbf oracle oinstall 10493952 Mar 10 21:03 tools01.dbf oracle oinstall 2988449792 Mar 11 11:56 undotbs01.dbf oracle oinstall 1394614272 Mar 11 11:56 users01.dbf oracle oinstall 39985152 Mar 10 21:03 xdb01.dbf
Terlihat bahwa temporary file dan undo segment terlalu besar dan sangat tidak wajar. Ukuran temporary file yaitu file temp01.dbf sebesar 11.374.960.640 byte dan ukuran Undo Segment undotbs01.dbf sebesar 2.988.449.792 byte. Kemudian ditambah lagi dengan adanya autoextend yang bisa dicek dengan perintah berikut6) :
col sizes format a10 col max_sizes format a10
select tablespace_name,bytes/(1024*1024*1024) || ' Gb ' as sizes,
trunc(maxbytes/(1024*1024*1024)) || ' Gb ' as max_sizes,
autoextensible
from dba_temp_files;
TABLESPACE_NAME SIZES MAX_SIZES AUT --- --- --- --- TEMP 10.59375 Gb 31 Gb YES
Dari sini terlihat bahwa temporary file berukuran 10.5 GB dan bisa bertambah sampai 31 GB. Oleh karena itu,
temporary file ini akan diperkecil ukurannya. Demikian
juga dengan Undo Segment. Dengan kondisi sekarang yang seperti ini, tentu saja harddisk akan menjadi penuh.
3.2. Pengaturan temporary file
Temporary file merupakan tipe file data tersendiri pada
Oracle. File ini berisi data-data hasil pengurutan jika
data yang diproses sangat besar6) . Hal ini dilakukan
karena data-data tersebut sudah tidak mungkin lagi disimpan di memory . Data-data yang bersifat permanen seperti isi suatu tabel dan indeks tidak akan disimpan pada file temporer ini.
Pada pengaturan ini, target utama bukan pada optimasi akan tetapi bagaimana mengubah ukuran temporary
file sehingga harddisk tidak menjadi penuh.
Pertama-tama dibuat temporary file baru bernama temp_iwd, seperti berikut :
create temporary tablespace temp_iwb tempfile 'temp_iwb.dbf' size 25 m
autoextend on next 5 m maxsize 100m;
Selanjutnya adalah mengubah temporary file ke yang baru :
alter database default temporary tablespace temp_iwb;
drop tablespace temp including contents and datafiles;
Parameter maxsize harus disertakan untuk membatasi ukuran maksimal dari file temporer ini.
Hasil perubahan tersebut, harddisk yang terpakai yang sebelumnya 98% sekarang menjadi 40%. Perintahnya adalah df11) dengan hasil seperti berikut :
/dev/cciss/c0d0p1 9071792 226604 8384356 3% / /dev/cciss/c0d0p6 10079868 3849020 5718812 41% /home /dev/cciss/c0d0p2 20159932 7527692 11608160 40% /opt none 2027820 0 2027820 0% /dev/shm /dev/cciss/c0d0p5 10079868 1670432 7897400 18% /usr /dev/cciss/c0d0p3 10079884 224408 9343436 3% /var
Dari bulan Maret 2006 dan sampai bulan April 2007, direktori /opt hanya terpakai 64 % dari semula 40 %.
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cciss/c0d0p1 9071792 226604 8384356 3% / /dev/cciss/c0d0p6 10079868 8220116 1347716 86% /home /dev/cciss/c0d0p2 20159932 12151632 6984220 64% /opt none 2027820 0 2027820 0% /dev/shm /dev/cciss/c0d0p5 10079868 1672688 7895144 18% /usr /dev/cciss/c0d0p3 10079884 225292 9342552 3% /var
3.3. Pengaturan Undo Segment
Oracle menyediakan fasilitas Undo Segment. Fasilitas ini digunakan untuk konsistensi data. Ketika ada suatu
query DML, sebelum transaksi di-commit maka data
akan disimpan pada undo segment6) . Proses query
dari pemakai lain akan diarahkan ke undo segment ini sampai dengan dilakukan proses commit. Proses undo
segment disimpan dalam Undo Tablespace. Pada
Siakad Online file Undo Tablespace yang demikian besar. Untuk melihatnya digunakan perintah ls9,10)
dengan hasil seperti berikut :
oracle oinstall 1613824 Mar 11 12:34 control02.ctl oracle oinstall 1613824 Mar 11 12:34 control03.ctl oracle oinstall 20979712 Mar 10 21:03 cwmlite01.dbf oracle oinstall 20979712 Mar 10 21:03 drsys01.dbf oracle oinstall 26222592 Mar 10 21:03 indx01.dbf oracle oinstall 20979712 Mar 10 21:03 odm01.dbf oracle oinstall 104858112 Mar 10 20:33 redo01.log oracle oinstall 104858112 Mar 11 12:34 redo02.log oracle oinstall 104858112 Mar 9 09:45 redo03.log oracle oinstall 471867392 Mar 11 12:30 system01.dbf oracle oinstall 104865792 Mar 11 12:33 temp_anyar.dbf oracle oinstall 10493952 Mar 10 21:03 tools01.dbf oracle oinstall 2988449792 Mar 11 12:33 undotbs01.dbf oracle oinstall 1394614272 Mar 11 12:29 users01.dbf oracle oinstall 39985152 Mar 10 21:03 xdb01.dbf
D. Sakethi dan R. Andrian... Pengaturan Temporary Files dan Undo Segment
select file_name,autoextensible,bytes/(1024*1024*1024) || ' Gb ' from dba_data_files;
FILE_NAME AUT 'GB'
--- /opt/oracle/oradata/reguler/undotbs01.dbf YES 2.783203125 Gb
Maka Undo Tablespace ini dimodifikasi ukuran dan tipe autoextend -nya :
create undo tablespace undo_anyar
datafile '/opt/oracle/oradata/reguler/undo_anyar.dbf'
size 100m autoextend on next 10m
maxsize 500m;
Kemudian undo segment yang baru ini diaktifkan :
alter system set undo_tablespace = undo_anyar scope = both;
File undo segment yang lama dapat dihapus :
drop tablespace undotbs1;
Parameter maxsize harus disertakan untuk membatasi ukuran maksimal dari file temporer ini. 3.4. Kondisi Terakhir
Dari pengaturan-pengaturan tersebut di atas, keadaan terakhir pada tanggal 18 April 2007 seperti berikut :
oracle oinstall 104865792 Apr 13 15:27 temp_anyar.dbf oracle oinstall 503324672 Apr 18 09:45 undo_anyar.dbf
Sedangkan kapasitas media penyimpanan yang digunakan sebesar 64 %.
4. KESIMPULAN
Kecanggihan suatu perangkat lunak hanya merupakan salah satu bagian penunjang dalam suatu sistem. Pengaturan parameter-parameter dalam basis data menggunakan Oracle yang tidak tepat justru akan menimbulkan masalah tersendiri. Pengaturan tersebut di antaranya : autoextend dan maxsize. Untuk mengatasi masalah ukuran file yang selalu membengkak terus karena perintah autoextend maka dalam menentukan parameter suatu tabel sebaiknya diberikan batasan nilai maxsize. Batasan parameter
maxsize ini lebih khusus untuk tabel-tabel yang sifatnya
temporer sebaiknya diberikan kepada table-tabel tersebut.
DAFTAR PUSTAKA
1. Kane, S.K. 2007. Everyday inclusive Web design:
an activity perspective. Information Research 12 (3): 309.
2. Zeichick, A. 2007. SQL Server Still No. 1 in Databases, Software Development Times.
ABI/INFORM Trade & Industry 179 : 8.
3. Martens, C. 2007. Users Plan for Quick Oracle 11g Upgrades, Computerworld. ABI/ INFORM
Global 41 (29) : 18.
4. Elmasri, N. 1994. Fundamentals of Database
System, The Benjamin/Cummings Publishing
Company, Inc, Vancouver, Canada.
5. Kearns, G. S. 2007. How the Internal Environment Impacts Information Systems Project Success : An Investigation of Exploitative and Explorative Firms.
ABI/INFORM Global 48 (1) : 63-75.
6. Samsyiar, E. 2004. Oracle 9i : Optimasi Database. Elex Media Komputindo, Jakarta.
7. Wijaya, H. 2003. Oracle 9i Database . Elex Media Komputindo, Jakarta.
8. Katircioglu, K., Brown, T.M., Asghar, M. 2007. An SQl-based Cost-Effective Inventory Optimization Solution. IBM Journal of Research and
Development, ABI/INFORM Global 51 (3/4) :
433-445.
9. Dyke, R. V. 2004. Learn Oracle from Oracle :
Oracle Database 10g:Administration Workshop I Volume 1 – Student Guide, Jobi Varghese, Oracle
University.
10. Dyke, R. V. 2004. Learn Oracle from Oracle :
Oracle Database 10g:Administration Workshop I Volume 2 – Student Guide, Jobi Varghese, Oracle
University.
11. Tackett, F., Burnett, S., Napier, R., Tranter, J. 2000. Using Linux Special Edition, QUE Corporation, A Division of Macmillan Publishing USA, Indianapolis, Indiana.