Tablespace Pada Oracle 10g



Sesuai ukuran yang membutuhkan space dari yang terbesar di dalam oracle dikenal istilah instance database - tablespace – segment – extent – block. Dan tablespace merupakan bagian dari arsitektur logic database oracle yang keseluruhan telah disebutkan diatas. Tablespace membutuhkan space yang lebih besar karena tablespace merupakan tempat storage bagi segment, segment sendiri adalah object database yang mempunyai data. Yang termasuk segment adalah table, index, cluster, rollback (undo), lobsegment, lobindex, table partition, index partition, lob partition, temporary segment. Dan definisi dari tablespace di oracle sama dengan DB2 yaitu merupakan tempat dimana stu atau lebih database berada. Dan definisi dari tablespace sendiri juga dapat diartikan berasal dari dua kata ‘Table’ dan ‘Space’ yang mempunyai makna ruang untuk table. Oleh karena itu tablespace haruslah bersifat manageability, untuk memudahkan pengelolaan table. Tanpa adanya tablespace, semua tabel akan menumpuk di satu tempat. Dengan adanya tablespace, kita dapat mengelompokkan beberapa tabel di ruang tertentu, dan beberapa tabel di ruang lainnya. Saat ini beberapa DBMS lainnya juga memakai konsep tablespace (contohnya DB2, Informix) dan mengimplemintasikan tablespace ( contohnya SQL Server memakai istilah ‘Database’).
            Database oracle mendukung Transportable Tablespace dimana proses export dan import data bisa dipercaya secara signifikan sehingga down time bisa lebih minimal, meski datanya sangat besar (ratusan gigabyte / terabyte). Meskipun demikian, ada hal yang perlu diperhatikan  yaitu:
  1.          Sebelum versi oracle 10g, versi dan platform database harus sama (misal : versi windows 32 bit, harus juga di transport ke versi windows 32 bit).
  2.          Setelah versi oracle 10g, transport bisa multi platform.


Secara fisik, tablespace terdiri atas satu atau lebih datafile. Informasi tentang tablespace ada di view vStablespace, dba_tablespace, dba_data_files, dba_temp_files, dll.
Pada oracle database oracle, hanya satu tablespace yang harus ada (mandatory), yakni tablespace bernama SYSTEM, dan bersifat system-defined (‘system’ di sini berarti Database Management System atau DBMS). Tablespace ini juga khusus, karena merupakan satu-satunya tablespace yang bisa berisi object non segment. Untuk tablespace yang lain harus dibuat oleh user ( hal ini dapat dilihat pada script pembuatan sebuah database, dimana untuk tablespace yang lain diletakkan pada script yang berbeda dengan script pembuatan tablespace ‘SYSTEM’), itu sebabnya tablespace ini disebut user-defined.




Untuk lebih jelasnya pada oracle terdapat beberapa jenis tablespace, yaitu:
1.      System tablespace
Yang berfungsi menyimpan informasi operasional dan menentukan atribute dari data yang tersimpan, seperti tipe data, besar maksimum dari sebuah column, pemilik data dan lain-lain.

2.      SYSAUX tablespace
Merupakan sebagian besar dari tool yang digunakan untuk menjalankan aktifitas database menyimpan object dan informasi di dalam informasi tablespace ini. Ketika database dibentuk, tablespace ini wajib dibuat.

3.      Default temporary tablespace
Berguna untuk penampungan sementara dari hasil output resullset atau untuk mendukung aktifitas seperti sorting. Sangat berguna jika memory yang ada tidak cukup untuk menjalankan sebuah operasi.

4.      Undo tablespace
Berguna untuk menyimpan row yang diubah namun belum dicommit atau diroll back.

Tipe – tipe tablespace lainnya yang paling umum atau sering digunakan dalam membangun database oracle dapat dilihat pada tabel di bawah ini:
NAMA TABLESPACE
TIPE SEGMENT
SIFAT DAN KETERANGAN
Tables
Table
User’s table / data
Indexes
Index
User’s indexes
Clusters
Cluster
User’s clusters
Undos
Undo
System’s undos
Sorts
Sort
System’s sorts
System
Table and Index
System’s repository, User’s library
Tool
Table and Index
User’s metadata

Dari table diatas dapat dilihat bahwa kriteria utama untuk memisahkan tablespace adalah melalui tipe segment nya yang ada didalamnya. Kemudian kita baru dapat memisahkan tablespace dari sifat metadatanya. Dalam hal ini kriteria ini yang membedakan tablespace system dan tool dengan tablespace yang lainnya. Kriteria berikutnya adalah memisahkan antara apa yang berasal dari oracle (system-defined) dan dengan apa yang berasal dari user (user-defined). Kriteria inilah yang membedakan antara tablespace system dengan tablespace tool. Dari tabel tersebut juga bisa diketahui pada lima tablespace pertama (tables sampai dengan sorts) memakai nama benda jamak, dalam hal ini adlah untk memperlihatkan bahwa tablespace ini berisi kumpulan segments. Sedangkan untuk dua tablespace terakhir (system dan tool) memakai nama benda tunggal, hal ini untuk memperlihatkan pemisahan kedua tablespace ini dengan tablespace yang lainnya bukan berdasarkan jenis segmentnya.

Berikut adalah cara – cara untk membuat tablespace user defined :
1.      Undo Tablespace
a.       Contoh untuk membuat undo tablespace dengan nama undotbs2, datafile /oradata/oracle/ts_bak/undotbs201.dbf, ukuran file sebesar 10m. Jangan lupa tambahkan option undo sesudah create.
SQL> create undo tablespace undotbs2
           datafile ‘/oradata/oracle/ts_bak/undotbs201.dbf’ size 10m;
b.      Untuk menambah (menaikkan size/space) dapat dilakukan dengan menaikkan size dari datafile atau menambah datafile
SQL> alter database
           datafile ‘/oradata/oracle/ts_bak/undotbs201.dbf’ resize 20m;
SQL> alter tablespace undotbs2 add
           datafile ‘/oradata/oracle/ts_bak/undotbs202.dbf’ size 10m;
c.       Untuk melihat datafile dan size dari tablespace UNDOTBS2
SQL> select file_name, bytes from dba_data_files
           where tablespace_name=’UNDOTBS2’;
d.      Untuk melihat free space tiap-tiap datafile dari tablespace UNDOTBS2
SQL> select a.name, sum(b.bytes) from v$datafile a, dba_free_space b
where a.file#=b.file_id and b.TABLESPACE_NAME=’UNDOTBS2’  group by a.name;
e.       Untuk melihat undo tablespace yang aktif saat ini gunakan
SQL> show parameter undo_tablespace
Untuk mengubah undo_tablespace ke tablespace yang baru saja kita buat
SQL> alter system set undo_tablespace=UNDOTBS2;

2.      Temporary Tablespace
a.       Contoh membuat temporary tabelspace dengan nama TEMP2, tempfile
/oradata/oracle/ts/temp21.dbf, ukuran file sebesar 10M. Jangna lupa tambahkan option temporary sesudah create, dan gunakan tempfile bukan datafile.
SQL> alter database
                tempfile ‘/oradata/oracle/ts/temp21.dbf’ size 10m;
b.      Untuk menambahkan (menaikan size/space) dapat dilakuakn denga menaikkan size dari tempfile atau menambah tempfile.
SQl> alter database
          tempfile ‘/oradata/oracle/ts/temp21.dbf’size 10m;
c.       Untuk elihat temp file (file-file milik TEMPORARY tablespace) dan sizenya. Contohnya, misalkan nama TEMPORARY tablespace tersebut adalah TEMP:
SQL> select file_name, bytes from dba_temp_flies where 
           tablespace_name=’TEMP’;
d.      Untuk melihat free spacenya
SQL> select a.name, sum (b.BYTES_FREE) from v$tempfile a,
           V$TEMP_SPACE_HEADER b where a.file#=b.file_id and
           b.TABLESPACE_NAME=’TEMP’ group by a.name;
e.  Untuk melihat temporary tablespace yang digunakan sebagai DEFAULT di    database adalah
      SQL> select PROPERTY_VALUE from database_properties
                 where PROPERTY_NAME=’DEFAULT_TEMP_TABLESPACE’;
                 Untuk mengubah default temporary tablespace menjadi tablespace yang baru saja kita buat
     SQL> alter database default temporary tablespace temp2;

3.      Permanent Tablespace
a.    Contoh membuat permanent tablespace dengan nama DATA, datafile
/oradata/oracle/ts_bak/data01.dbf, ukuran file sebesar 10M.
SQL> create tablespace DATA
           datafile ‘/oradata/oracle/ts_bak/data01.dbf’ size 10m;
b.    Untuk menambah (menaikkan size/space) dapat dilakukan dengan menaikkan size dari datafile atau menambahkan datafile. Caranya sama persis seperti pada UNDO tablespace
SQL> alter database
           datafile ‘/oradata/oracle/ts_bak/data01.dbf’ resize 20m;
SQL> alter tablespace DATA add
           datafile ‘/oradata/oracle/ts_bak/data02.dbf’ size 10m;
c.      Untuk melihat datafile, size, dan free size dari PERMANENT tablespace, caranya seperti untuk UNDO tablespace, yaitu gunakan view dba_data_flies, v$datafile, dan dba_free_space.
d.     Untuk melihat permanent tablespace yang digunakan sebagai DEFAULT di database adalah
SQL> select PROPERTY_VALUE from database_properties where
           PROPERTY_NAME=’DEFAULT_PERMANENT_TABLESPACE’;
Untuk mengubah default permanent tablespace menjadi tablespace yang baru saja kita buat
SQL> alter database default tablespace data;        

Diatas disebutkan bahwa database oracle mendukung Tranportable Tablespace dimana proses export dan import data bisa dipercepat secara signifikan sehingga down time bisa di minimalisir, berikut adalah pembahasan tentang transportable tablespace pada oracle 9i linux versi 32 bit, ke oracle 9i linux 64 bit (sistem operasi sama, tapi beda versi bitnya). Yang ditransport adalah tablespace dan schema buatan kita saja (bukan full database, schema SYS tidak termasuk).
Adapun langkah-langkahnya kurang lebih seperti ini:
1.      Set read only untuk semua tablespace yang akan di transpot, misal:
ALTER TABLESPACE DATAKU READ ONLY
2.      Lakukan export database, dengan menyebutkan opsi TRANSPORT_TABLESPACE=Y, misal :
exp USERID=’system/password@dbku AS SYSDBA’
TRANSPORT_TABLESPACE=y TABLESPACES=DATAKU
FILE=dataku.dmp
Jika tablespace tersebut tidak self contained (semua data bakalan nongkrong disana semua, ada yang ditablespace lain maka akan ada error). Pindahkan semua data yang ada di tempat lain ke tablespace itu lalu ulangi proses export.
·         Copy fisik data file untuk tablespace DATAKU di atas, ke server baru yang sudah disiapkan , juga file DMP nya.
·         Lakukan import di server baru  seolah-olah hasil export biasa.
imp USERID=’system/password@dbku1 AS SYSDBA’
TRANSPORT_TABLESPACE=y DATAFILES=’DATAKU.DBF’
TABLESPACES=DATAKU FILE=dataku.dmp
·         Enable kembali tablespace ke Read Write
ALTER TABLESPACE DATAKU READ WRITE
·         Langkah finalisasi, lakukan update terhadap semua obyek Sequence, Procedure, Function meniru  dari server lama. Ini terpaksa dilakukan karena obyek tersebut letaknya (default) di tablespace SYS sehingga tidak terbawa ke server baru.

SUMBER :
http://www.scribd.com/retgar/d/63997688/20-Administrasi-Tablespace
http://rohmad.net/2008/06/04/administrasi-tablespace/
http://denysutani.com/2011/03/19/oracle-tablespace/
http://ardhian.wordpress.com/2006/07/05/sap-r3-memeriksa-size-tablespace-pada-database-sap/
http://sholikhin.staff.uii.ac.id/?p=5
http://www.scribd.com/_neey/d/45659813/6-ARSITEKTUR-ORACLE

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.

Copyright © / riffStudio

Template by : Urang-kurai / powered by :blogger