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:
- Sebelum versi oracle 10g, versi dan platform database harus sama (misal : versi windows 32 bit, harus juga di transport ke versi windows 32 bit).
- 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