Anda di halaman 1dari 47

Modul DBA

(Database Administrator)

ORACLE 9i

Disusun Oleh :

Viddi Mardiansyah S.Si. MT.

ORACLE 9i DBA (Database Administrator)

ARSITEKTUR ORACLE Background Process


Kumpulan proses yang membentuk arsitektur Oracle terdiri dari dua bagian, yaitu : 1. Background Processes Proses yang di-run di latar 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 Sedangkan proses yang optional, terdiri dari a. Dispatcher b. Management Server c. Network Management Agent d. Data Gatherer 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

Instance
Instance sebagai operasi (process) didalam arsitektur ORACLE instance dari sudut pandang processes dan bagian pembentuknya dapat digambarkan sebagai berikut : 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 windows anda.

Instance Instance

Server Server Processes Processes

Database Database

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 1

ORACLE 9i DBA (Database Administrator) Sebuah instance terdiri atas : 1. 2. 3. 4. 5. 6. merupakan sebuah kumpulan background process, dimana harus Checkpointer, disingkat ckpt Database Writer, disingkat dbw0 Log-Writer, disingkat lgwr Process-Monitor, disingkat pmon System-Monitor, disingkat smon Recover disingkat reco

Database Writer

Log Writer

Checkpointer

Server Processes

Database

Process Monitor
Instance Data cache Log cache Repository cache Miscellaneous cache Java cache Start Stop

System Monitor

Recover

akan tetapi instance bisa dipandang tidak hanya sebagai sebuah operasi, melainkan juga sebagai sebuah tipe. Dapat dilihat pada gambar disamping. 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

Database
Seperti halnya dengan instance yang dimodelkan sebagai tipe, database juga dapat dimodelkan sebagai sebuah tipe, seperti dapat dilihat pada gambar berikut ini : Dapat dilihat terdapat keterkaitan antara database dan Database instance, yaitu pada instance terdapat Data cache dan Log Data file cache, sedangkan pada database terdapat Data file dan Log Log file file. Configuration file Dimana Data file adalah data yang disimpan didalam Disk, Mount sedangkan Data cache adalah data yang disimpan didalam Open memori. Log File merupakan transaction log yang berada didalam Disk, sedangkan Log cache adalah transaction log yang berada di memori.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 2

ORACLE 9i DBA (Database Administrator) Di Oracle istilah yang telah digambarkan tadi agak berbeda dalam penulisannya meskipun mempunyai arti yang sama, berikut ini adalah istilah yang dipakai dalam Oracle.

Instance Buffer cache Log buffer Shared pool Large pool Java pool

Database Data file Redo log file Control file

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. Seadainya table ini sudah dimasukkan kedalam memori, maka pada saat itu memori instance akan berisi sebagai berikut :

Data cache Log cache T C

Metadata cache DBA_tables


Table_Name T Num_rows 0

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 T C insert into t values (3);


3

Metadata cache DBA_tables


Table_Name T Num_rows 1

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.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 3

ORACLE 9i DBA (Database Administrator)

INSTANCE 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 di menu Control Panel|Administrative Tools|Services. Berikut ini adalah contoh tampilan folder database dan background processes dari database d1 dengan nama instance i1.

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 4

ORACLE 9i DBA (Database Administrator)

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 5

ORACLE 9i DBA (Database Administrator)

PEMBUATAN DATABASE DENGAN SCRIPT Pembuatan Database


Dalam membuat database di Oracle, terlebih dulu kita harus mempersiapkan folderfolder yang akan digunakan untuk membangun database tersebut. 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>

Berikut ini adalah sintaks untuk membuat database


CREATE DATABASE <DatabaseName> MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDATAFILES 100 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];

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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 6

ORACLE 9i DBA (Database Administrator)

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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 7

ORACLE 9i DBA (Database Administrator)

ARSITEKTUR DATABASE ORACLE 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 : Nama Database Checkpoint Backup History Log Sequence Nama-nama data files Timestamp pembuatan database 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 Log-Files
2

Data-Files

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 8

ORACLE 9i DBA (Database Administrator)

Arsitektur Logikal
Database Tablespace Segment Extent DB-block 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 segmet memiliki satu atau lebih extent, dan setiap extent memiliki satu atau lebih database block. Untuk ilustrasinya dapat dilihat pada gambar disamping.

Arsitektur Fisik dan Arsitektur Logikal


Untuk lebih memperjelas hubungan antar arsitektur fisik da arsitektur Logik dalam database Oracle, dapat dilihat pada ilustrasi gambar berikut ini Config-Files DATABASE Log-Files
2

Data-Files

Tablespace Segment Extent DB-block

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 9

ORACLE 9i DBA (Database Administrator)

CONFIGURATION FILE / FILE CONTROL 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 : - MAXLOGFILES, diset pada saat pembuatan database - MAXDATAFILES, diset pada saat pembuatan database - 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.

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 configurationfiles dan log-files (tidak berlaku untuk data-files).
########################################### # File Configuration ########################################### control_files=("C:\oracle\oradata\POS\control01.ctl", "C:\oracle\oradata\POS\control02.ctl")

Pada contoh diatas terdapat dua buah configuration-file yang bersifat mirroring yang dimaksudkan untuk mempermudah proses operasi database. Setelah mirroring diciptakan, 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.

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.

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.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 10

ORACLE 9i DBA (Database Administrator) 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.

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
SQL> STARTUP OPEN

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 11

ORACLE 9i DBA (Database Administrator)

LOG FILE / TRANSACTION LOG FILE 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 : ADD GROUP DROP GROUP ADD MEMBER DROP MEMBER SWITCH (group) RENAME

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 1 Group 2

Redo1a. log

Redo2a. log

Pada gambar diatas, 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.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 12

ORACLE 9i DBA (Database Administrator)

Mirroring
Mirroring dalam Log-files mempunyai peranan yang penting seperti halnya dengan configuration-file. Oracle menyediakan cara mirroring log Group 1 Group 2 files untuk meningkatkan kehandalan pengoperasian databasenya. Hal ini dikarenakan database sangat rentan dengan kegagalan atau Redo1a. Redo2a. mungkin kehilangan data. log log Proses mirroring ini biasanya dilakukan pada media disk yang Disk C berbeda untuk keamanan semata, sehingga jika pada Disk D media disk yang ada terjadi kerusakan fisik, maka yang pada posisi mirror diharapkan tidak Redo1b. Redo2b. terjadi kerusakan dan masih log log 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.

Operasi : SWITCH
Operasi SWITCH ini dipakai untuk memindahkan group yang aktif dalam implementasinya.
SQL> connect/ as sysdba SQL> archive log list Database log mode Automatic archival Archive destination Oldest online log sequence Current log sequence SQL> set linesize 120 SQL> select * from v$log;

No Archive Mode Disabled C:\oracle\920\RDBMS 87 89

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 88 2621440 1 NO 157465 2 1 89 2621440 1 NO 177539 3 1 87 2621440 1 NO 157463

STATUS ---------INACTIVE CURRENT INACTIVE

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 13

ORACLE 9i DBA (Database Administrator)


SQL> column member format a50 SQL> select * from v$logfile; GROUP# STATUS ---------- ------1 STALE 2 3 TYPE ------ONLINE ONLINE ONLINE MEMBER -----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO03.LOG

kemudian kita lakukan operasi SWITCH agar mengaktifkan group 1.


SQL> alter system switch logfile; System altered. SQL> select * from v$log; STATUS ---------INACTIVE ACTIVE CURRENT

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 88 2621440 1 NO 157465 2 1 89 2621440 1 NO 177539 3 1 90 2621440 1 NO 177553 SQL> alter system switch logfile; System altered. SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 91 2621440 1 NO 177554 2 1 89 2621440 1 NO 177539 3 1 90 2621440 1 NO 177553 SQL> archive log list Database log mode Automatic archival Archive destination Oldest online log sequence Current log sequence

STATUS ---------CURRENT INACTIVE INACTIVE

No Archive Mode Disabled C:\oracle\920\RDBMS 89 91

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 14

ORACLE 9i DBA (Database Administrator)

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 FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 91 2621440 1 NO 177554 2 1 89 2621440 1 NO 177539 SQL> select * from v$logfile; GROUP# STATUS ---------- ------1 2 TYPE ------ONLINE ONLINE MEMBER -----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG STATUS ---------CURRENT INACTIVE

kemudian cek di 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 Directory of C:\ORACLE\ORADATA\POS 13/11/2005 13/11/2005 13/11/2005 22:52 22:51 22:52 3 File(s) 0 Dir(s) 2.621.952 REDO01.LOG 2.621.952 REDO02.LOG 2.621.952 REDO03.LOG 7.865.856 bytes 694.345.728 bytes free

Terlihat bahwa file tidak terhapus di level Operating System. Sehingga penghapusan file harus dilakukan di level Operating System.

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.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 15

ORACLE 9i DBA (Database Administrator)


SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 91 2621440 2 NO 177554 2 1 89 2621440 2 NO 177539 SQL> select * from v$logfile; GROUP# ---------1 2 1 2 STATUS TYPE ------- ------ONLINE ONLINE INVALID ONLINE INVALID ONLINE MEMBER ---------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO01B.LOG C:\ORACLE\ORADATA\POS\REDO02B.LOG STATUS ---------CURRENT INACTIVE

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 ---------- ------1 2 1 INVALID 2 TYPE ------ONLINE ONLINE ONLINE ONLINE MEMBER ----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO01B.LOG C:\ORACLE\ORADATA\POS\REDO02B.LOG

SQL> alter system switch logfile; System altered. SQL> select * from v$logfile; GROUP# STATUS ---------- ------1 2 1 2 TYPE ------ONLINE ONLINE ONLINE ONLINE MEMBER ----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO01B.LOG C:\ORACLE\ORADATA\POS\REDO02B.LOG

SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 93 2621440 2 NO 177572 2 1 92 2621440 2 NO 177570 STATUS ---------CURRENT INACTIVE

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 16

ORACLE 9i DBA (Database Administrator)

Operasi : ADD GROUP


Operasi ADD GROUP ini dipakai untuk menambah Group kedalam database.
SQL> alter database 2 add logfile 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 FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 93 2621440 2 NO 177572 2 1 92 2621440 2 NO 177570 3 1 0 1048576 2 YES 0 SQL> select * from v$logfile; GROUP# STATUS ---------- ------1 2 1 2 3 3 6 rows selected. TYPE ------ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE MEMBER -----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO01B.LOG C:\ORACLE\ORADATA\POS\REDO02B.LOG C:\ORACLE\ORADATA\POS\REDO03.LOG C:\ORACLE\ORADATA\POS\REDO03B.LOG STATUS ---------CURRENT INACTIVE UNUSED

Lihat untuk pertama kali, SEQUENCE# bernilai 0 untuk group yang baru, dengan status UNUSED. Kemudian akan diubah dengan operasi SWITCH.
SQL> alter system switch logfile; System altered. SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 93 2621440 2 NO 177572 2 1 92 2621440 2 NO 177570 3 1 94 1048576 2 NO 177582 STATUS ---------ACTIVE INACTIVE CURRENT

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 17

ORACLE 9i DBA (Database Administrator)

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'

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 FIRST_CHANGE# ---------- ---------- ---------- ---------- ---------- --------------1 1 96 2621440 2 NO 177589 2 1 95 2621440 2 NO 177587 3 1 94 1048576 2 NO 177582 SQL> alter database 2 drop logfile member 3 'C:\ORACLE\ORADATA\POS\REDO03B.LOG'; Database altered. SQL> select * from v$logfile; GROUP# STATUS ---------- ------1 2 1 2 3 TYPE ------ONLINE ONLINE ONLINE ONLINE ONLINE MEMBER ----------------------------------------C:\ORACLE\ORADATA\POS\REDO01.LOG C:\ORACLE\ORADATA\POS\REDO02.LOG C:\ORACLE\ORADATA\POS\REDO01B.LOG C:\ORACLE\ORADATA\POS\REDO02B.LOG C:\ORACLE\ORADATA\POS\REDO03.LOG STATUS ---------CURRENT INACTIVE INACTIVE

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 18

ORACLE 9i DBA (Database Administrator)

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 table akan menumpuk di satu tempat. Dengan adanya tablespace, kita dapat mengelompokkan beberapa table diruang tertentu, dan beberapa table 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).

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

Didalam sebuah 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, Locallymanaged, Permanent dan Temporary akan dibahas pada bab selanjutnya. Berikut ini adalah 7 buah tablespace yang paling umum atau sering digunakan dalam membangun database Oracle.
Nama Tablespace Tables Indexes Clusters Undos Sorts System Tool Tipe Segment Table Index Cluster Undo Sort Table & Index Table & Index Sifat dan Keterangan Users table/data Users indexes Users clusters Systems undos Systems sorts Systems repository, Users library Users metadata

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 19

ORACLE 9i DBA (Database Administrator) 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 memperlihatkan pemisahan kedua tablespace ini dengan tablespace yang lainnya bukan berdasarkan jenis segmennya.

Operasi untuk Tablespace


Operasi-operasi yang digunakan pada umumnya sama dengan operasi-operasi objek yang lainnya, antara lain : CREATE Berikut ini adalah Sintaks untuk penulisan CREATE TABLESPACE

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 20

ORACLE 9i DBA (Database Administrator)

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 21

ORACLE 9i DBA (Database Administrator)

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 : - 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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 22

ORACLE 9i DBA (Database Administrator) 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 file nya. Contohnya :
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS AND DATAFILES;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 23

ORACLE 9i DBA (Database Administrator)

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 : ADD OFFLINE ONLINE RESIZE RENAME Dalam operating system 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 operating system 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 menspesifikasikan 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 menset 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 :
DATAFILE C:\ORACLE\ORADATA\POLTEK\DTPOS.DBF SIZE 5 M REUSE AUTOEXTEND ON NEXT 10240 KB;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 24

ORACLE 9i DBA (Database Administrator)

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 25

ORACLE 9i DBA (Database Administrator)

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 : 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; o Apa yang terjadi pada saat menjalankan perintah tersebut, amati dan lakukan sampai terjadi pemindahan tablespace. o 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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 26

ORACLE 9i DBA (Database Administrator) 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>, <NamaField-2> <NamaTipe-2> <Length-2>,... <NamaField-n> <NamaTipe-n> <Length-n>) TABLESPACE <NamaTablespace>; Table : Mahasiswa
Field Name NPM Nama Alamat TglLahir Data Tipe VarChar2(7) VarChar2(20) VarChar2(30) Date Primary Key Yes No No No

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

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

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 27

ORACLE 9i DBA (Database Administrator)

SEGMENT, EXTENT DAN BLOCK

Segment
Segment adalah tipe untuk object-object yang persistent (disimpan permanen didalam disk). Secara sederhana ada 5 jenis segment yang sering dipergunakan dalam database oracle, yaitu : Table Segment Index Segment Cluster Segment Undo Segment Sort Segment Dari kelima segment ini hanya Table Segment, Index Segment, dan Undo Segment dapat dilakukan proses eksplisist CREATE, ALTER, dan DROP. Untuk lebih lengkapnya, berikut ini adalah tipe-tipe segment yang ada pada database Oracle
Tipe Segment Cache Undo Table Cluseter Index Non-Segment Sort Table Partition Index Partition Table Subpartition Index Subpartition Keterangan Dikendalikan seluruhnya oleh Instance bukan oleh DBA Sering juga disebut dengan ROLLBACK SEGMENT, diatur oleh DBA Sering juga disebut dengan DATA SEGMENT, diatur oleh DBA Jarang dipergunakan, diatur oleh DBA Diatur oleh DBA Digunakan untuk operasi Procedure, function, trigger, package Sering juga disebut dengan TEMPORARY SEGMENT Muncul mulai Oracle versi 8i Muncul mulai Oracle versi 8i Muncul mulai Oracle versi 8i Muncul mulai Oracle versi 8i

Klausa Storage
Klausa storage digunakan sejalan dengan hirarki logical aspec dari suatu database, yaitu : 1. Database 2. Tablespace 3. 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);

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 28

ORACLE 9i DBA (Database Administrator) Pada contoh pertama, klausa storage dispesifikasikan pada level tablespace, sedangkan pada contoh kedua, klausa storage dispesifikasikan pada level segment. Pada contoh pertama, menyatakan bahwa extent-extent ditablespace 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, statement pada contoh pertama menyatakan secara tidak langsung bahwa semua segment dalam tablespace tables akan memiliki extent sebesar 160K.

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

Block
Block adalah bagian terkecil dari sebuah extent. Operasi yang berlaku pada block adalah DEALLOCATE.

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 diatas, 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 :

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 29

ORACLE 9i DBA (Database Administrator)


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);

Storage Block
Penggunaan blok diatur oleh nilai dari 2 buah parameter, yaitu : - PCTFREE - 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 row atau record kedalam blok tersebut. Contoh penggunaannya : Jika
DB_BLOCK_SIZE = 40 PCTFREE = 10 PCTUSED = 80, maka : 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 INSERTINSERT sebelumnya telah memakai ukuran 36Kb. Operasi INSERT kembali dapat memasukkan row atatu record kedalam blok jika pemakaian blok sudah dibawah 80% (sudah dibawah 32KB).

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 30

ORACLE 9i DBA (Database Administrator)

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

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] | [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];

Index-Organized Table (IOT)


Sebuah IOT bisa disebut sebagai index, dan bisa disebut sebagai table. Sebuat IOT disebut sebagai table karena operasi-operasi berikut ini : - CREATE TABLE - ALTER TABLE - DROP TABLE - TRUNCATE TABLE - SELECT - INSERT - UPDATE - DELETE 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, CONSTRAINT PK_IOT_PESANAN PRIMARY KEY (KodePesanan), CONSTRAINT C_IOT_PESANAN CHECK (BrgDiterima IN (N,Y)) ) ORGANIZATION INDEX

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 31

ORACLE 9i DBA (Database Administrator)


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 table 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 :
INDEX_NAME TABLESPACE_NAME ------------------------------ -----------------------------PK_IOT_PESANAN INDEXES

Terlihat bahwa ada tabel tambahan bernama [SYS_IOT_OVER_5251] dan justru table yang system-defined inilah yang jelas tablespacenya (TABLES). IOT_PESANAN sendiri tidak terdefinisi tablespacenya. Segment yang juga terdefinisi tablespacenya 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)

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 32

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

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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 33

ORACLE 9i DBA (Database Administrator)

Partitioning Table
Partitioning table pada Oracle adalah berguna untuk memisahkan kelompok data yang dibuat sesuai dengan keinginan. Adapun beberapa macam partitioning table yang terdapat didalam Oracle adalah sebagai berikut Range Partitioning Umumnya partisi ini digunakan untuk memisahkan data menurut tanggal List Partitioning Umumnya partisi ini digunakan untuk memisahkan data menurut tipe data yang diinginkan Hash Partitioning Partisi yang dibangun menggunakan Hashing Composite Partitioning Gabungan dari Partisi yang ada diatas.

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 -------------------CUST_ORDER CUST_ORDER CUST_ORDER PARTITION_NAME SUBPARTITION_COUNT ------------------------- -----------------ORDERS_2002 0 ORDERS_2003 0 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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 34

ORACLE 9i DBA (Database Administrator)


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

CUST_ORDER CUST_ORDER

Kemudian cobalah mengisi table tersebut dengan beberapa data.

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);

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, 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') );

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 35

ORACLE 9i DBA (Database Administrator)


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')) (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 -------------------SALES_FACT SALES_FACT SALES_FACT SALES_FACT SALES_FACT SALES_FACT SALES_FACT SALES_FACT CUST_ORDER CUST_ORDER CUST_ORDER PARTITION_NAME SUBPARTITION_COUNT ----------------------------- -----------------SALES_NEWENGLAND 0 SALES_NORTHWEST 0 SALES_SOUTHWEST 0 SALES_SOUTHEAST 0 SALES_EAST 0 SALES_CALIFORNIA 0 SALES_SOUTH 0 SALES_MIDWEST 0 ORDERS_1999 4 ORDERS_2000 4 ORDERS_2001 4

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;

Menghapus Partitioning
Berikut ini adalah contoh untuk menghapus partisi yang telah dibuat
ALTER TABLE cust_order DROP PARTITION order_thn_2005;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 36

ORACLE 9i DBA (Database Administrator)

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 table, yaitu : - CREATE INDEX - ALTER INDEX - DROP INDEX

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.

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.

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) [TABLESPACE tablespace_name];

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 table asalnya dihapus.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 37

ORACLE 9i DBA (Database Administrator)

PRAKTIKUM 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
SQL> connect Enter user-name: admin Enter password: ***

5. Rancanglah sebuah Sistem Informasi Reservasi Hotel, dengan kriteria sebagai berikut: - 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 - Masing-masing Tipe Kamar memiliki fasilitas yang berbeda-beda - Hotel memiliki fasilitas Restaurant, Laundry dan Drug Store - Harga kamar ditentukan pada saat Reservasi (Pemesanan) - 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. - 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 table yang anda buat tersebut.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 38

ORACLE 9i DBA (Database Administrator)

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 table, yaitu : - CREATE CLUSTER - ALTER CLUSTER - DROP CLUSTER Sebagai sebuah tipe segment, cluster dapat dibagi menjadi dua subtipe, yaitu 1. Index Cluster 2. Hash Cluster Dimana secara umum kedua jenis cluster ini mempunyai persamaan.

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

Kemudian buatlah sebuah table MAHASISWA yang mengacu kepada cluster yang telah dibuat tadi. Adapun sintaks penulisannya adalah sebagai berikut :

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 39

ORACLE 9i DBA (Database Administrator)


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 ----------------------------------CLS_NPM PK_MAHASISWA SEGMENT_TYPE -----------------CLUSTER 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

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);

Cek USER_SEGMENTS yang telah terbentuk


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

Kemudian cobalah membuat sebuah table ANGSURAN yang memiliki constraint ke table MAHASISWA akan tetapi tidak memiliki hubungan ke cluster CLS_NPM.

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 40

ORACLE 9i DBA (Database Administrator)


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 table yang telah dibuat apakah memiliki hubungan dengan cluster yang telah dibangun, lakukan perintah berikut ini
SQL> SELECT * FROM USER_CLU_COLUMNS; CLUSTER_NAME -------------CLS_NPM CLS_NPM CLU_COLUMN_NAME ----------------NPM NPM TABLE_NAME -----------MAHASISWA NILAI TAB_COLUMN_NAME ------NPM NPM

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

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];

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 41

ORACLE 9i DBA (Database Administrator)

USER DAN PROFILE


User diperlukan untuk mengendalikan hak-hak dan akses dari pengguna sebuah sistem atau sebuah database. Operasi-operasi yang berlaku pada user, adalah : - CREATE USER - ALTER USER - DROP USER

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 )]

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;

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

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 : Waktu Session Operasi I/O

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 42

ORACLE 9i DBA (Database Administrator) Waktu Idle Lama Koneksi Memori Concurrent Sessions Rentang Waktu Password (Time Limit Password) Password History Kompleksitas Password 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] ;

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 -----------------------------SYS SYSTEM DBSNMP OUTLN ADMINISTRATOR PROFILE -----------------------------DEFAULT DEFAULT DEFAULT DEFAULT DEVELOP

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 43

ORACLE 9i DBA (Database Administrator)

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;

Kemudian cek kembali profile user yang tersisa


SQL> SELECT USERNAME, PROFILE FROM DBA_USERS; USERNAME -----------------------------SYS SYSTEM DBSNMP ADMINISTATOR OUTLN PROFILE -----------------------DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT

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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 44

ORACLE 9i DBA (Database Administrator)

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 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

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 45

ORACLE 9i DBA (Database Administrator)


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;

Disusun Oleh : Viddi Mardiansyah S.Si. MT.

Page 46

Anda mungkin juga menyukai