Vous êtes sur la page 1sur 74

BASIS DATA LANJUT

ORACLE 9i
(DATABASE ADMINISTRATOR)

MODUL PERKULIAHAN

Disusun Oleh :
Saepudin Nirwan, S.Kom., M.Kom.

JURUSAN TEKNIK INFORMATIKA


POLITEKNIK POS INDONESIA
2008
LEMBAR PENGESAHAN

BASIS DATA LANJUT


ORACLE 9i
(DATABASE ADMINISTRATOR)

MODUL PERKULIAHAN

Disusun oleh :
Saepudin Nirwan, S.Kom., M.Kom.

Telah disetujui dan disahkan untuk dijadikan bahan ajar


di Jurusan Teknik Informatika

Bandung, September 2008

Ketua Jurusan Pembantu Direktur I,


Teknik Informatika,

Saepudin Nirwan, S.Kom., M.Kom. DR. Bambang Jatmiko, SE., M.Si.

Database Administrator || i
PERNYATAAN

Yang bertanda tangan di bawah ini:


Nama : Saepudin Nirwan, S.Kom., M.Kom.
NIK : 10273041
Menyatakan bahwa dalam menyusun modul ini tidak melakukan plagiarisme. Demikian
pernyataan ini dibuat dengan sebenarnya.

Bandung, September 2008


Yang membuat pernyataan,

Saepudin Nirwan, S.Kom., M.Kom.

Database Administrator || ii
KATA PENGANTAR

Modul ini disusun sebagai pedoman bagi mahasiswa dilingkungan Politeknik Pos
Indonesia yang mengikuti matakuliah Basisdata Lanjut (Oracle). Tujuannya agar mahasiswa
memiliki panduan dalam bahasa indonesia sebagai sumber kedua, dimana sumber utama
adalah buku-buku teks Oracle.
Modul ini menjelaskan teori dan pengelolaan administrasi pada Oracle 9i, dalam modul
ini juga membahas arsitektur dan konfigurasi Oracle. Materi yang diberikan dalam modul
tentunya masih belum lengkap dan untuk itu mahasiswa dan dosen diharapkan dapat mencari
referensi tambahan yang diperlukannya baik di perpustakaan maupun melalui media internet.
Modul ini masih belum sempurna, sehingga perlu dikaji lebih lanjut baik oleh dosen
pengajar, instruktur, asisten maupun praktikan yang terlibat dalam matakuliah ini. Oleh karena
itu penyusun berharap agar para pemakai modul ini dapat memberikan sumbangan saran untuk
perbaikan modul Oracle 9i ini.
Semoga modul ini dapat bermanfaat serta dapat meningkatkan kemampuan mahasiswa
dalam menguasai pengelolaan administrasi Oracle 9i.

Bandung, September 2008

Penyusun

Database Administrator || iii


DAFTAR ISI

LEMBAR PENGESAHAN ..........................................................................................................i


PERNYATAAN ......................................................................................................................... ii
KATA PENGANTAR ............................................................................................................... iii
DAFTAR ISI ..............................................................................................................................iv
DAFTAR GAMBAR ................................................................................................................ vii
DAFTAR TABEL ......................................................................................................................ix
LANDASAN TEORI ORACLE 9i ............................................................................................. 1
1.1 Tujuan Pembelajaran ................................................................................................. 1
1.2 PENDAHULUAN ..................................................................................................... 2
1.2.1 Struktur Logical Database ......................................................................................... 2
1.2.2 Struktur Fisik Database ............................................................................................. 3
1.3 ARSITEKTUR ORACLE ......................................................................................... 4
1.3.1 Background Process .................................................................................................. 5
1.3.1.1 Background Processes ............................................................................................... 5
1.3.1.2 Foreground Processes ................................................................................................ 6
1.3.2 Instance...................................................................................................................... 6
1.3.3 Database .................................................................................................................... 8
1.3.4 Data, Log dan Metadata ............................................................................................ 9
1.3.5 INSTANCE ............................................................................................................... 9
1.3.6 Instance Name ......................................................................................................... 10
1.3.7 MEMBUAT DATABASE ...................................................................................... 12
1.3.7.1 Membuat Database .................................................................................................. 12
1.3.7.2 Optimal Flexible Architecture (OFA) ..................................................................... 14
1.3.7.3 Pembuatan Tablespace ............................................................................................ 15
1.3.7.4 Pembuatan Repository............................................................................................. 15
1.3.8 ARSITEKTUR DATABASE ORACLE ................................................................. 16
1.3.8.1 Arsitektur Fisik ........................................................................................................ 16
1.3.8.2 Arsitektur Logikal ................................................................................................... 17

Database Administrator || iv
1.3.8.3 Arsitektur Fisik dan Arsitektur Logikal .................................................................. 17
1.3.9 CONFIGURATION FILE/ FILE CONTROL ........................................................ 18
1.3.9.1 Configuration-Files/ Control-Files .......................................................................... 18
1.3.9.2 Mirroring ................................................................................................................. 18
1.3.9.3 Startup Nomount ..................................................................................................... 19
1.3.9.4 Startup Mount.......................................................................................................... 19
1.3.9.5 Startup Open ............................................................................................................ 19
1.3.10 LOG FILE/TRANSACTION LOG FILE ............................................................... 20
1.3.10.1 Log-Files ................................................................................................................. 20
1.3.10.2 Mekanisme: Rotasi .................................................................................................. 21
1.3.10.3 Mirroring ................................................................................................................. 21
1.3.10.4 Operasi : SWITCH .................................................................................................. 22
1.3.10.5 Operasi : DROP - Group ......................................................................................... 24
1.3.10.6 Operasi : ADD MEMBER ...................................................................................... 25
1.3.10.7 Operasi : ADD GROUP .......................................................................................... 26
1.3.10.8 Operasi : DROP - Member ...................................................................................... 28
1.3.11 TABLESPACE........................................................................................................ 29
1.3.11.1 Jenis Tablespace ...................................................................................................... 29
1.3.11.2 Operasi untuk Tablespace ....................................................................................... 31
1.3.12 DATAFILES ........................................................................................................... 34
1.3.13 SEGMENT, EXTENT DAN BLOCK .................................................................... 38
1.3.13.1 Segment ................................................................................................................... 38
1.3.13.2 Klausa Storage......................................................................................................... 40
1.3.13.3 Extent ...................................................................................................................... 40
1.3.13.4 Block ....................................................................................................................... 41
1.3.13.5 Storage Extent ......................................................................................................... 41
1.3.13.6 Storage Block .......................................................................................................... 41
1.3.14 TABLE SEGMENT ................................................................................................ 42
1.3.15 Membuat Table ....................................................................................................... 42
1.3.16 Index-Organized Table (IOT) ................................................................................. 43
1.3.17 Menghapus Table .................................................................................................... 45
Database Administrator || v
1.3.18 Truncate Table......................................................................................................... 45
1.3.19 Partitioning Table .................................................................................................... 45
1.3.20 Range Partitioning ................................................................................................... 46
1.3.21 Melihat isi Partitioning ............................................................................................ 47
1.3.22 List Partitioning ....................................................................................................... 47
1.3.23 Composite Partitioning............................................................................................ 48
1.3.24 Mengubah Nama Partitioning ................................................................................. 49
1.3.25 Menghapus Partitioning .......................................................................................... 49
1.3.26 INDEX SEGMENT................................................................................................. 50
1.3.26.1 Struktur B-Tree Index ............................................................................................. 50
1.3.26.2 Struktur Bitmap Index ............................................................................................. 50
1.3.26.3 Membuat Index ....................................................................................................... 50
1.3.26.4 Menghapus Index .................................................................................................... 51
1.3.26.5 LATIHAN MANDIRI............................................................................................. 51
1.3.27 CLUSTER SEGMENT ........................................................................................... 52
1.3.27.1 Membuat Cluster ..................................................................................................... 53
1.3.27.2 Index Cluster ........................................................................................................... 54
1.3.27.3 Menghapus Cluster .................................................................................................. 56
1.3.28 MENGELOLA USER PRIVILEGE DAN PROFILE ............................................ 56
1.3.28.1 Membuat USER ...................................................................................................... 58
1.3.28.2 Mengubah USER..................................................................................................... 58
1.3.28.3 Menghapus USER ................................................................................................... 58
1.3.28.4 PROFILE ................................................................................................................. 59
1.3.28.5 Menghapus Profile .................................................................................................. 60
DAFTAR PUSTAKA ................................................................................................................ 63
TEKNIK PENILAIAN .............................................................................................................. 64

Database Administrator || vi
DAFTAR GAMBAR
Gambar 1 Schema Objects, Tablespaces, and Datafiles [1]........................................................ 3
Gambar 2 Databases, Tablespaces, and Datafiles [1] ................................................................ 4
Gambar 3 Oracle arsitektur [3] .................................................................................................... 5
Gambar 4 Oracle Process ............................................................................................................ 6
Gambar 5 Instance Oracle ........................................................................................................... 6
Gambar 6 Background Process Oracle [1] ................................................................................. 7
Gambar 7 Tipe Instance............................................................................................................... 7
Gambar 8 Tipe Database [1]........................................................................................................ 8
Gambar 9 Struktur Instance dan Database Oracle [1] ................................................................. 8
Gambar 10 Sebuah tabel yang sudah dikenal instance ............................................................... 9
Gambar 11 Sebuah tabel yang sudah diisi sebuah record ........................................................... 9
Gambar 12 Nama database pada stuktur direktori Oracle ......................................................... 10
Gambar 13 Instance pada Service Windows ............................................................................. 11
Gambar 14 Register Oracle di Windows ................................................................................... 11
Gambar 15 Start/Stop Instance Oracle dari Service Windows .................................................. 12
Gambar 16 Lokasi Software Oracle [3] ..................................................................................... 13
Gambar 17 Perintah DOS untuk membuat folder untuk database............................................ 13
Gambar 18 Sintaks untuk membuat database ............................................................................ 14
Gambar 19 Oracle Database Files [3]........................................................................................ 14
Gambar 20 Sintaks untuk membuat tablespace ........................................................................ 15
Gambar 21 Sintaks untuk membuat repository ........................................................................ 15
Gambar 22 Arsitektur Database Oracle ..................................................................................... 16
Gambar 23 Arsitektur Lojik Oracle ........................................................................................... 17
Gambar 24 Arsitektur Fisik dan Lojik Oracle [3] ..................................................................... 17
Gambar 25 Template file configurations ................................................................................... 18
Gambar 26 Tahapan startup dan shutdown database ................................................................ 20
Gambar 27 Mekanisme Rotasi Log Files .................................................................................. 21
Gambar 28 Mirroring Log Files ................................................................................................ 22
Gambar 29 Sintaks untuk melakukan swicth log....................................................................... 23

Database Administrator || vii


Gambar 30 Hasil operasi switch ................................................................................................ 24
Gambar 31 Hasil operasi drop grup file nomor 3 ...................................................................... 24
Gambar 32 Hasil Pengecekan file yang terhapus ...................................................................... 25
Gambar 33 Menambahkan member log file .............................................................................. 26
Gambar 34 Mengaktifkan member baru .................................................................................... 26
Gambar 35 Menambahkan grup ................................................................................................ 27
Gambar 36 Mengaktifkan grup yang baru ditambahkan ........................................................... 27
Gambar 37 Menghapus member log file dari sebuah grup ....................................................... 28
Gambar 38 Non aktifkan grup dimana member akan dihapus .................................................. 29
Gambar 39 Jenis – Jenis Tablespace ......................................................................................... 29
Gambar 40 Membuat Tablespace dengan Type [4] ................................................................... 31
Gambar 41 Sintaks untuk membuat tablespace ........................................................................ 31
Gambar 42 Sintaks untuk mengubah tablespace ....................................................................... 32
Gambar 43 Extend Datafile secara otomatis ............................................................................. 35
Gambar 44 Extend Otomatis dimatikan .................................................................................... 35
Gambar 45 Hubungan antara Segments, Extents, dan Data Blocks [1] ..................................... 39
Gambar 46 Pemanfaatan umum sebuah Role ............................................................................ 57

Database Administrator || viii


DAFTAR TABEL

Tabel 1 Nama – Nama Tablespace Oracle ................................................................................ 30


Tabel 2 Tipe Segment ................................................................................................................ 39

Database Administrator || ix
LANDASAN TEORI ORACLE 9i

1.1 Tujuan Pembelajaran

a) Memahami Arsitektur Oracle.


b) Memahami Instance Oracle.
c) Dapat membuat Database.
d) Memahami Arsitektur Database Oracle.
e) Dapat membuat Configuration File/File Control.
f) Memahami Log File/Transaction Log File.
g) Dapat membuat Tablespace.
h) Dapat mengelola Datafiles.
i) Dapat membuat Segment, Extent dan Block.
j) Memahami Table Segment.
k) Memahami Index Segment.
l) Memahami Cluster Segment.
m) Memahami Pengelolaan User dan Profile.
n) Memahami Administrasi Oracle.

Database Administrator || 1
1.2 PENDAHULUAN
Sebuah database Oracle adalah sekumpulan dari data yang diperlakukan sebagai sebuah
kesatuan. Tujuan dari sebuah database adalah untuk menyimpan dan mengambil kembali
informasi yang diperlukan dengan cepat. Sebuah server database adalah merupakan kunci bagi
solusi permasalahan-permasalahan berkaitan dengan manajemen informasi. Secara umum
sebuah server mampu mengelola data yang besar dengan jumlah user yang banyak serta
menjamin konkurensi bagi user dalam mengakses data secara bersamaan. Tugas-tugas server
database seperti ini tentunya harus dilakukan dengan performansi yang tinggi, mengingat
jumlah dan user sangat besar dan semakin meningkat dalam pengoperasiannya. Sebuah
database server juga memberikan otorisasi bagi setiap user dalam mengakses data serta
menyediakan solusi-solusi yang efisien dalam menghadapi kegagalan sistem maupun
recovery-nya. Database Oracle memiliki logical structures dan physical structures, dimana
kedua struktur ini terpisah, sehingga physical storage dapat dikelola tanpa menyebabkan
implikasi apapun terhadap struktur logical storage.

1.2.1 Struktur Logical Database


Struktur lojik sebuah database Oracle terdiri dari schema object, data blocks, extent, segment
dan tablespaces. Sebuah schema adalah sekumpulan objek database, schema dimiliki oleh
seorang user database dan biasanya memiliki nama yang sama dengan usernya tersebut.
Sedangkan schema objects adalah struktur logical yang langsung mereferensi kepada data
pada database. Tidak ada relasi antara tablespace dengan schema. Karena objek dalam
schema yang sama dapat berada pada tablespace yang berbeda, dan sebuah tablesapce dapat
memiliki objek-objek dari schema yang berbeda-beda pula. Struktur lojik dari database Oracle
terdiri dari schema objects, data blocks, extents, segment dan tablespace.

Database Administrator || 2
Gambar 1 Schema Objects, Tablespaces, and Datafiles [1]

1.2.2 Struktur Fisik Database


Struktur fisik sebuah database Oracle terdiri dari datafiles, redo log files, dan control files.
Datafiles
Setiap database Oracle memiliki satu atau lebih fisik datafiles. Datafiles berisi seluruh data
dari database. Data dari setiap struktur lojik database seperti table dan index secara fisik juga
tersimpan dalam datafiles.
Redo Log Files
Setiap database Oracle memiliki sekumpulan dua atau lebih redo log files. Redo log files berisi
kumpulan redo log untuk database. Sebuah redo log terdiri dari redo entries ( atau disebut
juga redo records).
Control Files
Setiap database Oracle memiliki sebuah control files. Sebuah control files berisi informasi
struktur fisik dari database. Misalnya berisi informasi: nama database, nama-nama dan lokasi
redo log files, serta waktu kapan database tersebut dibuat.

Database Administrator || 3
Gambar 2 Databases, Tablespaces, and Datafiles [1]

1.3 ARSITEKTUR ORACLE


Server Oracle terdiri adalah sebuah objek Relational Database Management System (RDBMS)
yang terbuka, komprehensif, terintergasi untuk pengelolaan informasi [1]. Seperti terlihat pada
gambar 3, server Oracle memiliki komponen-komponen, diantaranya komponen utama
(primary komponen) adalah:

Oracle Instance
Adalah kombinasi dari background process dan struktur memori. Instance harus dihidupkan
untuk mengakses data di database. Setiap saat instance dihidupkan (start), System Global Area
(SGA) dan Oracle background process dimulai. SGA adalah area memori yang digunakan
untuk menyimpan informasi-informasi database yang di-share oleh proses-proses di database,
lihat gambar berikut.

Database Administrator || 4
Gambar 3 Oracle arsitektur [3]

1.3.1 Background Process


Background processes memiliki fungsi untuk mewakili setiap proses yang terjadi dalam
Oracle, juga berfungsi untuk mengkonsolidasi setiap fungsi yang disediakan Oracle untuk
menangani program-program Oracle yang diperlukan setiap user. Background process
menangani I/O serta memonitor proses-proses Oracle untuk meningkatkan kemampuan dan
reliabilitas pada penggunaan secara paralel oleh setiap kebutuhan baik server maupun user.
Kumpulan proses yang membentuk arsitektur Oracle terdiri dari dua bagian, yaitu :

1.3.1.1 Background Processes


Proses yang dijalankan dilatar belakang, dan tidak memiliki tampilan GUI (Graphical User
Interface). Di DBMS ORACLE proses yang mandatory untuk background processes terdiri
dari :
a. Background processes pembentuk instance.
b. Listener.
c. Server Processes.

Database Administrator || 5
Sedangkan proses yang optional, terdiri dari:
a. Dispatcher.
b. Management Server.
c. Network Management Agent.
d. Data Gatherer.

1.3.1.2 Foreground Processes


Proses yang di-run di latar depan, dan biasanya memiliki tampilan GUI. Di DBMS ORACLE
proses foreground processes terbagi atas:
a. Server Application
b. Client Application

Process

Background Foreground

Mandatory Optional Server Application. Client Application

Gambar 4 Oracle Process

1.3.2 Instance
Instance sebagai operasi (process) didalam arsitektur Oracle instance dari sudut pandang
proses dan bagian pembentuknya dapat digambarkan sebagai berikut :

Instance

Server Database
Processes

Gambar 5 Instance Oracle

Database Administrator || 6
Terlihat bahwa instance dan server processes digambarkan sebagai suatu operasi, sementara
database digambarkan sebagai sebuah tipe. Bahwa instance adalah suatu background process
dapat dilihat dari menu Control Panel| Administrative Tools|Services pada sistem operasi
windows. Sebuah instance merupakan sebuah kumpulan background process, dimana harus
terdiri atas:
a. Checkpointer, disingkat ckpt.
b. Database Writer, disingkat dbw0.
c. Log-Writer, disingkat lgwr.
d. Process-Monitor, disingkat pmon.
e. System-Monitor, disingkat smon.
f. Recover disingkat reco.

Gambar 6 Background Process Oracle [1]

akan tetapi instance bisa dipandang tidak hanya sebagai sebuah operasi, melainkan juga
sebagai sebuah tipe. Dapat dilihat pada gambar disamping.

Instance

Data cache
Log cache
Repository cache
Miscellaneous cache
Java cache

Start
Gambar 1 Instance Type
Stop

Gambar 7 Tipe Instance

Database Administrator || 7
Dapat dijelaskan disini, kotak pertama berisi nama tipe, kotak kedua berisi bagian-bagian
tipe, kotak ketiga adalah operasi-operasi eksternal yang bisa dilakukan ke objek dari tipe
tersebut.

1.3.3 Database
Seperti halnya dengan instance yang dimodelkan sebagai tipe, database juga dapat dimodelkan
sebagai sebuah tipe, seperti dapat dilihat pada gambar berikut ini :

Database

Data file
Log file
Configuration file

Mount
Open

Gambar 8 Tipe Database [1]

Dapat dilihat terdapat keterkaitan antara database dan instance, yaitu pada instance terdapat
Data cache dan Log cache, sedangkan pada database terdapat Data file dan Log file. Dimana
Data file adalah data yang disimpan didalam Disk, sedangkan Data cache adalah data yang
disimpan didalam memori. Log File merupakan transaction log yang berada didalam Disk,
sedangkan Log cache adalah transaction log yang berada di memori. Oracle memberikan
istilah yang telah digambarkan tadi agak berbeda dalam penulisannya meskipun mempunyai
arti yang sama, berikut ini adalah istilah yang dipakai dalam Oracle.

Instance Database

Buffer cache Data file


Log buffer Redo log file
Shared pool Control file
Large pool
Java pool

Gambar 9 Struktur Instance dan Database Oracle [1]

Database Administrator || 8
1.3.4 Data, Log dan Metadata
Untuk memudahkan pemahamannya, perhatikan ilustrasi berikut ini. Misal kita memiliki
sebuah table dengan nama T, dengan sebuah column dengan nama C, yang pada awalnya tidak
memiliki atau tidak berisi satu record pun. Seandainya table ini sudah dimasukkan kedalam
memori, maka pada saat itu memori instance akan berisi sebagai berikut:

Data cache Log cache Metadata cache


T DBA_tables
C Table_Name Num_rows
T 0

Gambar 10 Sebuah tabel yang sudah dikenal instance

Kemudian jika kita memasukkan satu record ke dalam table T dengan statement INSERT
INTO T VALUES (3). Maka akan didapat gambaran sebagai berikut:

Data cache Log cache Metadata cache


T DBA_tables
C insert into t values (3); Table_Name Num_rows
3 T 1

Gambar 11 Sebuah tabel yang sudah diisi sebuah record

Disini terlihat jelas bahwa data cache berisi data, log cache berisi transaction log statement
pemasukkan data (bukan berisi datanya itu sendiri), dan metadata cache berisi informasi
tentang data. Perubahan pada data cache akan masuk ke data file, perubahan pada log cache
akan masuk ke log files.

1.3.5 INSTANCE
Setelah instance dimulai (dalam status start), database yang sudak ditentukan akan berasosiasi
dengan instance ini. Hal ini disebut dengan mounting database (mount status), dan selanjutnya
database sudah siap untuk diakses dengan status open, artinya setiap user yang memiliki
otorisasi sudah bisa mengakses database tersebut.

Database Administrator || 9
Lebih dari satu instance dapat hidup dalam komputer yang sama, setiap instance mengakses
database fisik masing-masing. Hanya seorang database administrator yang dapat melakukan
start up sebuah instance dan melakukan status open database. Jika sebuah database dalam
status open, lalu seorang administrator melakukan shut down database maka hal tersebut
disebut dengan closed (menutup database). Dalam keadaan closed, semua user tidak dapat
mengakses informasi dalam database. Untuk melakukan startup dan shutdown database
tersebut secara privilege hanya diberikan kepada administrator, sedangkan user normal tidak
dapat melakukan perintah tersebut.

1.3.6 Instance Name


Nama instance pada intinya berbeda dengan nama database, karena instance dikenal di
background process, sedangkan nama database adalah nama untuk membangun database
dalam hal ini kita lihat nama database tersebut menjadi nama folder dari database yang
dibangun.
Nama instance dapat dilihat setelah sebuah database tersebut dibangun pada menu Control
Panel|Administrative Tools|Services. Berikut ini adalah contoh tampilan folder database dan
background processes dari database d1 dengan nama instance i1.

Gambar 12 Nama database pada stuktur direktori Oracle

Database Administrator || 10
Gambar 13 Instance pada Service Windows

Setelah database tercipta, maka pada register windows, instance untuk database tersebut juga
tercipta. Lihat pada tampilan berikut ini:

Gambar 14 Register Oracle di Windows

Operasi-operasi yang dapat dilakukan pada instance adalah operasi Start, Stop, Alter. Operasi
Start dan Stop mudah dilakukan di windows, sedangkan untuk operasi Alter biasanya lebih
banyak dilakukan dalam programming. Lihat tampilan berikut untuk operasi Start dan Stop
dalam menu Administrative Tools|Services.
Database Administrator || 11
Gambar 15 Start/Stop Instance Oracle dari Service Windows

1.3.7 MEMBUAT DATABASE


Membuat database adalah langkah awal dalam mengatur dan mengorganisasi sebuah database
sistem. Membuat database adalah sebuah tugas untuk menyiapkan file-file dalam sistem
operasi dan hanya diperlukan sekali saja melakukannya tanpa peduli akan berapa banyak kita
membuat data files dalam database tersebut. Hal ini adalah tugas sangat penting sebab seorang
administrator harus menentukan database setting, seperti ukuran block dan karakter set yang
tidak mungkin diubah ketika database tersebut terlanjut dibuat. Biasanya juga tergantung dari
sistem operasi yang digunakan, sebuah database bisa saja otomatis dibuat ketika melakukan
instalasi Oracle atau harus membuat database secara manual.
Ada beberapa hal yang perlu dipersiapkan ketika akan membuat sebuah database, diantaranya
adalah, account privileged yang diotentikasi oleh sistem operasi atau menggunakan password
file. Instance telah berjalan serta harus diperiksa apakah kapasitas disk space mencukupi untuk
membuat database yang kita perlukan.

1.3.7.1 Membuat Database


Dalam membuat database di Oracle, terlebih dulu kita harus mempersiapkan folder-folder
yang akan digunakan untuk membangun database tersebut.

Database Administrator || 12
Gambar 16 Lokasi Software Oracle [3]

Folder yang dibutuhkan untuk membangun database tersebut dapat dibangun dari mode DOS
(Disk Operating System) atau dari Windows Explorer, antara lain sebagai berikut:

set ORACLE_BASE = C:\ORACLE


set ORACLE_HOME = %ORACLE_BASE%\90
set ORACLE_SID=<InstanceDatabaseName>
mkdir %ORACLE_BASE%\admin\<DatabaseName>
mkdir %ORACLE_BASE%\admin\<DatabaseName>\bdump
mkdir %ORACLE_BASE%\admin\<DatabaseName>\cdump
mkdir %ORACLE_BASE%\admin\<DatabaseName>\udump
mkdir %ORACLE_BASE%\oradata\<DatabaseName>

Gambar 17 Perintah DOS untuk membuat folder untuk database

Berikut ini adalah sintaks untuk membuat database:


CREATE DATABASE <DatabaseName>
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100

Database Administrator || 13
DATAFILE '<ORACLE_BASE>\oradata\<DatabaseName>\system01.dbf' SIZE 250M
REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
CHARACTER SET WE8MSWIN1252
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo01.log') SIZE
2560K [,
GROUP 2 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo02.log') SIZE 2560K,
GROUP 3 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo03.log') SIZE 2560K];

Gambar 18 Sintaks untuk membuat database

Gambar 19 Oracle Database Files [3]

1.3.7.2 Optimal Flexible Architecture (OFA)


Hal yang penting juga diperhatikan saat melakukan instalasi dan membuat database adalah
mengorganisasi sistem file, sehingga memudahkan dalam mengelola pertumbuhan database,
menambahkan user, membuat database baru dan menambahkan hardware baru ketika kita
menggunakan sistem distribusi pada beberapa disk drive.
Oracle menyediakan standar OFA untuk memberikan solusi dalam mengelola penyimpanan
software Oracle itu sendiri. OFA bertanggung jawab dalam instalasi, tuning dan upgrade
software Oracle dalam sistem operasi, baik unix maupun windows. OFA memfasilitasi
kemudahan dalam mengelola sistem yang kompleks namun dengan upaya pemeliharaan yang
sangat mudah. Pada saat instalasi Oracle, OFA melakukan konfigurasi secara otomatis struktur
direktori di sistem operasi, yaitu:
Database Administrator || 14
a. Oracle_base, adalah merupakan root bagi direktori software Oracle.
b. Oracle_home, adalah subdirektori yang berisi software Oracle dan data. Setiap versi
Oracle jika diinstalasi pada komputer yang sama akan menempati home yang berbeda.

1.3.7.3 Pembuatan Tablespace


Berikut ini adalah sintaks untuk membuat tablespace;
CREATE TABLESPACE "INDX" LOGGING DATAFILE
'<ORACLE_BASE>\oradata\<DatabaseName>\indx01.dbf' SIZE 5M REUSE AUTOEXTEND
ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE "TOOLS" LOGGING DATAFILE
'<ORACLE_BASE>\oradata\<DatabaseName>\tools01.dbf' SIZE 10M REUSE
AUTOEXTEND ON NEXT 320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE "USERS" LOGGING DATAFILE
'<ORACLE_BASE>\oradata\<DatabaseName>\users01.dbf' SIZE 25M REUSE
AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
Gambar 20 Sintaks untuk membuat tablespace

1.3.7.4 Pembuatan Repository


Berikut ini adalah sintaks untuk membuat repository:
@<ORACLE_HOME>\rdbms\admin\catalog.sql;
@<ORACLE_HOME>\rdbms\admin\catexp7.sql;
@<ORACLE_HOME>\rdbms\admin\catblock.sql;
@<ORACLE_HOME>\rdbms\admin\catproc.sql;
@<ORACLE_HOME>\rdbms\admin\catoctk.sql;
@<ORACLE_HOME>\rdbms\admin\catobtk.sql;
@<ORACLE_HOME>\rdbms\admin\caths.sql;
@<ORACLE_HOME>\rdbms\admin\owminst.plb;
connect SYSTEM/manager
@<ORACLE_HOME>\sqlplus\admin\pupbld.sql;
connect SYSTEM/manager
set echo on
spool <ORACLE_HOME>\assistants\dbca\logs\sqlPlusHelp.log
@<ORACLE_HOME>\sqlplus\admin\help\hlpbld.sql helpus.sql;

Gambar 21 Sintaks untuk membuat repository

Database Administrator || 15
1.3.8 ARSITEKTUR DATABASE ORACLE
1.3.8.1 Arsitektur Fisik
Secara fisik, dalam sebuah database Oracle terdiri atas :
- Configuration Files
Digunakan untuk menyimpan konfigurasi dari database (bukan konfigurasi dari instance).
Configuration files berisi fixed-length records. Configuration files berisi antara lain :
a) Database name,
b) Checkpoint,
c) Backup history,
d) Log Sequence,
e) Nama-nama data files,
f) Timestamp pembuatan database,
g) Nama-nama tablespaces.

- Data Files
Digunakan untuk menyimpan data. Data files selalu merupakan bagian dari suatu
tablespace.
- Log Files
Digunakan untuk menyimpan transaction-Log. File ini menyimpan SQL statement yang
berisikan transaksi. Log files juga menyimpan informasi dalam bentuk record.
Note : Operasi SELECT (tanpa clausa FOR UPDATE) tidak akan direkam pada log files karena
bukan sebuah transaksi.

Dalam Oracle, transaction-log file ini sering disebut dengan Redo-Log files.
Dalam sebuah database, umumnya terdiri atas satu atau lebih configuration-files dan data-files
dan dua atau lebih log-files. Untuk ilustrasinya dapat dilihat pada gambar berikut ini.

Config-Files
DATABASE Data-Files
Log-Files 2

Gambar 22 Arsitektur Database Oracle

Database Administrator || 16
1.3.8.2 Arsitektur Logikal
Dalam database Oracle, arsitektur memisahkan secara logis antara basis data dengan
tablespaces. Setiap basis data memiliki satu atau lebih tablespaces, dimana setiap tablespace
memiliki nol atau lebih segment, setiap segment memiliki satu atau lebih extent, dan setiap
extent memiliki satu atau lebih database block. Untuk ilustrasinya dapat dilihat pada gambar
berikut.
Database

Tablespac
e
Segment

Extent

DB-block

Gambar 23 Arsitektur Lojik Oracle

1.3.8.3 Arsitektur Fisik dan Arsitektur Logikal


Untuk lebih memperjelas hubungan antar arsitektur fisik dan arsitektur Logik dalam database
Oracle, dapat dilihat pada ilustrasi gambar berikut ini:

Gambar 24 Arsitektur Fisik dan Lojik Oracle [3]

Database Administrator || 17
1.3.9 CONFIGURATION FILE/ FILE CONTROL
1.3.9.1 Configuration-Files/ Control-Files
Configuration files/Control files adalah sebuah file biner yang dibaca oleh Oracle instance
untuk membuka data files dan log files. Selama database beroperasi/aktif, Oracle instance
akan me-refresh nilai-nilai record pada config-file.
Besar kecilnya database configuration-file tergantung pada banyaknya jumlah file dalam
database tersebut, makin banyak jumlah file dalam database maka database configuration-file
juga turut membesar, akan tetapi hal ini terjadi bukan pada saat penambahan file, melainkan
pada saat database configuration-file di-ReCreate.
Ukuran configuration-file dipengaruhi juga nilai parameter-parameter berikut ini :
a) MAXLOGFILES, diset pada saat pembuatan database
b) MAXDATAFILES, diset pada saat pembuatan database
c) DB_FILES, dispesifikasikan pada instance-configuration files
Default nama extention dari configuration-files yang diberikan oleh Oracle jika dilihat dengan
windows explorer mempunyai extention CTL.

1.3.9.2 Mirroring
Mirroring dalam hal ini adalah adanya salinan (backup) dari file-file yang sedang dioperasikan
dan dibuka pada saat yang sama dan memberikan layanan yang sama pula. Mirroring database
files dalam level DBMS hanya berlaku untuk configuration-files dan log-files (tidak berlaku
untuk data-files).
###########################################
# File Configuration
###########################################
control_files=("C:\oracle\oradata\POS\control01.ctl",
"C:\oracle\oradata\POS\control02.ctl")

Gambar 25 Template file configurations

Pada contoh di atas terdapat dua buah configuration-file yang bersifat mirroring yang
dimaksudkan untuk mempermudah proses operasi database. Setelah mirroring diciptakan,

Database Administrator || 18
perubahan ini harus disimpan dan instance harus di-Restart agar dapat segera berfungsi.
Restart disini dimaksudkan agar instance sekarang mengoperasikan dua buah configuration-
file sekaligus.

1.3.9.3 Startup Nomount


Pada saat suatu instance di-Start tanpa menggunakan fungsi Mount, maka instance tersebut
tidak akan memperdulikan nilai parameter pada control_files. Artinya Instance akan tetap di
mulai (di-Start) walaupun configuration-files tidak terdapat pada lokasi (folder) yang
disebutkan.

1.3.9.4 Startup Mount


Pada saat suatu instance di-Start dengan menggunakan fungsi Mount, maka instance akan
mulai mengecek nilai parameter pada control_files. Dimana instance akan memeriksa apakah
benar configuration-files ada pada lokasi (folder) yang disebutkan. Jika tidak ada, maka
instance akan tetap di mulai (di-Start), akan tetapi instance akan memberikan pesan kesalahan
Database Not Mounted.
Saat database di-Mount, instance baru hanya melakukan pemeriksaan ke configuration-files.
Instance belum memeriksa apakah semua log files dan data files yang tertera pada
configuration-files benar-benar ada secara fisik.

1.3.9.5 Startup Open


Pada tahap ini, instance mulai melakukan pemeriksaan apakah data files dan log files memang
benar-benar ada dilokasi (folder) yang telah disebutkan. Jika terdapat file yang missing atau
corrupt, instance akan tetap di mulai (di-Start) sambil memberikan pesan kesalahan yang
terjadi. Open Database dapat dicapai dengan sequence berikut ini :
SQL> STARTUP NOMOUNT
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE OPEN;

Atau
SQL> STARTUP

Atau

Database Administrator || 19
SQL> STARTUP OPEN

Tingkatan status database sampai dengan status open terlihat seperti di bawah ini, dan
dynamics performance view yang dapat digunakan oleh administrator untuk melihat status
database tersebut.

Gambar 26 Tahapan startup dan shutdown database

1.3.10 LOG FILE/TRANSACTION LOG FILE


1.3.10.1 Log-Files
Log-files/ Transaction Log-files merupakan jenis file yang terpenting kedua, dimana jika Log-
files ini terjadi missing atau corrupt, maka akan mengakibatkan database tersebut tidak dapat
dibuka sama sekali. Operasi-operasi yang dilakukan dalam Log-files adalah:
a. ADD GROUP, menambahkan group log file.
b. DROP GROUP, menghapus grup yang ada.
c. ADD MEMBER, menambahkan log file baru pada sebuah grup.
d. DROP MEMBER, menghapus log file yang ada.
e. SWITCH (group), memindahkan status log yang digunakan sekarang.
f. RENAME, mengubah nama sebuah log file.

Database Administrator || 20
1.3.10.2 Mekanisme: Rotasi
Log-files menyimpan semua aktifitas transaction log yang dilakukan dalam database. Log-files
biasanya tidak ingin disimpan terlalu lama, karena jika semuanya disimpan maka disk yang
ada akan penuh dengan log-files saja. Sehingga dibutuhkan sebuah life-time transaction log
sehingga tidak jatuh terlalu singkat untuk menyimpan data transaction yang dilakukan dalam
sebuah database ataupun terlalu lama sehingga disk akan penuh dengan data transaksi yang
tidak diinginkan. Log transaction yang ada akan hilang atau dihapus setelah mencapai saat
life-time yang telah ditentukan, sehingga kita tidak bisa me-Recover data transaction yang
telah hilang tersebut.
Oracle memberikan keleluasaan untuk mengatur life-time tersebut dengan Mekanisme
Rotasi. Ilustrasi mekanisme ini dapat dilihat pada gambar berikut ini :

Group Group
1 2

Redo Redo
1a.log 2a.log

Gambar 27 Mekanisme Rotasi Log Files

Pada gambar di atas, bila Grup 1 telah penuh, maka instance akan menyimpan data transaksi
di Grup 2, dan bila Grup 2 telah penuh maka instance akan menyimpan data transaksi kembali
ke Grup1.

1.3.10.3 Mirroring
Mirroring dalam Log-files mempunyai peranan yang penting seperti halnya dengan
configuration-file. Oracle menyediakan cara mirroring log files untuk meningkatkan
kehandalan pengoperasian databasenya. Hal ini dikarenakan database sangat rentan dengan
kegagalan atau mungkin kehilangan data. Proses mirroring ini biasanya dilakukan pada media

Database Administrator || 21
disk yang berbeda untuk keamanan semata, sehingga jika pada media disk yang ada terjadi
kerusakan fisik, maka yang pada posisi mirror diharapkan tidak terjadi kerusakan dan masih
dapat dilakukan pengaksesan data. Ilustrasi mirror ini dapat dilihat pada gambar disamping.
Pada intinya mirroring disini adalah pemisahan member-member (dalam Group yang sama) ke
media disk yang berbeda, dan bukan memisahkan group ke media disk yang berbeda.

Group Group
1 2

Redo1 Redo2
a.log a.log

Disk
C
Disk
D
Redo1 Redo2
b.log b.log

Gambar 28 Mirroring Log Files

1.3.10.4 Operasi : SWITCH


Operasi SWITCH ini dipakai untuk memindahkan group yang aktif dalam implementasinya.

SQL> connect/ as sysdba


SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination C:\oracle\920\RDBMS
Oldest online log sequence 87
Current log sequence 89
SQL> set linesize 120
SQL> select * from v$log;

Database Administrator || 22
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- -----------------------
1 1 88 2621440 1 NO INACTIVE 157465
2 1 89 2621440 1 NO CURRENT 177539
3 1 87 2621440 1 NO INACTIVE 157463

SQL> column member format a50


SQL> select * from v$logfile;

GROUP# STATUS TYPE MEMBER


---------- ------- ------- ------------------------------------------
1 STALE ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03.LOG

Gambar 29 Sintaks untuk melakukan swicth log

kemudian kita lakukan operasi SWITCH agar mengaktifkan group 1.


SQL> alter system switch logfile;

System altered.

SQL> select * from v$log;


GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 88 2621440 1 NO INACTIVE 157465
2 1 89 2621440 1 NO ACTIVE 177539
3 1 90 2621440 1 NO CURRENT 177553

SQL> alter system switch logfile;


System altered.

SQL> select * from v$log;


GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 91 2621440 1 NO CURRENT 177554
2 1 89 2621440 1 NO INACTIVE 177539
3 1 90 2621440 1 NO INACTIVE 177553

Database Administrator || 23
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination C:\oracle\920\RDBMS
Oldest online log sequence 89
Current log sequence 91

Gambar 30 Hasil operasi switch

1.3.10.5 Operasi : DROP - Group


Operasi DROP ini dipakai untuk menghapus group yang ada. Sebagai contoh kita akan
menghapus group 3.

SQL> alter database drop logfile group 3;


Database altered.

SQL> select * from v$log;


GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 91 2621440 1 NO CURRENT 177554
2 1 89 2621440 1 NO INACTIVE 177539

SQL> select * from v$logfile;

GROUP# STATUS TYPE MEMBER


---------- ------- ------- ------------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG

Gambar 31 Hasil operasi drop grup file nomor 3

kemudian cek pada Operating System apakah file tersebut telah terhapus.
SQL> host dir C:\ORACLE\ORADATA\POS\REDO*.log
Volume in drive C is SYSTEM
Volume Serial Number is 10FA-A36F

Database Administrator || 24
Directory of C:\ORACLE\ORADATA\POS
13/11/2005 22:52 2.621.952 REDO01.LOG
13/11/2005 22:51 2.621.952 REDO02.LOG
13/11/2005 22:52 2.621.952 REDO03.LOG
3 File(s) 7.865.856 bytes
0 Dir(s) 694.345.728 bytes free

Gambar 32 Hasil Pengecekan file yang terhapus

Terlihat bahwa file tidak terhapus di level Operating System. Sehingga penghapusan file harus
dilakukan menggunakan perintah pada sistem operasi.

1.3.10.6 Operasi : ADD MEMBER


Operasi ADD MEMBER ini dipakai untuk menambah member untuk menciptakan mirroring
log-files.
SQL> alter database
2 add logfile member
3 'C:\ORACLE\ORADATA\POS\REDO01B.LOG' to group 1,
4 'C:\ORACLE\ORADATA\POS\REDO02B.LOG' to group 2;

Database altered.

SQL> select * from v$log;


GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 91 2621440 2 NO CURRENT 177554
2 1 89 2621440 2 NO INACTIVE 177539

SQL> select * from v$logfile;

GROUP# STATUS TYPE MEMBER


---------- ------- ------- ----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 INVALID ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG

Database Administrator || 25
2 INVALID ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG

Gambar 33 Menambahkan member log file

perhatikan bahwa v$logfile menyatakan bahwa status member yang baru saja dibuat adalah
INVALID, kemudian akan kita ubah menjadi VALID.
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 INVALID ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 93 2621440 2 NO CURRENT 177572
2 1 92 2621440 2 NO INACTIVE 177570

Gambar 34 Mengaktifkan member baru

1.3.10.7 Operasi : ADD GROUP


Operasi ADD GROUP ini dipakai untuk menambah Group kedalam database.
SQL> alter database
2 add logfile

Database Administrator || 26
3 ('C:\ORACLE\ORADATA\POS\REDO03.LOG',
4 'C:\ORACLE\ORADATA\POS\REDO03B.LOG')
5 size 1M;
Database altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 93 2621440 2 NO CURRENT 177572
2 1 92 2621440 2 NO INACTIVE 177570
3 1 0 1048576 2 YES UNUSED 0
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- ------------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03B.LOG
6 rows selected.

Gambar 35 Menambahkan grup

Lihat untuk pertama kali, SEQUENCE# bernilai 0 untuk group yang baru, dengan status
UNUSED. Kemudian akan diubah dengan menggunakan operasi SWITCH.

SQL> alter system switch logfile;


System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 93 2621440 2 NO ACTIVE 177572
2 1 92 2621440 2 NO INACTIVE 177570
3 1 94 1048576 2 NO CURRENT 177582

Gambar 36 Mengaktifkan grup yang baru ditambahkan

Database Administrator || 27
1.3.10.8 Operasi : DROP - Member
Operasi DROP ini dipakai untuk menghapus member yang ada. Sebagai contoh kita akan
menghapus member dari group 3 yang baru dibuat. (yang sekarang statusnya current)
SQL> alter database
2 drop logfile member
3 'C:\ORACLE\ORADATA\POS\REDO03B.LOG';
alter database
*
ERROR at line 1:
ORA-01609: log 3 is the current log for thread 1 - cannot drop members
ORA-00312: online log 3 thread 1: 'C:\ORACLE\ORADATA\POS\REDO03.LOG'
ORA-00312: online log 3 thread 1: 'C:\ORACLE\ORADATA\POS\REDO03B.LOG'

Gambar 37 Menghapus member log file dari sebuah grup

Kesalahan terjadi karena kita tidak dapat menghapus member (dan group) bila sedang dalam
keadaan current. Oleh karena itu harus kita switch terlebih dahulu.

SQL> alter system switch logfile;


System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 96 2621440 2 NO CURRENT 177589
2 1 95 2621440 2 NO INACTIVE 177587
3 1 94 1048576 2 NO INACTIVE 177582
SQL> alter database
2 drop logfile member
3 'C:\ORACLE\ORADATA\POS\REDO03B.LOG';
Database altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG

Database Administrator || 28
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03.LOG

Gambar 38 Non aktifkan grup dimana member akan dihapus

Latihan :
1) Hilangkan member dan group 3.
2) Buatlah Group 3 dan 4 berikut 2 buah member.

1.3.11 TABLESPACE
Tablespace berasal dari dua kata ‘Table’ dan ‘Space’ yang mempunyai makna ruang untuk
tabel. Sehingga motivasi utama dari tablespace adalah 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 yang lain diruang yang lainnya. Saat ini beberapa DBMS lainnya juga memakai
konsep tablespace (contohnya DB2, Informix) dan mengimplementasikan tablespace (contoh
SQL Server memakai istilah ‘Database’).

1.3.11.1 Jenis Tablespace


Jenis-jenis tablespace yang ada pada Oracle dapat dilihat pada gambar berikut ini:

TABLESPACE

System-defined User-defined

Globally-managed Locally-managed

Permanent Temporary Permanent Temporary

Gambar 39 Jenis – Jenis Tablespace

Database Administrator || 29
Pada Oracle database, hanya satu tablespace yang harus ada (mandatory), yakni tablespace
bernama SYSTEM, dan bersifat system-defined (‘system’ disini berarti Database Management
System atau DBMS). Tablespace ini juga khusus, karena merupakan satu-satunya tablespace
yang bisa berisi objek non-segment.
Untuk tablespace yang lain harus buat 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’. Sedangkan untuk Globally-managed, Locally-managed, Permanent dan Temporary
akan dibahas pada bab selanjutnya.
Berikut ini adalah 7 (tujuh) buah tablespace yang paling umum atau sering digunakan dalam
membangun database Oracle.

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

Tabel 1 Nama – Nama Tablespace Oracle

Dari sini dapat dilihat bahwa kriteria utama untuk memisahkan tablespace adalah melalui tipe
segment 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 dapat dilihat bahwa untuk lima tablespace yang pertama (Tables
sampai dengan Sorts) memakai nama benda jamak, dalam hal ini adalah untuk
memperlihatkan bahwa tablespace ini berisi kumpulan segments. Sedangkan untuk dua
tablespace terakhir (System dan Tool) memakai nama benda tunggal, hal ini untuk

Database Administrator || 30
memperlihatkan pemisahan kedua tablespace ini dengan tablespace yang lainnya bukan
berdasarkan jenis segmennya.

1.3.11.2 Operasi untuk Tablespace


Operasi-operasi yang digunakan pada umumnya sama dengan operasi-operasi objek yang
lainnya, antara lain:

Gambar 40 Membuat Tablespace dengan Type [4]

CREATE
Berikut ini adalah Sintaks untuk penulisan CREATE TABLESPACE

Gambar 41 Sintaks untuk membuat tablespace

Database Administrator || 31
Contoh sintaks membuat tablespace
CREATE TABLESPACE POLTEKPOS
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\DTPOS.DBF’ SIZE 5 M;

ALTER
Berikut ini adalah sintaks untuk penulisan ALTER TABLESPACE

Gambar 42 Sintaks untuk mengubah tablespace

Contoh sintaks mengubah tablespace;


ALTER TABLESPACE POLTEKPOS
ADD DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\DTPOS1.DBF’ SIZE 5 M;

DROP
Ada tiga kasus dalam menghapus sebuah tablespace, hal ini dikarenakan:

Database Administrator || 32
- Tablespace tidak berisi segment.
Contoh sintaks menghapus tablespace.
DROP TABLESPACE POLTEKPOS;

- Tablespace berisi segment tanpa kendala referensial ke objek pada tablespace yang
lain
Contoh sintaks menghapus tablespace
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS;

- Tablespace berisi segment dengan kendala referensial ke objek pada tablespace yang
lain.
Contoh sintaks menghapus tablespace
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS CASCADE CONSTRAINTS;

Dalam Oracle versi 9i ada fasilitas untuk membuang tablespace secara langsung berikut
dengan data filenya. Contohnya :
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS AND DATAFILES;

Database Administrator || 33
1.3.12 DATAFILES
Seperti halnya Configuration-files dan log-files, data-files adalah bentuk fisik yang dapat
dilihat oleh user dalam menggunakan database Oracle. Operasi yang berlaku untuk datafiles
adalah :
a) ADD, menambahkan data file,
b) OFFLINE, membuat status data file tidak dapat diakses oleh user,
c) ONLINE, membuat status data file tersedia bagis user,
d) RESIZE, menambah ukuran datafile,
e) RENAME, mengubah nama datafile.
Dalam sistem operasi yang mempunyai arsitektur 32-bit, ukuran data file yang dibuat tidak
memungkinkan untuk membuat sebuah data-files dengan ukuran lebih dari 2048 MB (atau
sama dengan 2 GB), hal ini dikarenakan cara perhitungan ukuran di database Oracle yang
menggunakan Signed-bit. Akan tetapi jika sistem operasi yang digunakan mempunyai
arsitektur 64-bit dan database Oracle-nya juga 64-bit, maka kita dapat membuat sebuah
datafiles yang mempunyai ukuran data file lebih dari 2048 MB (atau sama dengan 2 GB).
Selanjutnya ukuran sebenarnya data yang dibuat dapat dilihat dari rumus berikut ini:
Data-File = Spesifikasi Ukuran + DB-block-size

Sebagai contoh, jika kita menentukan ukuran data sebesar 5120 KB (atau sama dengan 5 MB)
dan besarnya DB-block-size adalah 2 KB, maka ukuran sebenarnya data-file yang dibuat
adalah 5122 KB (bukan 5 MB).
Tidak seperti configuration-files dan log-files yang dapat melakukan proses mirroring, untuk
keamanan transaksinya, data-files tidak dapat melakukan proses mirroring secara langsung,
akan tetapi harus menggunakan perangkat keras yang khusus (disk yang khusus) dan
perangkat lunak yang khusus (contohnya Veritas).
Data-files dapat diperbesar (extend), satuan untuk perbesaran ini disebut dengan extension.
Dengan menggunakan Database Configuration Assistant kita dapat menentukan spesifikasi
ini melalui kotak dialog seperti berikut. Pada gambar dapat dilihat bahwa data ditentukan
dapat diperbesar 10 MB setiap kali perbesaran. Ekuivalensi dalam script untuk contoh gambar
tersebut adalah sebagai berikut:

Database Administrator || 34
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\DTPOS.DBF’ SIZE 5 M
REUSE AUTOEXTEND ON NEXT 10240 KB;

Gambar 43 Extend Datafile secara otomatis

bila data dispesifikasikan agar tidak dapat diperbesar, maka AUTOEXTEND OFF, dan pada
kotak dialog akan terlihat tampilan sebagai berikut:

Gambar 44 Extend Otomatis dimatikan

Database Administrator || 35
Latihan:
1. Buatlah sebuah tablespace dengan nama Kelas Anda.
Contoh :
CREATE TABLESPACE TI2A
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\TI2A.DBF’
SIZE 5 M;

2. Jalankan statement berikut ini :


SELECT * FROM DBA_TABLESPACES;
Analisa hasil dari statement tersebut.

3. Jalankan statement berikut ini :


SELECT * FROM DBA_DATA_FILES;
Analisa hasil dari statement tersebut.

4. Jalankan statement berikut ini :


SELECT NAME,
FILE#,
STATUS FROM v$datafile;
Analisa hasil dari statement tersebut.

5. Ubahlah ukuran tablespace yang anda buat


Contoh :
ALTER TABLESPACE TI2A
ADD DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\TI2A1.DBF’
SIZE 5 M;
Lihat perubahan yang terjadi dengan DBA_TABLESPACES dan v$datafile

6. Ubah status tablespace anda yang semula ONLINE menjadi OFFLINE


Contoh:

Database Administrator || 36
ALTER TABLESPACE TI2A OFFLINE NORMAL;

7. Pindahkan tablespace yang anda buat ke tablespace yang baru.


Contoh :
ALTER TABLESPACE TI2A RENAME
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\TI2A1.DBF’
TO ‘C:\ORACLE\ORADATA\POLTEK1\TI2A1.DBF’;
a) Apa yang terjadi pada saat menjalankan perintah tersebut, amati dan lakukan
sampai terjadi pemindahan tablespace.
b) Cek perubahan yang terjadi dengan DBA_TABLESPACES dan v$datafile.

8. Buatlah sebuah USER yang mempunyai default ke tablespace yang anda buat.
Contoh Format Penulisan :
CREATE USER <NamaUser>
IDENTIFIED BY <PasswordUser>
DEFAULT TABLESPACE <NamaTablespace>
ACCOUNT UNLOCK;

9. Berikan hak akses pada user yang anda buat sebagai DBA, CONNECT dan
RESOURCE.
Contoh Format Penulisan :
GRANT <HakAkses> TO <NamaUser>;

Kemudian logout dengan


DISCONNECT;
Login kembali sebagai user yang baru anda buat

10. Buatlah table dibawah dengan contoh format penulisan sebagai berikut :
CREATE USER <NamaTabel>
(<NamaField-1> <NamaTipe-1> <Length-1>,

Database Administrator || 37
<NamaField-2> <NamaTipe-2> <Length-2>,...
<NamaField-n> <NamaTipe-n> <Length-n>)
TABLESPACE <NamaTablespace>;

Table: Mahasiswa
Field Name Data Tipe Primary Key
NPM VarChar2(7) Yes
Nama VarChar2(20) No
Alamat VarChar2(30) No
TglLahir Date No

Table: MataKuliah
Field Name Data Tipe Primary Key
KodeMK VarChar2(7) Yes
NamaMK VarChar2(20) No
SKS Integer No

Table: Perkuliahan
Field Name Data Tipe Primary Key
NPM VarChar2(7) Yes
KodeMK VarChar2(7) Yes
HariJamPertemuan VarChar2(20) No
RuangPertemuan VarChar2(20) No

11. Isilah masing-masing table yang dibuat tadi dengan minimal 5 buah data

1.3.13 SEGMENT, EXTENT DAN BLOCK


1.3.13.1 Segment
Segment adalah tipe untuk objek-objek yang persistent (disimpan permanen didalam disk).
Secara sederhana ada 5 (lima) jenis segment yang sering dipergunakan dalam database oracle,
yaitu:
1) Table Segment.
2) Index Segment.
3) Cluster Segment.
4) Undo Segment.
5) Sort Segment.

Database Administrator || 38
Gambar 45 Hubungan antara Segments, Extents, dan Data Blocks [1]

Dari kelima segment ini hanya Table Segment, Index Segment, dan Undo Segment yang dapat
dilakukan proses eksplisit CREATE, ALTER, dan DROP. Untuk lebih lengkapnya, berikut ini
adalah tipe-tipe segment yang ada pada database Oracle.

Tipe Segment Keterangan


Cache Dikendalikan seluruhnya oleh Instance bukan oleh DBA
Sering juga disebut dengan ROLLBACK SEGMENT, diatur oleh
Undo
DBA
Table Sering juga disebut dengan DATA SEGMENT, diatur oleh DBA
Cluseter Jarang dipergunakan, diatur oleh DBA
Index Diatur oleh DBA
Non-Segment Digunakan untuk operasi Procedure, function, trigger, package
Sort Sering juga disebut dengan TEMPORARY SEGMENT
Table Partition Muncul mulai Oracle versi 8i
Index Partition Muncul mulai Oracle versi 8i
Table Subpartition Muncul mulai Oracle versi 8i
Index Subpartition Muncul mulai Oracle versi 8i

Tabel 2 Tipe Segment

Database Administrator || 39
1.3.13.2 Klausa Storage
Klausa storage digunakan sejalan dengan hirarki logical aspec dari suatu database, yaitu:
a) Database,
b) Tablespace,
c) Segment,
Contoh penggunaan storage dapat dilihat sebagai berikut:
CREATE TABLESPACE Tables
DATAFILE ‘C:\ORACLE\ORADATA\DTPOS\TABLES01.DBF’
SIZE 5M AUTOEXTEND ON NEXT 5M
DEFAULT STORAGE (INITIAL 160K NEXT 160K PCTINCREASE 0);

CREATE TABLE t (a number)


TABLESPACE tables
STORAGE (INITIAL 80K NEXT 80K PCTINCREASE 0);

Pada contoh pertama, klausa storage ditentukan pada level tablespace, sedangkan pada contoh
kedua, klausa storage ditentukan pada level segment. Pada contoh pertama, menyatakan
bahwa extent-extent di tablespace tables akan berukuran 160k, sedangkan pada contoh kedua
extent-extent di segment t akan berukuran 80K.
Dalam hal ini memang tidak ada hubungan langsung antara Tablespace dengan Extent, yang
ada hanyalah hubungan langsung antara Tablespace dengan Segment, dan antara Segment
dengan Extent. Artinya, perintah pada contoh pertama menyatakan secara tidak langsung
bahwa semua segment dalam tablespace tables akan memiliki extent sebesar 160K.

1.3.13.3 Extent
Extent adalah sebuah objek yang merupakan gabungan satu atau lebih objek bertipe block
sehingga block-block tersebut contiguous. Sederetan blok-blok yang tidak contiguous
bukanlah suatu extent. Operasi yang berlaku pada extent hanyalah ALLOCATE dan
DEALLOCATE

Database Administrator || 40
1.3.13.4 Block
Block adalah bagian terkecil dari sebuah extent. Operasi yang berlaku pada block adalah
DEALLOCATE.

1.3.13.5 Storage Extent


Perhatikan contoh penggunaan dalam operasi CREATE TABLE berikut ini :
CREATE TABLE Departemen
(DeptId NUMBER(4),
DeptName VARCHAR2(40))
TABLESPACE tables
STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0 MAXEXTENTS 256);

Bandingkan dengan code imaginer untuk melihat keterkaitan hirarki database secara logis;
CREATE TABLE SEGMENT Departemen
(DeptId NUMBER(4),
DeptName VARCHAR2(40))
TABLESPACE tables
EXTENT (INITIAL 10K NEXT 10K PCTINCREASE 0 MAX 256);

Terlihat adanya keterkaitan hirarki tablespace  segment  extent dalam penulisan kode di
atas, dimana membuat segment (bertipe table) dengan nama Departemen, pada tablespace
bernama tables, dengan initial extent 10Kb, next 10Kb dan maksimum dari extent sebanyak
256.
Sintaks storage extent di dalam tablespace umumnya harus didahului dengan kata kunci
DEFAULT. Perhatikan contoh berikut ini:
CREATE TABLESPACE Tables
DATAFILE ‘C:\ORACLE\ORADATA\DTPOS\TABLES01.DBF’
SIZE 5M AUTOEXTEND ON NEXT 5M MAXSIZE 2040M
DEFAULT STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0
MAXEXTENTS UNLIMITED);

1.3.13.6 Storage Block


Database Administrator || 41
Penggunaan blok diatur oleh nilai dari 2 (dua) buah parameter, yaitu :
a) PCTFREE,
b) PCTUSED,
Dimana parameter ini diberikan pada saat operasi CREATE TABLE, CREATE INDEX,
ALTER TABLE atau ALTER INDEX. Bila pemakaian suatu blok mempunyai nilai dibawah
nilai PCTUSED, maka operasi INSERT diperbolehkan untuk memasukkan sebuah row atau
record kedalam blok tersebut. Bila persentasi pemakaian suatu blok mencapai (100 -
PCTFREE), maka operasi INSERT tidak bisa lagi memasukkan baris atau record kedalam
blok tersebut.
Contoh penggunaannya: Jika
DB_BLOCK_SIZE = 40
PCTFREE = 10
PCTUSED = 80, maka :
a) Operasi INSERT tidak akan bisa memasukkan row atau record kedalam blok bila blok
sudah dipakai sebanyak 90% (100% - 10%). Artinya operasi INSERT tidak akan
memasukkan row atau record kedalam blok tersebut bila operasi INSERT-INSERT
sebelumnya telah memakai ukuran 36Kb.
b) Operasi INSERT kembali dapat memasukkan row atatu record kedalam blok jika
pemakaian blok sudah dibawah 80% (sudah dibawah 32KB).

1.3.14 TABLE SEGMENT


Table segment biasa disebut dengan table, hal ini dikarenakan table adalah sebuah tipe, salah
satu dari tipe segment.

1.3.15 Membuat Table


Membuat table berarti membuat segment, adapun sintak untuk membuatnya adalah sebagai
berikut:
CREATE TABLE table_name
( field_name type_expr [NOT] {NULL}
[CONSTRAINT constraint_name PRIMARY KEY PK_field_name] |
[CONSTRAINT constraint_name UNIQUE Unique_field_name] |

Database Administrator || 42
[CONSTRAINT constraint_name FOREIGN KEY FK_field_name] |
[CONSTRAINT constraint_name CHECK expr_logic]
)
[ORGANIZATION INDEX]
[TABLESPACE tablespace_name]
[STORAGE [MINEXTENTS number] |
[MAXEXTENTS number] |
[INITIAL number] |
[NEXT number] |
[PCTINCREASE number]]
[PCTFREE number | PCTUSED number];

1.3.16 Index-Organized Table (IOT)


Sebuah IOT bisa disebut sebagai index, dan bisa disebut sebagai tabel. Sebuat IOT disebut
sebagai tabel karena operasi-operasi berikut ini:
a) CREATE TABLE, perintah membuat tabel.
b) ALTER TABLE, mengubah tabel.
c) DROP TABLE, menghapus tabel.
d) TRUNCATE TABLE, menghapus isi tabel,
e) SELECT, perintah untuk memilih kolom,
f) INSERT, perintah untuk memasukan data,
g) UPDATE, perintah untuk mengubah data,
h) DELETE, perintah untuk menghapus data.
Selain itu, IOT disebut sebagai sebuah index karena sebuah IOT disimpan secara fisik sebagai
sebuah B-Tree (Index Segment). Berikut ini adalah contoh penggunaan IOT.

CREATE TABLE IOT_Pesanan


( KodePesanan NUMBER(5) NOT NULL,
KodeCust NUMBER(5),
Tanggal DATE,
TOTAL NUMERIC(11,2),
BrgDiterima CHAR,

Database Administrator || 43
CONSTRAINT PK_IOT_PESANAN PRIMARY KEY (KodePesanan),
CONSTRAINT C_IOT_PESANAN CHECK (BrgDiterima IN (‘N’,’Y’)) )
ORGANIZATION INDEX
TABLESPACE indexes
PCTTHRESHOLD 20
OVERFLOW TABLESPACE tables;

Kemudian cek isi dari USER_SEGMENTS


SELECT segment_name, segment_type, tablespace_name
From user_segments;

Hasilnya adalah :
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------ -------------------- ----------------
SYS_IOT_OVER_5251 TABLE TABLES
PK_IOT_PESANAN INDEX INDEXES

Perhatikan terdapat satu tabel dengan nama yang system-defined (tidak didefinisikan oleh
user) [SYS_IOT_OVER_5251] dan ada satu index yang namanya berasal dari nama constraint
yang didefinisikan oleh user. Kemudian cobalah sintaks berikut ini dan kemudian perhatikan
hasil yang muncul.
SELECT table_name, tablespace_name From user_tables;

Hasilnya adalah :
TABLE_NAME TABLESPACE_NAME
------------------------------ --------------------------
IOT_PESANAN
SYS_IOT_OVER_5251 TABLES

SELECT index_name, tablespace_name From user_indexes;

Hasilnya adalah :

Database Administrator || 44
INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------
PK_IOT_PESANAN INDEXES

Terlihat bahwa ada tabel tambahan bernama [SYS_IOT_OVER_5251] dan justru tabel yang
system-defined inilah yang jelas tablespace-nya (TABLES). IOT_PESANAN sendiri tidak
terdefinisi tablespace-nya. Segment yang juga terdefinisi tablespace-nya adalah
PK_IOT_PESANAN yang bertipe index. Dari sini terlihat bahwa IOT memang secara storage
(segment) merupakan sebuah index, namun sebagai ‘object’ dapat dioperasikan sebagai table
(dengan operasi SELECT, UPDATE, DELETE, INSERT).

1.3.17 Menghapus Table


Sintaks untuk menghapus tabel seperti telah dipraktekkan sebelumnya adalah sebagai berikut:
DROP TABLE table_name [CASCADE CONSTRAINTS];

Drop hanya bisa dilakukan per satu tabel. Membuang satu segment (table) berarti membuang
semua extent milik segment tersebut dari data files. Membuang suatu tabel juga berarti
membuang semua objek yang bergantung kepadanya. Cascade Constraints digunakan jika
tabel yang akan dibuang adalah Master-Table, dimana tabel ini diacu oleh tabel lain. Tanpa
sintaks ini, suatu Master-Table akan gagal untuk dihapus.

1.3.18 Truncate Table


Operasi TRUNCATE berguna untuk mengosongkan table. Operasi ini jauh lebih cepat
daripada menghapus semua record yang ada pada table dengan diikuti perintah COMMIT.
Adapun sintaksnya adalah sebagai berikut:
TRUNCATE TABLE table_name;

1.3.19 Partitioning Table

Database Administrator || 45
Partitioning table pada Oracle adalah berguna untuk memisahkan kelompok data yang dibuat
sesuai dengan keinginan. Adapun beberapa macam partitioning table yang terdapat pada
Oracle adalah sebagai berikut:
a) Range Partitioning
Umumnya partisi ini digunakan untuk memisahkan data menurut tanggal.
b) List Partitioning
Umumnya partisi ini digunakan untuk memisahkan data menurut tipe data yang
diinginkan.
c) Hash Partitioning
Partisi yang dibangun menggunakan Hashing.
d) Composite Partitioning
Gabungan dari Partisi yang ada di atas.

1.3.20 Range Partitioning


Berikut ini adalah contoh penggunaan Range Partitioning Table pada Oracle:
CREATE TABLE cust_order (
order_nbr NUMBER(7) NOT NULL,
cust_nbr NUMBER(5) NOT NULL,
order_dt DATE NOT NULL,
sales_emp_id NUMBER(5) NOT NULL,
sale_price NUMBER(9,2),
expected_ship_dt DATE,
cancelled_dt DATE,
ship_dt DATE,
status VARCHAR2(20))
PARTITION BY RANGE (order_dt)
(PARTITION orders_2002
VALUES LESS THAN (TO_DATE('01-JAN-2003','DD-MON-YYYY')),
PARTITION orders_2003
VALUES LESS THAN (TO_DATE('01-JAN-2004','DD-MON-YYYY')),
PARTITION orders_2004
VALUES LESS THAN (TO_DATE('01-JAN-2005','DD-MON-YYYY'))
);

Untuk melihat hasil partition yang dibangun gunakan sintaks berikut ini :
SQL> SELECT TABLE_NAME, PARTITION_NAME, SUBPARTITION_COUNT FROM
USER_TAB_PARTITIONS;

TABLE_NAME PARTITION_NAME SUBPARTITION_COUNT

Database Administrator || 46
-------------------- ------------------------- ------------------
CUST_ORDER ORDERS_2002 0
CUST_ORDER ORDERS_2003 0
CUST_ORDER ORDERS_2004 0

Untuk melihat nilai partisi yang telah dibangun, gunakan sintaks berikut ini:
SQL> SELECT TABLE_NAME, HIGH_VALUE, PARTITION_NAME FROM
USER_TAB_PARTITIONS;

TABLE_NAME HIGH_VALUE PARTITION_NAME


-------------------- ------------------------------ -----------------
CUST_ORDER TO_DATE(' 2003-01-01 00:00:00' ORDERS_2002
, 'SYYYY-MM-DD HH24:MI:SS', 'N
LS_CALENDAR=GREGORIA
CUST_ORDER TO_DATE(' 2004-01-01 00:00:00' ORDERS_2003
, 'SYYYY-MM-DD HH24:MI:SS', 'N
LS_CALENDAR=GREGORIA
CUST_ORDER TO_DATE(' 2005-01-01 00:00:00' ORDERS_2004
, 'SYYYY-MM-DD HH24:MI:SS', 'N
LS_CALENDAR=GREGORIA

Kemudian cobalah mengisi tabel tersebut dengan beberapa data.

1.3.21 Melihat isi Partitioning


Untuk melihat isi data pada table kita menggunakan sintaks berikut ini
SELECT * FROM cust_order;
SELECT * FROM cust_order PARTITION (order_2004);

1.3.22 List Partitioning


Berikut ini adalah contoh penggunaan List Partitioning table pada Oracle
CREATE TABLE sales_fact (
state_cd VARCHAR2(3) NOT NULL,
month_cd NUMBER(2) NOT NULL,
year_cd NUMBER(4) NOT NULL,
product_cd VARCHAR2(10) NOT NULL,

Database Administrator || 47
tot_sales NUMBER(9,2) NOT NULL)
PARTITION BY LIST (state_cd)
(PARTITION sales_newengland VALUES ('CT','RI','MA','NH','ME','VT'),
PARTITION sales_northwest VALUES ('OR','WA','MT','ID','WY','AK'),
PARTITION sales_southwest VALUES ('NV','UT','AZ','NM','CO','HI'),
PARTITION sales_southeast VALUES ('FL','GA','AL','SC','NC','TN','WV'),
PARTITION sales_east VALUES ('PA','NY','NJ','MD','DE','VA','KY','OH'),
PARTITION sales_california VALUES ('CA'),
PARTITION sales_south VALUES ('TX','OK','LA','AR','MS'),
PARTITION sales_midwest VALUES ('ND','SD','NE','KS','MN','WI','IA',
'IL','IN','MI','MO')
);

1.3.23 Composite Partitioning


Berikut ini adalah contoh penggunaan Composite Partitioning Table pada Oracle:
CREATE TABLE cust_order (
order_nbr NUMBER(7) NOT NULL,
cust_nbr NUMBER(5) NOT NULL,
order_dt DATE NOT NULL,
sales_emp_id NUMBER(5) NOT NULL,
sale_price NUMBER(9,2),
expected_ship_dt DATE,
cancelled_dt DATE,
ship_dt DATE,
status VARCHAR2(20))
PARTITION BY RANGE (order_dt)
SUBPARTITION BY HASH (cust_nbr) SUBPARTITIONS 4
STORE IN (system,system,system,system)
(PARTITION orders_2002
VALUES LESS THAN (TO_DATE('01-JAN-2003','DD-MON-YYYY'))
(SUBPARTITION orders_2002_s1,
SUBPARTITION orders_2002_s2,
SUBPARTITION orders_2002_s3,
SUBPARTITION orders_2002_s4),
PARTITION orders_2003
VALUES LESS THAN (TO_DATE('01-JAN-2004','DD-MON-YYYY'))

Database Administrator || 48
(SUBPARTITION orders_2003_s1,
SUBPARTITION orders_2003_s2,
SUBPARTITION orders_2003_s3,
SUBPARTITION orders_2003_s4),
PARTITION orders_2004
VALUES LESS THAN (TO_DATE('01-JAN-2005','DD-MON-YYYY'))
(SUBPARTITION orders_2004_s1,
SUBPARTITION orders_2004_s2,
SUBPARTITION orders_2004_s3,
SUBPARTITION orders_2004_s4));

Untuk melihat hasil partition yang dibangun gunakan sintaks berikut ini:
SQL> SELECT TABLE_NAME, PARTITION_NAME,SUBPARTITION_COUNT FROM
USER_TAB_PARTITIONS;

TABLE_NAME PARTITION_NAME SUBPARTITION_COUNT


-------------------- ----------------------------- ------------------
SALES_FACT SALES_NEWENGLAND 0
SALES_FACT SALES_NORTHWEST 0
SALES_FACT SALES_SOUTHWEST 0
SALES_FACT SALES_SOUTHEAST 0
SALES_FACT SALES_EAST 0
SALES_FACT SALES_CALIFORNIA 0
SALES_FACT SALES_SOUTH 0
SALES_FACT SALES_MIDWEST 0
CUST_ORDER ORDERS_1999 4
CUST_ORDER ORDERS_2000 4
CUST_ORDER ORDERS_2001 4

1.3.24 Mengubah Nama Partitioning


Berikut ini adalah contoh untuk mengubah nama partisi yang telah dibangun
ALTER TABLE cust_order
RENAME PARTITION orders_2005 TO order_thn_2005;

1.3.25 Menghapus Partitioning

Database Administrator || 49
Berikut ini adalah contoh untuk menghapus partisi yang telah dibuat
ALTER TABLE cust_order
DROP PARTITION order_thn_2005;

1.3.26 INDEX SEGMENT


Index segment biasa disebut dengan Index, hal ini dikarenakan index adalah sebuah tipe, salah
satu dari tipe segment. Operasi-operasi yang berlaku pada index lebih terbatas dibandingkan
dengan tabel, yaitu:
a) CREATE INDEX.
b) ALTER INDEX.
c) DROP INDEX.

1.3.26.1 Struktur B-Tree Index


Struktur B-Tree adalah struktur yang paling umum dalam index didalam database Oracle.
Sesuai dengan namanya ‘tree’ dimana terdapat percabangan dan daun pada struktur ‘tree’ nya.
Akan tetapi Oracle instance secara otomatis akan berusaha agar kedalaman dari cabang di
‘tree’ untuk indeks tersebut akan sama antara cabang yang satu dengan cabang yang lainnya.

1.3.26.2 Struktur Bitmap Index


Struktur Bitmap Index berguna untuk mengindeks kolom-kolom yang mempunyai rentang
nilainya rendah, contohnya adalah kolom jenis kelamin (dengan ‘L’ untuk Laki-laki, dan ‘P’
untuk Perempuan). Bitmap index untuk kolom seperti ini akan menghabiskan space jauh lebih
kecil daripada B-Tree Index.

1.3.26.3 Membuat Index


Index bisa dibuat secara otomatis maupun manual. Objek-objek yang dibuat secara otomatis
terjadi saat sebuah table memiliki Constraints Primary Key atau Unique Key. Untuk
pembuatan index secara manual, kita bisa menggunakan operasi Create Index dengan sintaks
sebagai berikut:
CREATE [BITMAP] INDEX index_name
ON table_name (column_name)

Database Administrator || 50
[TABLESPACE tablespace_name];

1.3.26.4 Menghapus Index


Menghapus Index juga bisa dilakukan secara otomatis maupun manual. Index-index yang ada
secara otomatis terhapus saat sebuah table yang memiliki Constraints, dihapus Constraint
Primary-Key atau Unique-Keynya. Untuk menghapus index secara manual, kita bisa
menggunakan sintaks berikut ini:
DROP INDEX index_name;

Index juga akan dihapus secara otomatis jika tabel asalnya dihapus.

1.3.26.5 LATIHAN MANDIRI


1. Buatlah sebuah tablespace dengan nama Hotel + Kelas Anda.
Contoh : HotelTI2A
CREATE TABLESPACE HotelTI2A
DATAFILE 'C:\HotelTI2A.DBF'
SIZE 5M AUTOEXTEND ON NEXT 5M MAXSIZE 2040M
DEFAULT STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0
MAXEXTENTS UNLIMITED)
2. Buatlah user untuk mengakses tablespace yang baru anda buat tersebut.
Contoh : Username : admin
Password : adm
CREATE USER ADMIN
IDENTIFIED BY ADM
DEFAULT TABLESPACE HOTELTI2A
ACCOUNT UNLOCK;
3. Berikan hak akses pada user yang anda buat untuk dapat membuat dan mengakses table.
Contoh :
GRANT DBA, CONNECT, RESOURCE TO ADMIN;
4. Login dengan nama user yang telah anda buat tersebut
Contoh : Username : admin
Password : adm

Database Administrator || 51
SQL> connect
Enter user-name: admin
Enter password: ***

5. Rancanglah sebuah Sistem Informasi Reservasi Hotel, dengan kriteria sebagai berikut:
a) Hotel memiliki kamar-kamar yang mempunyai tipe yang berbeda-beda,
contoh : Kamar nomor 101 s/d 110 adalah kamar dengan tipe Deluxe,
Kamar nomor 201 s/d 210 adalah kamar dengan tipe VIP
b) Masing-masing Tipe Kamar memiliki fasilitas yang berbeda-beda
c) Hotel memiliki fasilitas Restaurant, Laundry dan Drug Store
d) Harga kamar ditentukan pada saat Reservasi (Pemesanan)
e) Pemesanan Kamar yang dilakukan oleh Pelanggan Baru tidak mendapatkan diskon
harga kamar, sedangkan untuk pelanggan lama mendapatkan diskon 10 Persen dari
harga yang telah ditentukan.
f) Kamar yang mempunyai status ‘AVAILABLE’ saja yang dapat dipesan oleh seorang
pelanggan untuk hari tertentu. Setelah kamar tersebut dipesan, status ‘AVAILABLE’
berubah status menjadi ‘BOOKED’. Status ‘BOOKED’ berubah menjadi status
‘AVAILABLE’ jika pelanggan membatalkan Reservasi.
6. Gunakan CONSTRAINT untuk membangun database yang ada.
7. Buatlah TRIGGER untuk menggantikan status kamar dari ‘AVAILABLE’ menjadi
‘BOOKED’ dan sebaliknya.
8. Coba isi tabel yang anda buat tersebut.

1.3.27 CLUSTER SEGMENT


Cluster segment biasa disebut dengan Cluster, hal ini dikarenakan cluster adalah sebuah tipe,
salah satu dari tipe segment. Operasi-operasi yang berlaku pada cluster lebih terbatas
dibandingkan dengan tabel, yaitu :
a) CREATE CLUSTER
b) ALTER CLUSTER
c) DROP CLUSTER
Sebagai sebuah tipe segment, cluster dapat dibagi menjadi dua subtipe, yaitu:

Database Administrator || 52
a) Index Cluster
b) Hash Cluster
Dimana secara umum kedua jenis cluster ini mempunyai persamaan.

1.3.27.1 Membuat Cluster


Untuk mempermudahkan pengelompokan dan membedakan antara tipe cluster dengan tipe
yang lain. Buatlah terlebih dahulu sebuah tablespace CLUSTERS untuk meletakkan cluster-
cluster yang akan dibuat.
CREATE TABLESPACE Clusters
DATAFILE 'C:\Clusters01.DBF'
SIZE 5M AUTOEXTEND ON NEXT 5M MAXSIZE 20M
DEFAULT STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0
MAXEXTENTS UNLIMITED)

Berikut ini adalah contoh membuat sebuah cluster.


CREATE CLUSTER Cls_NPM
(NPM CHAR(7))
SIZE 200 TABLESPACE Clusters
STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0 MAXEXTENTS 300);

Kemudian kita lihat segment yang telah terbentuk pada USER_CLUSTERS dan
USER_SEGMENTS,
SQL> SELECT CLUSTER_NAME, TABLESPACE_NAME FROM USER_CLUSTERS;
CLUSTER_NAME TABLESPACE_NAME
------------------------------ ------------------------------
CLS_NPM TABLES

SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE FROM USER_SEGMENTS;


SEGMENT_NAME SEGMENT_TYPE
----------------------------------- ------------------
CLS_NPM CLUSTER

Database Administrator || 53
Kemudian buatlah sebuah tabel MAHASISWA yang mengacu kepada cluster yang telah
dibuat tadi. Adapun sintaks penulisannya adalah sebagai berikut:
CREATE TABLE Mahasiswa
(NPM CHAR(7) NOT NULL,
Nama VARCHAR(20),
Alamat VARCHAR(30),
CONSTRAINT PK_Mahasiswa PRIMARY KEY (NPM)
)
CLUSTER Cls_NPM (NPM);

Cek USER_SEGMENTS yang telah terbentuk


SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE FROM USER_SEGMENTS;
SEGMENT_NAME SEGMENT_TYPE
----------------------------------- ------------------
CLS_NPM CLUSTER
PK_MAHASISWA INDEX

Kemudian cobalah mengisi table tersebut dengan sebuah data berikut ini
SQL> INSERT INTO Mahasiswa
2 VALUES ('0101001','Joni','Jl. Riau No.11');
INSERT INTO Mahasiswa
*
ERROR at line 1:
ORA-02032: clustered tables cannot be used before the cluster index
is built

1.3.27.2 Index Cluster


Berikut ini adalah contoh pembuatan Index-Cluster
CREATE INDEX Cls_NPM_Index
ON CLUSTER Cls_NPM
TABLESPACE INDX
STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0
MAXEXTENTS UNLIMITED);

Database Administrator || 54
Cek USER_SEGMENTS yang telah terbentuk
SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE FROM USER_SEGMENTS;
SEGMENT_NAME SEGMENT_TYPE
----------------------------------- ------------------
CLS_NPM CLUSTER
PK_MAHASISWA INDEX
CLS_NPM_INDEX INDEX

Kemudian cobalah membuat sebuah table ANGSURAN yang memiliki constraint ke table
MAHASISWA akan tetapi tidak memiliki hubungan ke cluster CLS_NPM.
CREATE TABLE Angsuran(
NPM CHAR(7) NOT NULL,
Angsuran_Ke NUMBER,
Jumlah NUMBER,
CONSTRAINT pk_Angsuran PRIMARY KEY (NPM,Angsuran_Ke),
CONSTRAINT fk_Angsuran_Mahasiswa FOREIGN KEY (NPM) REFERENCES
Mahasiswa (NPM));

Selanjutnya buatlah sebuah table NILAI yang memiliki hubungan constraint ke table
MAHASISWA dan memiliki hubungan ke cluster CLS_NPM.
CREATE TABLE Nilai(
NPM CHAR(7) NOT NULL,
KodeMK CHAR(7) NOT NULL,
UTS NUMBER,
UAS NUMBER)
CLUSTER Cls_NPM(NPM);

Untuk mengecek tabel yang telah dibuat apakah memiliki hubungan dengan cluster yang telah
dibangun, lakukan perintah berikut ini.

Database Administrator || 55
SQL> SELECT * FROM USER_CLU_COLUMNS;
CLUSTER_NAME CLU_COLUMN_NAME TABLE_NAME TAB_COLUMN_NAME
-------------- ----------------- ------------ -------
CLS_NPM NPM MAHASISWA NPM
CLS_NPM NPM NILAI NPM

Terlihat bahwa table ANGSURAN tidak muncul karena tabel yang dibuat tidak memiliki
hubungan dengan cluster yang ada.

1.3.27.3 Menghapus Cluster


Ada dua cara untuk menghapus cluster, antara lain :
1. Membuang cluster dengan sintaks INCLUDING TABLES
2. Membuang cluster table dulu, baru kemudian membuang cluster
Berikut ini adalah sintak untuk menghapus cluster untuk cara pertama,
DROP CLUSTER nama_cluster
[INCLUDING TABLES]
[CASCADE CONSTRAINT];

1.3.28 MENGELOLA USER PRIVILEGE DAN PROFILE


User privilege adalah suatu hak untuk melakukan eksekusi berbagai perintah SQL, dengan hak
tersebut seorang user dapat mengakses objek-objek database lainnya. Tipe-tipe privilege
ditentukan oleh Oracle. Role dibuat oleh user dalam hal ini biasanya administrator digunakan
untuk mengelompokkan berbagai privilege yang diperlukan. Hal ini dilakukan untuk
memfasilitasi pemberian grant berbagai privilege atau role kepada seorang user dengan cara
yang optimal. Ada beberapa jenis privilege diantaranya: System Privilege, Object Privilege,
dan User Roles.
a. System Privilege
Ada lebih 100 system privilege yang berbeda. Setiap system privilege mengijinkan seorang
user untuk melakukan operasi pada database. Harus menjadi catatan bahwa system
privilege bisa sangat powerfull, dan hanya boleh diberikan kepada user database yang
dipercaya, misalnya administrator atau pemegang otoritas data di perusahaan. Karena

Database Administrator || 56
system privilege tersebut sangat powerfull sehingga diperlukan pembatasan dalam
penggunaannya. Oracle merekomendasikan agar administrator melakukan konfigurasi agar
system privilege ini tidak bisa diakses oleh user sembarang (non-DBA) misalnya untuk
perintah ANY seperti UPDATE ANY TABLE pada data dictionary. Untuk meyakinkan
agar data dictionary aman, pastikan 07_DCTIONARY_ACCESSIBILITY pada inisial
parameter dalam kondisi FALSE, langkah ini disebut dengan mekanisme proteksi
dictionary.
b. Object Privilege
Setiap tipe objek memiliki privilege yang berbeda-beda. Administrator dapat menentukan
ALL [PRIVILEGES] GRANT/REVOKE yang tersedia bagi setiap objek. Namun ALL
bukan jalan pintas dalam menentukan privilege, baik GRANT ALL atau REVOKE ALL
karena akan berdampak kepada privilege objek tersebut, misal jika kita berikan seorang
user dengan grant ALL maka apa bedanya dengan administrator, atau jika melakukan
REVOKE ALL juga akan berdampak kepada integritas dan reference pada saat grant dan
relasinya dibuat.
c. User Role
User Role adalah sekumpulan database user yang memiliki privilege dengan kebutuhan
yang sama. Administrator dapay mengatur user privilege dengan memberikan grant yang
sesuai untuk keamanan aplikasi dan memberikan gran kepada user yang sesuai.

Gambar 46 Pemanfaatan umum sebuah Role

Database Administrator || 57
User diperlukan untuk mengendalikan hak-hak dan akses dari pengguna sebuah sistem atau
sebuah database. Operasi-operasi yang berlaku pada user, adalah:
a) CREATE USER.
b) ALTER USER.
c) DROP USER.

1.3.28.1 Membuat USER


Sintaks untuk membuat sebuah user adalah sebagai berikut:
CREATE USER user_name
IDENTIFIED [EXTERNALLY | BY password]
[DEFAULT TABLESPACE nama_tablespace]
[TEMPORARY TABLESPACE nama_tablespace]
[ACCOUNT ( LOCK | UNLOCK )]

1.3.28.2 Mengubah USER


Berikut ini adalah contoh penggunaan ALTER untuk mengubah PASSWORD
ALTER USER Administrator
IDENTIFIED BY Admin
PASSWORD EXPIRE;

Berikut ini adalah contoh untuk mengubah agar user tidak dapat mengakses tablespace
POLTEK.
ALTER USER Joni
QUOTA 0M ON POLTEK;

1.3.28.3 Menghapus USER


Sintaks untuk menghapus user yang ada adalah sebagai berikut :
DROP USER user_name [CASCADE];

Database Administrator || 58
1.3.28.4 PROFILE
Profile adalah sebuah named-sets batasan resource dan password. Penggunaan batasan pada
sebuah user dimaksudkan agar mencegah user untuk melakukan aktifitas yang menghabiskan
banyak resource dan memudahkan pemberian batas kepada sekelompok pengguna, misalnya
waktu session untuk sebuah user. Batasan resource dan pasword ini mencakup antara lain:
1) Waktu Session,
2) Operasi I/O,
3) Waktu Idle,
4) Lama Koneksi,
5) Memori,
6) Concurrent Sessions,
7) Rentang Waktu Password (Time Limit Password),
8) Password History,
9) Kompleksitas Password,
10) Locking User.
Setiap database dalam Oracle memiliki satu profile default yang umumnya bernama
DEFAULT. Setiap user yang telah dibuat jika tidak dispesifikasikan profile-nya, secara
otomatis akan di-assign ke profile DEFAULT

Sintaks untuk membuat profile adalah sebagai berikut :


CREATE PROFILE profile_name LIMIT
[SESSION_PER_USER max_value]
[CPU_PER_SESSION max_value]
[CONNECT_TIME max_value]
[IDLE_TIME max_value]
[LOGICAL_READ_PER_SESSION max_value]
[LOGICAL_READ_PER_CALL max_value]
[COMPOSITE_LIMIT max_value]
[PRIVATE_SGA max_bytes] ;

Database Administrator || 59
Dimana : MAX_VALUE dan MAX_BYTES diisi dengan nilai atau UNLIMITED atau
DEFAULT

Berikut ini adalah contoh membuat profile.


CREATE PROFILE Develop LIMIT
CONNECT_TIME UNLIMITED
IDLE_TIME 5;

Kemudian masukkan profile tersebut kedalam user yang ada, lihat contoh berikut ini :
ALTER USER Administrator
PROFILE Develop;

Cek profile user yang telah disetting tadi dengan contoh berikut ini:
SQL> SELECT USERNAME, PROFILE FROM DBA_USERS;
USERNAME PROFILE
------------------------------ ------------------------------
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP DEFAULT
OUTLN DEFAULT
ADMINISTRATOR DEVELOP

1.3.28.5 Menghapus Profile


Adapun sintaks untuk menghapus Profile adalah sebagai berikut:
SQL> DROP PROFILE Develop;
DROP PROFILE Develop
*
ERROR AT LINE 1:
ORA-02382: PROFILE DEVELOP HAS USERS ASSIGNED, CANNOT DROP WITHOUT
CASCADE

Kesalahan tersebut diakibatkan user yang akan dihapus dalam keadaan terkoneksi, untuk itu
gunakan sintaks berikut ini :
SQL> DROP PROFILE Develop CASCADE;

Database Administrator || 60
Kemudian cek kembali profile user yang tersisa:
SQL> SELECT USERNAME, PROFILE FROM DBA_USERS;
USERNAME PROFILE
------------------------------ ------------------------
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP DEFAULT
ADMINISTATOR DEFAULT
OUTLN DEFAULT

Berikut ini adalah profile DEFAULT yang secara otomatis ada dalam sebuah database
SQL> SELECT * FROM DBA_PROFILES;
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------- --------------------------- -------- ----------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED

File : Init.ORA
# Cache and I/O
db_block_size=4096
db_cache_size=31457280
# Cursors and Library Cache
open_cursors=300
# Diagnostics and Statistics
background_dump_dest=c:\a\bdump
core_dump_dest=c:\a\cdump
timed_statistics=TRUE
user_dump_dest=c:\a\udump
# Distributed, Replication and Snapshot
db_domain=""
remote_login_passwordfile=EXCLUSIVE
# File Configuration

Database Administrator || 61
control_files=("c:\a\control01.ctl", "c:\a\control02.ctl")
# Miscellaneous
compatible=9.0.0
db_name=a
# Network Registration
instance_name=iaa
# Pools
java_pool_size=31457280
shared_pool_size=37748736
# Processes and Sessions
processes=150
# Redo Log and Recovery
fast_start_mttr_target=300
# Sort, Hash Joins, Bitmap Indexes
sort_area_size=524288

connect SYS/change_on_install as SYSDBA


set echo on
spool c:\a\CreateDB.log
startup nomount pfile="c:\a\init.ora";
CREATE DATABASE a
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE 'c:\a\system01.dbf' size 5M REUSE AUTOEXTEND ON NEXT 1024K
MAXSIZE UNLIMITED
CHARACTER SET WE8MSWIN1252
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('c:\a\redo01.log') SIZE 256K,
GROUP 2 ('c:\a\redo02.log') SIZE 256K;

Database Administrator || 62
DAFTAR PUSTAKA

[1] Oracle Corporation, Oracle 9i Database Concepts, Release 2 (9.2), 2002.


[2] Oracle Corporation, Oracle 9i Database Administrator, Release 2 (9.2), 2002.
[3] Oracle Corporation, Enterprise DBA Part 1A: Architecture and Administration,
Instructure Guide, Volume 1, 1999.
[4] Oracle Corporation, SQL reference, Release 2 (9.2), 2002.
[5] Dawes, C., and Thomas, Biju, OCP: Oracle8i DBA SQL and PL/SQL Study Guide,
Sybex, 2002.
[6] Bryla, Bob., Oracle Database Fondation, Sybex, 2004.

Database Administrator || 63
TEKNIK PENILAIAN

Teknik penilaian untuk kelulusan Matakuliah Basisdata Lanjut adalah sebagai berikut :
1. Rincian bobot nilai mata praktikum Rekayasa Perangkat Lunak adalah sebagai berikut :
a. Penilaian: 15%
Yang terdiri dari :
Tugas Rumah(TR) : 5%
Quiz: 10%
b. Laporan (LP) : 15%
Yang terdiri dari :
Laporan dan Tugas Besar: 15%
c. Absensi/Kehadiran(AK) : 0%, Tetapi Jika Alfa >= 4 kali = Nilai: E
d. UTS : 30%
e. UAS : 40%
2. Range nilai mata praktikum Rekayasa Perangkat Lunak adalah sebagai berikut :
85 Nilai 100 Grade : A
75 Nilai < 85 Grade : B
65 Nilai < 75 Grade : C
55 Nilai < 65 Grade : D
0 Nilai < 55 Grade : E
3. Mahasiswa dianggap LULUS jika nilai 65

Database Administrator || 64

Vous aimerez peut-être aussi