• Tidak ada hasil yang ditemukan

Modul Praktikum ST-RK /R-

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul Praktikum ST-RK /R-"

Copied!
101
0
0

Teks penuh

(1)

Modul

Praktikum

Mahasiswa mengusai arsitektur Oracle Server 10g dan dapat melakukan proses instalasi dan menejemen server Oracle 10g

(2)
(3)

Daftar Isi

Daftar Isi ... 1

Pengantar Umum ... 3

MODUL 1 ... 5

1.1.

Database Architecture ... 6

1.2.

Control Files ... 7

1.3.

Redo Log Files ... 8

1.4.

Datafiles ... 9

1.5.

Oracle Instance Management ... 9

1.6.

Oracle Memory Stuctures ... 10

1.7.

Background Process Oracle ... 15

Background Process Utama ... 16

Background Process Tambahan ... 18

1.8.

DBCA Overview ... 20

Latihan ... 22

MODUL 2 ... 23

2.1.

Starting and Stopping iSql*Plus ... 24

2.2.

Management Framework ... 25

2.3.

Accessing Database Control ... 26

2.4.

SYSOPER and SYSDBA ... 27

2.5.

Database Home Page ... 28

2.6.

Startup and Shutdown Options ... 29

Latihan ... 32

MODUL 3 ... 33

3.1.

Tablespace and Datafiles ... 34

3.2.

Space Management in Tablespaces ... 35

3.3.

Tablespace in the Preconfigured Database ... 36

3.4.

Dropping Tablespaces ... 37

Latihan ... 38

MODUL 4 ... 41

4.1.

Database User Accounts ... 42

4.2.

Privileges ... 44

(4)

4.4.

Object Privileges ... 48

4.5.

Assigning Quota to Users ... 51

4.6.

Roles... 52

Keuntungan menggunakan role : ... 53

Karkteristik role : ... 54

Latihan ... 58

MODUL 5 ... 61

5.1.

Database Security ... 62

5.2.

Apply the Principle of Least Privileges ... 63

5.3.

Manage Default User Accounts ... 64

5.4.

Implement Standard Password Security Features ... 65

5.5.

Creating a Password Profile ... 67

Latihan ... 68

MODUL 6 ... 70

6.1.

Oracle Net Services ... 71

6.2.

Oracle Net Listener ... 72

6.3.

Oracle Net Connections ... 76

Latihan ... 77

MODUL 7 ... 78

7.1.

Locks ... 79

7.2.

Mekanisme Penguncian (Locking Mechanism) ... 80

7.3.

Data Concurrency ... 81

7.4.

DML Locks ... 83

7.5.

Lock Conflicts ... 84

7.6.

Resolving Lock Conflicts... 85

7.7.

Deadlock ... 86

Latihan ... 87

MODUL 8 ... 90

8.1.

Terminology ... 91

8.2.

Database Backups ... 93

8.3.

Database Recovery ... 98

Latihan ... 99

(5)

Pengantar Umum

Praktikum Database Administrator ini akan membahas hal-hal penting apa saja yang harus Anda persiapkan apabila ingin menjadi seorang DBA. Seorang DBA diharuskan memiliki keahlian khusus dalam hal management database. Langkah awal menjadi seorang ahli DBA akan Anda peroleh melalui modul-modul praktikum Database Administrator ini. Seorang DBA memiliki tugas dan peran sebagai berikut :

1. Instalasi dan Upgrade software sistem RDBMS

2. Instalasi dan perawatan aplikasi yang berjalan diatas sistem RDBMS

3. Membuat database, tablespace, table, view, index dan obyek database lainnya

4. Membuat dan memonitor pemakai serta penggunaan sistem, termasuk sistem pengamanannya (security)

5. Memonitor penggunaan space (disk) dan perencanaan pengembangan hardware dan software kedepan

6. Memonitor unjuk kerja sistem (performance tuning) dan mengubah parameter sistem sejauh dibutuhkan dan mengoptimasi sistem

7. Membuat strategi dan mengimplementasikan backup dan recovery

(6)

Praktikum Database Administrator ini akan menggunakan tools Oracle Server 10g. Hal ini tidak terlepas daripada tingkat kehandalan Oracle Server yang telah teruji dalam hal menangani management database khususnya database yang besar. Selain itu, Oracle Server 10g jua sudah banyak dipercaya oleh perusahaan-perusahaan besar sebagai RDBMS yang dapat menyimpan data master dan transaksi perusahaan. Dengan diperkenalkannya Oracle Server 10g melalui praktikum Database Administrator ini kepada Anda, diharapkan dapat membantu Anda setelah masuk dalam lingkungan kerja nantinya.

Meskipun demikian, modul praktikum Database Administrator ini masih merupakan langkah awal Anda dalam menapaki dunia DBA. Oleh karena itu, sangat diharapkan apabila Anda juga aktif mencari materi-materi yang belum terbahas pada tiap-tiap modul yang ada.

(7)

MODUL 1

CREATING DATABASE

Tidak ada kata terlambat untuk belajar. Yang ada hanyalah perasaan malas untuk memulai

belajar.

Tujuan

Praktikan dapat membuat sebuah database pada Oracle 10g dan dapat memanage-nya

Materi

Creating Database

Database Configuration Assistant

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(8)

1.1. Database Architecture

Berbicara tentang arsitekture database Oracle, Anda akan selalu diingatkan pada gambar skema berikut ini. Gambar ini merepresentasikan bagian-bagian yang terlibat dalam database Oracle. Database Oracle terdiri atas 3 bagian yaitu Data Files, Control Files dan Redo Log Files.

Oracle merupakan sebuah database relasional. Pada database relasional, semua data disimpan dalam tabel dua dimensi yang tersusun oleh baris dan kolom. Database Oracle memungkinkan Anda untuk menyimpan data, mengubahnya (update) dan

menampikannya kembali. Struktur data logik tersimpan dalam file fisik

database. Untuk

mempermudah melihat struktur logik database, Anda dapat menggunakan

(9)

Enterprise Manager. Setiap detil informasi struktur logik database itu dapat dilihat dengan menekan link yang ada pada bagian Storage pada halaman Administration.

1.2. Control Files

Ketika Anda menjalankan (Start) Oracle Instance dan database samapi pada posisi mount, isi control files akan dibaca. Isi dari Control Files menspesifikasikan file fisik yang menyusun database. Ketika Anda menambahkan file baru ke dalam database, Control Files otomatis akan ter-update.

Beberapa hal yang perlu diingat tentang Control Files :

1. Suatu binary file yang menggambarkan struktur dari database

2. Diperlukan untuk mount, open dan akses databas

3. Direkomendasikan terrdapat minimal 2 buah control-file yang disimpan di disk yang terpisah.Konfigurasi tersebut dinamakan multiplex

4. Info sinkronisasi yang diperlukan bagi recovery disimpan di control-file

5. Berisi data tentang database itu sendiri, biasa dikenal

dengan metadata

6. File ini sangat penting bagi database. Tanpa file ini

Anda tidak dapat membuka data file untuk mengakses

data yang ada pada database

(10)

1.3. Redo Log Files

Redo Log Files dipergunakan untuk menyimpan perubahan database sebagai akibat dari adanya transaksi dan internal action dari database Oracle. Mereka menjaga integritas database saat terjadi kegagalan sistem yang disebabkan oleh padamnya aliran listrik, kerusakan disk ataupun penyebab lainnya.

Beberapa hal yang harus Anda ketahui tentang Redo Log Files : 1. Berisikan informasi perubahan database atau redo entry dari

Redolog Buffer

2. Berisikan data perubahan yang di commit maupun yang tidak di commit

3. Proses penulisan ke redolog file ini ialah sirkular atau berputar. Misalkan ada 4 buah file redolog file , maka penulisan pertama akan dimulai pada file bernama Redologl, setelah penuh berpindah ke Redolog2, Redolog3, Redolog4. Jika Redolog4 penuh maka file Redologl akan dikosongkan isinya dan ditulisi dengan data perubahan baru dan seterusnya

4. Minimal ada 2 buah redolog group. Didalam 1 group minimal ada 1 file anggota atau member

5. Sebaiknya terdapat lebih dari 1 member file di dalam 1 group. Sebaiknya file-file member didistribusikan dalam disk yang terpisah

6. Semua group harus punya jumlah file member yang sama banyaknya

(11)

1.4. Datafiles

Disinilah sebenarnya data milik user tersimpan. Datafiles merupakan bentuk fisik dari tempat penyimpanan ini. Datafiles berelasi dengan tablespace sebagai bentuk logic tempat penyimpanan. Tablespace akan dibahas lebih lanjut pada modul 3.

Beberapa hal penting yang harus diperhatikan mengenai Datafiles adalah :

1. Tempat obyek database (tabel , index dsb) disimpan. 2. Merupakan binary f ile (tidak dapat dibaca oleh text editor) 3. Wajib di-backup

1.5. Oracle Instance Management

Sebuah server Oracle terdiri atas Oracle database dan Oracle instance. Sebuah Oracle instance terdiri dari buffer memory atau yang lebih dikenal dengan istilah System Global Area (SGA) dan background process, yang akan meng-handle lebih banyak proses dibelakang layar untuk menjalankan instance.

Pertama, instance bersifat idle (nonexistent) sampai ia di jalankan (started). Ketika instance sudah berjalan, file inisialisasi parameter dibaca dan instance di konfigurasi berdasarkan instruksi yang ada pada file parameter tersebut.

Setelah instance berjalan dan database telah berstatus opened, baru kemudian user dapat mengakses database.

(12)

1.6. Oracle Memory Stuctures

(13)

Memory Oracle = SGA + PGA

SGA = Shared GlobalArea

SGA = Shared Pool + Database Buffer Cache +

Redolog Buffer

Shared Pool = Library C ache + Data Dict. C ache

Program Global Area atau PGA merupakan area memory Oracle yang tidak di-share . Oracle mengenaliny asebagai nonshared per process memory area. Memori inidigunakan oleh background processdan juga oleh Server Process. Bila ada User Process maka akan dialokasikan sejumlah memori untuk Server Process, setelah selesai akan di-dealokasikan kembali. Pada mode standard dimana digunakan mode Dedicated Server, semua data mengenai session yang sedang connect ke database disimpan di PGA. Kecuali Anda menggunakan mode MTS (Multi Threaded Server), info session disimpan di SGA.

SGA atau Shared Global Area merupakan bagian memory Oracle yang di-share atau dipakai bersama user. Di banyak referensi dan artikel, bila penulis mengatakan memory Oracle maka biasanya yang

Dimaksud adalah SGA bukan PGA. Didalam SGA terdapat beberapa bagian penunjang sebagai berikut :

(14)

 Database Buffer C ache

Database Buffer Cache berisikan “the most recently used

datablock”. Maksudnya ia merupakan tempat bagi datablock

yang sering dipanggil oleh instruksi SQL. Ilustrasi :

Tabel Dept milik Scott secara fisik disimpan di datafile bernama USR1ORCL.ORA. Datafile dibangun atas sekian banyak unit kecil yang bernamadatablock. Di dalam datablock disimpan baris-baris data dari tabel Dept.

Jika Scott sering memanggil tabel Dept dengan perintah SELECT, m aka datablock-datablock yang di tabel Dept disalin ke buffer yang bernama Database buffer cache. Jika suatu saat nanti, user Scott atau user lain akan memanggil baris data yang sama maka Oracle tidak akanjauh-jauh mengakses data ke datafile, tapi Oracle akan mengambil dari memory dimana terdapat suatu bagian bernama Database buffer cache ini.

Ukuran Database buffer cache ditentukan oleh rumus sebagai berikut:

Database Buffer Cache = db_block_size x db_block_buffers

db_block_size dan db_block_buffers adalah parameter yang ditulis di file bernama parameter

(15)

file atau disebut juga file lNlT<SlD>.ORA atau kita singkat saja menjadi file Initsid.

 Redo Log Buffer

Redo Log Buffer Berisikan data perubahan dari Database. Perubahan sekecil apapun dicatat ke sini dan selanjutnya dic atatkan ke file Online Redo Log. Ilustrasi :

Bila user Scott memasukkan 1 baris baru ke tabel Emp, maka Oracle akan meng-generate suatu informasi perubahan bernama redo entry. Redo entry ini kemudian disimpan ke RedologB uffer. Ingat, Oracle tetap akan meng-generate Redo entry bagi perubahan b aik yang di-commit maupun yang tidak di-commit. Sifat redo log buffer adalah tempat penyimpanan sementara, maka bila R edo log buffer penuh maka isinya akan disalin ke file bernama Online Redolog. Minimal terdapat 2 file Online Redo log di database. Sebenarnya file Online Redolog juga bersifat sebagai file sementara. Hal ini akan diterangkan di bagian file database.

 Shared Pool

Shared Pool digunakan untuk menyimpan statemen SQL yang sering di akses dan digunakan dari data dictionary. Statemen SQL ini biasanya diperoleh dari user proses, stored procedure yang membaca data

(16)

dictionary. Ia juga ini digunakan untuk meningkatkan kemampuan oracle dalam lingkungan multiuser. Shared Pool terbagi menjadi 2, yaitu :

 Library Cache

Library Cache berisikan “the most recently used SQL

statement”, terdiri dari :

- Statement

- Text parsed code (text yang telah diperiksa keabsahannya sebagai perintah)

- Execution plan (rangkaian rencana Oracle untuk mengeksekusi perintah)

 Data Dictionary Cache

Data Dictionary Cache berisikan “the most recently

used data dictionary table definitions and privileges user”. Di dalam Data Dictionary Cache dilakukan

validasi nama obyek dan checking privilege user. Ilustrasi :

Misalkan saat Tl user Scott memberikan perintah SELECT * FROM EMP, maka Oracle akan memeriksa dulu apakah perintah tersebut valid. Masing-masing kata yakni select, tanda bintang,

from dan emp , dicheck satu persatu.

Kata select , tanda bintang (*) dan from dicheck Oracle dengan perbendaharaan sintaks yang dikenali Oracle.

(17)

Kata Emp yang menunjukkan nama sebuah tabel dicheck dengan nama-nama tabel y ang terdaftar di data dictionary table.

Selain itu juga dicheck apakah user Scott mempunyai privileges yang cukup atas tabel Emp untuk melakukan perintah SELECT FROM EMP tersebut.

Karena meskipun sintaksnya valid, jika user Scott tidak mempunyai cukup hak, maka Oracle tidak akan meneruskan eksekusi perintah tersebut, melainkan menampilkan pesan error.

Proses validasi privileges di lakukan Oracle dengan melihat informasi yang tersimpan di data dictionary table.

Bila kemudian pada saat T2 , user Scott atau user lain melakukan perintah yang sama maka Oracle tidak perlu lagi mencheck sintaks tersebut tapi langsung mengeksekusinya.

Dengan konsep tersebut proses eksekusi sintaks yang sama akan lebih cepat.

1.7. Background Process Oracle

Secara umum ada 4 kategori proses Oracle, yaitu : 1. User Process

2. Networking Process 3. Server Process 4. Background Process

(18)

User-Process sebenarnya merupakan proses yang dilakukan oleh program aplikasi akibat dari input yang diberikan user. Contoh User-Process adalah proses yang dilakukan oleh SQL*plus.

Server Process adalah proses yang melayani User-Process. Dengan kata lain Server Process bekerja atas nama User-Process.

Network Process menyangkut proses yang dilakukan oleh aplikasi Net8 sebagai layer network Oracle.

Background process merupakan proses paling dekat dengan database. Proses ini melayani segala keperluan database. Ada 2 jenis background process:

- Background Process Utama : bila salah satu background process ini fail, maka seluruh sistem Oracle akan fail.

- Background Process Tambahan : background process ini bertugas membantu background process utama.

Background Process Utama

Yang termasuk background process utama adalah :

DBWR atau DBWn (Database Writer)

Tugas dan keterangan :

- Menulis semua data yang telah berubah (dirty image) dari database buffer cache ke datafile

- Menyimpan the most recently used datablock dengan algoritma LRU (Least Recently Used)

- Menentukan apakah penulisan ditunda atau tidak guna optimasi I/O

(19)

Jumlah DBWR maksima1 l0 buah. Sebaiknya jumlah maksimalnya se banyak processor yang dimiliki komputer dan tentu saja tidak lebih dari 10 buah. Karena bisa lebih dari satu, maka kadang ia disebut juga sebagai DBWn, dimana n = 0, 1, 2 , . . . , 9 . Di beberapa referensi ia kadang disebut sebagai DBW0.

Penentuan berapa banyak jumlah DBWR, dilakukan di file initsid dalam parameter DB_WRITER_PROCESSES.

 SMON (System Monitor) Tugas dan keterangan :

- Melakukan automatic instance recovery

- Melakukan merger contiguous area dari free space yang ada di datafile. Peristiwa tersebut dinamakan coalescing atau defraggingM

- Mengklaim kembali space temporary segment yang sudah tidak digunakan kembali

 PMON (Process Monitor) Tugas dan keterangan :

- Membersihkan user session yang terhenti secara abnormal - Me-rollback semua transaksi yang belum di-commit - Melepaskan lock y ang dipegang oleh terminated process - Membebaskan resource SGA yang dipakai oleh failed

process

- Me-restart failed shares server dan dispatcher process - Mengidentifikasi deadlocks

 LGWR (L og Writer) Tugas dan keterangan :

(20)

- Melakukan penulisan isi redolog buffer ke file online redolog ketika terjadi :

~ Commit

~ Redolog buffer sudah 1/3 penuh

~ DBWR selesai membersihkan database buffer block selama checkpoint

~ Time out LGWR tercapai  CKPT (Check Point)

Tugas dan keterangan:

- Proses checkpoint memberitahu DBWR untuk menulis dirty buffer ke disk dan kemudian meng-update header dari datafile dan header controlfile dengan nilai SCN (System Change Number) baru

- Pada versi pre-Oracle8 tugas CKPT dilakukan oleh proses LGWR

- Checkpoint terjadi setiap terjadi log switch - Untuk memaksa checkpoint :

~ ALTER SYSTEM SWITCH LOGFILE

~ ALTER SYSTEM CHECKPOINT – memaksa lebih cepat

Background Process Tambahan

 Server Processes Tugas dan keterangan :

- Bekerja atas nama User Process

- Memparsing dan mengeksekusi statement SQ L - Membaca datablock dari disk ke database buffer cache - Mengembalikan hasil dari statement SQL ke user process

(21)

 ARCH (Archiver Process) Tugas dan keterangan :

- Mengkopi file online redolog ke lokasi yang ditentukan parameter LOG_ARCHIVE_DEST ketika LGWR melakukan switch ke grup baru

- Mengkopi file online redolog ke tape atau disk untuk recovery akibat media failure

- Bekerja hanya ketika terjadi log switch

- Hanya diperlukan jika database running dalam mode ARCHIVELOG

 RECO (Recover Pr ocess)

- Digunakan untuk me-resolve failures pada distributed database

- Jika difile parameter diset DISTRIBUTED_TRANSACTIONS = true

- Proses ini optional dan hanya ada pada sistem database terdistribusi

 LCKn (Lock Process)

- Jika menggunakan sistem Oracle Parallel Server, maka proses ini diperlukan

- Digunakan untuk locking inter-instance

 Dispatcher Process

- Merupakan bagian dari arsitektur MTS (Multi Threaded Server)

(22)

- Meminimasi resource overhead dengan menangani multi connections

1.8. DBCA Overview

Untuk membuat, mengubah konfigurasi atau menghapus database Oracle dapat memanfaatkan fasilitas Database Configuration Assistant (DBCA). Anda juga dapat menggunakan DBCA untuk membuat database baru berdasarkan template yang sudah tersedia ataupun berdasarkan database yang sudah ada sebagai acuan.

Langkah pertama dari pembuatan sebuah database baru adalah memilih opsi create a database pada jendela operation. Selanjutnya terdapat 4 opsi yang dapat dipilih yaitu: Custom Database, Data Warehouse, General purpose dan Transaction Processing.

Opsi pertama digunakan apabila Anda menginginkan database baru tersebut memiliki kompleksitas lingkungan yang tinggi (more complex environments). Pilihan ini juga meminta Anda untuk lebih banyak memasukkan parameter yang akan digunakan dan waktu pembuatannya pun memakan waktu yang relatif lebih lama. Tiga opsi terahir merupakan template yang sudah tersedia. Pilihlah yang sesuai dengan kebutuhan.

Langkah selanjutnya adalah meminta Anda untuk mengidentifikasi database, menentukan management options-nya, memasukkan passwords administrator dan mekanisme penyimpanannya serta langkah-langkah penentuan parameter pendukung lainnya.

Akhirnya tibalah di langkah terakhir dimana Anda dapat membuat database baru (berdasarkan inputan pada

(23)

langkah-langkah sebelumnya) dan sekaligus menyimpannya sebagai sebuah template baru yang dapat dipergunakan untuk membuat database baru lainnya di kemudian hari.

(24)

Latihan

1. Carilah lokasi file database fisik Oracle yang terdapat pada komputer yang sedang Anda pergunakan saat ini.

2. Dengan menggunakan fasilitas DBCA, buatlah sebuah database baru dengan ketentuan sebagai berikut :

Database name : DBnimpendek Database template : General purpose Database Mode : Dedicated Server Mode

Memory : Typical

Untuk keterangan lainnya yang belum ditentukan dapat diasumsikan saja.

3. Catat semua keterangan yang diberikan setelah proses pembuatan database selesai dilakukan. Hal ini sangat berguna untuk proses administrasi server Oracle selanjutnya.

(25)

MODUL 2

CONTROLLING THE DATABASE

Untuk setiap menit kemurahan, Anda kehilangan 60 detik kebahagiaan.

Tujuan

Praktikan dapat mengatur file parameter initialization dan mengontrol database (startup dan shutdown database)

Materi

File Parameter Initiaization

Startup - Shutdown Database

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(26)

2.1. Starting and Stopping iSql*Plus

iSQL*Plus Application Server harus running terlebih dahulu sebelum Anda dapat memulai sebuah iSQL*Plus session. Secara default iSQL*Plus Application Server akan otomatis running (started) pada saat proses instalasi database.

Untuk me-start atau stop iSQL*Plus Application Server pada Windows dapat dilakukan dengan cara :

- Pilih Services dari menu Start > Programs > Administrative Tools

- Carilah Windows Service untuk iSQL*Plus, OracleHomeNameiSQL*Plus

- Jalankan (Start) Windows Service-nya untuk mengaktifkan iSQL*Plus Application Server atau hentikan (Stop) service-nya untuk menonaktifkan iSQL*Plus Application Server - Alternatif lainnya adalah dengan menggunakan command

promt. Adapun sintaks nya adalah : -

(27)

o isqlplusctl start o isqlplusctl stop

2.2. Management Framework

Tiga komponen utama Oracle Database 10g management framework adalah :

- Database instance - Listener

- Management interface : o Database Control

o Management agent (jika mempergunakan grid control)

Setiap daripada komponen ini secara eksplisit harus started terlebih dahulu sebelum Anda dapat menggunakan masing-masing service komponen yang tersedia dan harus pula di shut down secara benar pada saat mematikan komputer server Oracle 10g.

Database instance sudah dibicarakan pada modul 1. Service database instance harus terlebih dahulu started sebelum user dapat melakukan koneksi (membuat session) ke database Oracle. Listener dapat dianalogikan sebagai bagian pendengar apabila ada

(28)

permintaan koneksi dari client. Client tidak akan tidak melakukan koneksi apabila listener service belum dijalankan. Pembahasan mengenai Listener akan diperdalam pada modul 6.

Database control, ini yang nanti selanjutnya akan Anda pergunakan untuk mengontrol database, memiliki service yang juga harus terlebih dahulu dijalankan. Service ini dikenal dengan dbconsole (dapat ditemukan pada area service Windows).

2.3. Accessing Database Control

Untuk mengakses database control dapat melalui Enterprise Manager yang bersifat web base. Bukalah web browser Anda dan tuliskanlah URL berikut :

http://hostname:portnumber/em

Biasanya portnumber default yang digunakan adalah 5500. Jika database sudah dalam keadaan up dan siap menerima permintaan koneksi dari client maka Enterprise Manager akan menampilkan

(29)

halaman Database Control Login, seperti tampak pada gambar diatas. Login-lah dengan menggunakan nama user yang telah ter-autorisasi untuk mengakses Database Control. Nama user yang bisa digunakan adalah SYS, SYSMAN, atau SYSTEM. Password untuk masing-masing nama user tersebut sudah Anda spesifikasikan pada saat melakukan instalasi database.

2.4. SYSOPER and SYSDBA

Penggunaan Connect As SYSOPER atau SYSDBA dapat dijelaskan sebagai berikut :

 SYSOPER

Ini adalah role database administrator khusus yang mengijinkan seorang DBA, dengan role ini, untuk melakukan STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG dan RECOVER serta termasuk juga hak akses (privileges) RESTRICTED SESSION.

(30)

 SYSDBA

Ini adalah role database administrator khusus yang mengijinkan seorang DBA, dengan role ini, untuk melakukan semua system privileges with ADMIN OPTION dan SYSOPER system privileges. Role ini juga memungkinkan untuk melakukan CREATE DATABASE dan incomplete recovery.

2.5. Database Home Page

Database Home page digunakan untuk mengatur performance, administration, dan maintenance database milik Anda. Ini semua terletak dalam tabulasi-tabulasi yang ada pada Database Home page. Selain itu tersedia pula link pada masing-masing bagian tabulasi untuk memonitor informasi mengenai kondisi ”kesehatan” database Anda saat ini.

(31)

2.6. Startup and Shutdown Options

Agar database dapat diakses oleh user, maka ia harus dalam keadaan OPEN. Sebelum mencapai kondisi OPEN ada beberapa tahapan yang harus dilalui dan masing-masing tahapan tersebut memiliki fungsi dan peran dalam mendukung database, yaitu :

 NOMOUNT

Pada tahapan ini maka Oracle akan melakukan instance started. Ini penting karena seperti yang telah dijelaskan pada modul 1 bahwa instance harus jalan (started) terlebih dahulu baru dapat membuka database. Pada saat instance dijalankan terdapat beberapa tugas yang harus dikerjakan, yaitu :

- Membaca initialization file dari $ORACLE_HOME/dbs, dengan urutan spfileSID.ora – spfile.ora – initSID.ora. - Mengalokasikan SGA

- Menjalankan background proses yang dibutuhkan - Membuka file alertSID.log dan trace file

(32)

 MOUNT

Membaca konfigurasi database yang ada di control file. Selain itu kondisi database pada posisi ini dapat digunakan untuk melakukan beberapa kegiatan pemeliharaan database, seperti :

- Mengubah nama data file

- Enable dan disable opsi dari online redo log file archiving

- Melakukan full database recovery  OPEN

Semua file suka terbuka (open), sesuai dengan yang terdapat pada control file. Pada kondisi inilah user dapat melakukan koneksi ke database dan melakukan beberapa akses terhadap database.

Lawan dari startup ada shutdown database. Untuk melakukan operasi shutdown, juga terdapat beberapa pilihan, yaitu :

 ABORT  IMMEDIATE  TRANSACTIONAL  NORMAL

(33)

Dengan pilihan tersebut akan menghasilkan kondisi database saat dimatikan yang beragam pula, dikenal dengan istilah clean database dan dirty database. Hal itu seperti tampak pada gambar berikut ini.

(34)

Latihan

1. Carilah file initialization parameters yang ada di komputer Anda saat ini. Buka file tersebut dan terangkan apa isinya. 2. Hapuslah file spfileSID.ora. Kemudianlah restart-lah

komputer Anda. Apa yang terjadi ? Apa fungsi file spfileSID.ora tersebut ?

3. Carilah file yang berkaitan dengan Alert Log. Pelajari fungsi dari file tersebut.

4. Cobalah masing-masing opsi start up yang ada pada Oracle. 5. Cobalah untum men-shutdown database Anda dengan

menggunakan opsi ABORT, IMMEDIATE,

(35)

MODUL 3

STORAGE STRUCTURE

Untuk berhasil dalam pekerjaan harus memiliki persiapan yang cukup

Tujuan

Praktikan dapat mengatur storage di database Oracle 10g melalui fasilitas Enterprise Manager

Materi

Creating Tablespaces

Creating Data Files

Manage Tablespaces

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(36)

3.1. Tablespace and Datafiles

Media penyimpanan (storage) di Oracle di kenal dengan istilah logical stroge dan physical storage. Logical storage terbagi lagi menjadi :

 Tablespace

Kumpulan satu atau lebih data file yang diasosiasikan dengan database (terkait). Obyek database seluruhnya dibuat diatas tablespace tersebut

 Segment

Terminologi penyimpanan data dimulai dari blok data pada sebuah tablespace yang merupakan satuan terkecil dari disk. Blok data ini kemudian membentuk Extent. Himpunan Extent membentuk Segment. Seorang user memiliki sebuah segment.

 Extent

Extent terdiri dari datablock (yang berdekatan/contiguous).  Datablock

satuan terkecil yang berisi header (info) tentang block tersebut dan data di dalamnya.

Media penyimpanan fisik adalah datafile. Datafile memiliki beberapa karakteristik, yaitu :

 Hanya dapat beraviliasi dengan satu tablespace dan satu database

 Merupakan sebuah repository (tempat penyimpanan) dari schema object data

(37)

Data file terdiri dari data actual dari database, seperti : table, stored procedure, index, dll. Data file tidak dapat diakses langsung oleh pemakai database tetapi harus melalui logical layer, misalnya melalui tablespace.

3.2. Space Management in Tablespaces

Terdapat 2 tipe manajemen tablespace, yaitu :  Locally managed tablespace

Manajemen extent dilakukan pada tablespace dengan menggunakan bitmap. Setiap bit dalam bitmap berkorespondensi dengan sebuah block atau sekumpulan block data. Ketika extent baru dialokasikan atau di”bebaskan” untuk dipergunakan kembali, maka Oracle Server mengubah nilai bitmap untuk mengetahui status baru dati block data.

 Dictionary-managed tablespace

Manajemen extent dilakukan oleh data dictionary. Oracle Server akan meng-update table dengan tepat pada data dictionary ketika sebuah extent dialokasikan atau di de-alokasikan.

(38)

3.3. Tablespace in the Preconfigured Database

Pada awal terbentuknya sebuah database baru, ia telah memiliki beberapa tablespace default yang memiliki fungsi dan peran masaing-masing, yaitu:

 SYSTEM

Dipergunakan oleh Oracle database Server untuk mengatur database.

 SYSAUX

Ia membantu tablespace SYSTEM dalam mengatur database.  TEMP

Tablespace ini dipergunakan untuk menyimpan temporary table dan index ketika memproses perintah SQL.

 UNDOTBS1

Tablespace ini dipergunakan oleh database server untuk menyimpan informasi undo. Biasanya dipergunakan untuk operasi Rollback.

 USERS

Tablespace ini dipergunakan sebagai tempat penyimpan user object dan data secara permanen.

 EXAMPLE

Tablespace ini berisi sample schema yang dapat diinstall pada saat pembuatan sebuah database baru.

(39)

3.4. Dropping Tablespaces

Anda dapat menghapus tablespace beserta isinya (segment-segment yang ada didalamnya) dari database jika tablespace itu memang sudah tidak dibutuhkan lagi. Anda harus memiliki DROP TABLESPACE system privilege untuk menghapusnya. (Privilege akan dibicarakan lebih lanjut pada modul 4).

(40)

Latihan

1. Bukalah Enterprise Manager yang ada dilokal komputer Anda. 2. Pergunakan Database Control untuk melihat semua tablespace

yang ada di database Anda. Untuk setiap tablespace catatlah nama tablespace-nya, tipe, ukuran (size), dan percent used-nya dalam tabel dibawah ini :

Tablespace Name Type Size (MB) Used %

3. Hampir sama dengan persoalan diatas, hanya saja yang harus anda catat adalah file name, tablespace name, current size, autoextend status, dan maximum file size (jika autoexgtend-nya enale), dalam table dibawah ini :

File Name Tablespace Name Current Size(MB) Auto extend ? Maximum Size(MB)

(41)

4. Buatlah sebuah tablespace untuk menyimpan informasi aplikasi inventori dengan karakteristik sebagai berikut :

Tablesapce Name : INVENTORYXXX (ket : XXX adalah 3 karakter initial nama Anda)

File Size : 5 MB

Extend Management : Local

AUTOEXTEND : disable

Type : Permanent

Extend Allocation : Automatic

Status : Read Write

Segment space manag. : Auto

File name : inventory01.dbf Enable Logging : Yes

File directory : default Use default thresholds

5. Ubahlah kapasitas tablesapce anda menjadi 10 MB. 6. Ubahlah lagi kapasitas tablespace anda menjadi 3 MB. 7. Ubahlah mode tablespace anda manjadi READ ONLY.

8. Kembalikan lagi karakteristik tablespace anda seperti soal no. 4. 9. Ubahlah datafile tablespace INVENTORYXXX menjadi

(42)
(43)

MODUL 4

ADMINISTERING USERS

Orang mulia menyalahkan dirinya, orang bodoh menyalahkan orang lain

Tujuan

Praktikan dapat membuat user sesuai dengan kebutuhannya dan dapat mengatur user dalam database

Materi Create User

Privileges

Roles

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

\\data-server\dba\dba4

(44)

4.1. Database User Accounts

Untuk dapat mengakses database, seorang user harus men-spesifikasikan user account yang valid beserta autentikasinya. Pada beberapa sistem, setiap user yang ada pada database memiliki user account sendiri-sendiri, tapi juga ada beberapa system yang menerapkan satu user account di pakai bersama oleh beberapa orang user.

Masing-masing user account memiliki sebuah : Username yang unik

Metode autentikasi Tablespace default Tablespace temporary User profile

Langkah-langkah pembuatan sebuah user account baru melalui Enterprise Manager :

Pilih Users dari halaman Administration, lalu tekan tombol Create

(45)

Berikan profile yang benar

Pilih metode autentikasi o Password

User harus memasukkan password yang sesuai setiap kali melakukan koneksi. Ketika membuat sebuah password anda juga dapat sekaligus memaksa password tersebut untuk expired segera, dimana seorang user harus segera mengganti password nya pada saat pertama kali login. Tapi harap diperhatikan, pastikan dulu bahwa user memiliki hak untuk merubah password sebelum anda melakukan expired.

(46)

o External

User tidak perlu menspesifikasikan username maupun password bila ingin melakukan koneksi ke Oracle. Dengan external autentikasi, database anda akan menggunakan fasilitas autentikasi operating system atau network. Parameter inisialisasi yang digunakan adalah OS_AUTHENT_PREFIX.

o Global

Metode autentikasi dengan menggunakan Oracle Advanced Security option.

Berikut adalah checklist untuk pembuatan user : Pilih profile

Pilih metoda autentikasi

Berikan tablespace default dan tablespace temporary Berikan privileges dan roles yang sesuai

Tentukan kuota untuk masing-masing tablespace yang diberikan

4.2. Privileges

Untuk dapat berkomunikasi dengan server Oracle, seorang user harus memiliki hak akses, di Oracle dikenal dengan nama Privileges. Secara garis besar, privileges dibagi menjadi dua, yaitu System Privileges dan Object Privileges.

(47)

4.3. System Privileges

Berikut adalah karekteristik dari System Privileges :

Privileges ini mengijinkan user untuk melakukan kegiatan (action) tertentu pada database

Terdapat kurang lebih 100 system privileges

Keyword ANY pada privileges menunjukkan bahwa user memiliki hak pada semua schema

Perintah GRANT digunakan untuk menambahkan system privileges kepada user atau grup user

Perintah REVOKE digunakan untuk menghapus system privileges yang pernah diberikan

Seorang DBA memiliki level tertinggi dalam System Privileges, untuk :

o Create user baru

D

D

B

B

A

A

Privileges Username dan

Password

U

U

S

S

E

E

R

R

S

S

(48)

o Remove user o Remove table o Backup table

Begitu seorang user sudah di buat, maka DBA dapat memberikan hak (grant) system privileges yang diperlukan oleh user tersebut. Untuk memberikan system privileges kepada user melalui Enterprise Manager, ikuti langkah-langkah berikut :

Pilih link System Privileges

Pilih privileges yang sesuai dengan kebutuhan user dari daftar privileges yang tersedia

(49)

Berikut ini adalah syntax pemberian System Privileges :

Seorang aplication developer biasanya memiliki minimal system privilege sebagai berikut :

Create Session

Digunakan untuk koneksi ke database Oracle

Create Table

Digunakan untuk membuat tabel pada database

Create View

Digunakan untuk membuat view

Create Procedure

Digunakan untuk membuat prosedur

Create Sequence

Digunakan untuk membuat sequence GRANT privilege [, privilege...] TO user [, user...];

SQL> GRANT create table, create sequence, create view

2 TO scott;

G

Grraanntt ssuucccceeeeddeedd..

GRANT CREATE SESSION TO scott WITH ADMIN OPTION;

(50)

Revoking System Privileges :

4.4. Object Privileges

Object privileges memiliki karakteristik sebagai berikut :

Object privileges berbeda dari satu object dengan object lainnya

Seorang owner memiliki semua object privileges terhadap object yang dimilikinya

Seorang owner dapat memberikan object privileges tertentu terhadap object yang dimilikinya kepada user lain

Untuk memberikan Object Privileges kepada user lain, ikutilah langkah-langkah berikut ini :

Pilih link Object Privileges

Pilih tipe object yang akan diberi privileges Tekan tombol Add

REVOKE CREATE TABLE FROM user1; REVOKE CREATE SESSION FROM scott;

(51)

Object Priv. Table View Sequence Procedure ALTER √ √ DELETE √ √ EXECUTE √ INDEX √ INSERT √ √ REFERENCES √ SELECT √ √ √ UPDATE √ √

(52)

Tabel diatas menunjukkan jenis object privileges yang dapat diberikan terhadap object database yang spesifik. Misal, object privileges ALTER, dapat diberikan pada Table dan Sequence.

Berikut ini adalah sytax pemberian object privileges :

Syntax grant SELECT pada tabel emp :

Syntax grant UPDATE pada tabel dept untuk kolom dname dan loc : GRANT object_priv [(columns)]

ON object

TO {user|role|PUBLIC}

[WITH GRANT OPTION];

SQL> GRANT select 2 ON emp 3 TO sue, rich;

G

Grraannttssuucccceeeeddeedd..

SQL> GRANT update (dname, loc) 2 ON dept

3 TO scott, manager;

G

(53)

Keyword WITH GRANT OPTION. Memberikan hak (grant) SELECT dan INSERT kepada user scott dimana user scott dapat meneruskan hak yang diterimanya itu kepada user lainnya.

Keyword PUBLIC. Memperbolehkan semua user yang terdapat pada database yang sama dengan dengan alice untuk melakukan SELECT pada tabel dept.

4.5. Assigning Quota to Users

User harus diberikan quota pada tablespace yang dimilikinya. Hal ini harus dilakukan, apabila tidak maka user tersebut tidak akan dapat menyimpan data di tablespace miliknya. Quota yang diberikan dapat berupa :

 Unlimited (tak terbatas)

 Bernilai tertentu (dalam megabytes atau kilobytes) SQL> GRANT select

2 ON alice.dept 3 TO PUBLIC;

G

Grraannttssuucccceeeeddeedd.. SQL> GRANT select, insert 2 ON dept

3 TO scott

4 WITH GRANT OPTION;

G

(54)

4.6. Roles U Usseerrss A Allllooccaattiinngg p prriivviilleeggeess w wiitthhoouuttaarroollee P Prriivviilleeggee s s M Maannaaggeerr A Allllooccaattiinnggpprriivviilleeggeess w wiitthhaarroollee

(55)

Kedua gambar diatas dapat digunakan sebagai ilustrasi dalam masalah pemberian privileges yang berkaitan dengan role.

Gambar kiri menunjukkan betapa ribet dan rumitnya memberikan privileges kepada hanya 3 orang user.. DBA harus memberikan privileges yang sesuai kepada masing-masing user, yang tidak tertutup kemungkinan bahwa privileges yang diberikan kepada user pertama akan sama dengan privileges yang diberikan kepada dua user lainnya.Seperti tampak pada gambar diatas, dengan hanya memberikan 4 buah privileges kepada 3 orang user, maka DBA harus melakukannya dengan 4 x 3 langkah, yaitu 12 langkah.

Berbeda dengan gambar ysng sebelah kanan. Disini, DBA membuat dulu sebuah role yang kemudian diisi oleh 4 buah privileges dan barulah role tersebut diberikan kepada user yang membutuhkannya. Sungguh sangat sederhana bukan ?

Dengan demikian dapat diambil pengertian bahwa role adalah wadah atau tempat yang dapat digunakan untuk menampung satu set privileges yang dapat diberikan kepada user atu role lainnya.

Keuntungan menggunakan role :

Mengurangi jumlah privileges yang akan di berikan (grant) Mempermudah manajemen privileges

Manajemen privileges secara dinamis Pemberian privileges secara selektif Meningkatkan performance

(56)

Untuk memberikan role kepada seorang user, dapat anda lakukan dengan cara :

Pilih Modify Roles

Pilih role yang diinginkan dan tekan tombol Move

Karkteristik role :

Sebuah role dapat berisi system dan object privileges

Sebuah role dapat di enable dan disable untuk setiap user yang menerimanya

Sebuah role dapat memiliki password untuk meng-enable-nya

(57)

Ada beberapa Role yang sudah ada secara otomatis pada saat anda meng-install database Oracle, antara lain :

Role Name Description

CONNECT The two roles are provided for backward compatibility

RESOURCE

DBA All system privileges WITH

ADMIN OPTION

EXP_FULL_DATABASE Privileges to export the DB IMP_FULL_DATABASE Privileges to import the DB DELETE_CATALOG_ROLE DELETE privileges on DD tables

EXECUTE_CATALOG_ROLE EXECUTE privileges on DD packages

SELECT _CATALOG_ROLE SELECT privilege on DD tables

Secara default, Enterprise Manager secara otomatis akan memberikan role CONNECT kepada user baru.

Berikut ini adalah syntax yang berhubungan dengan role : ALTER USER scott

DEFAULT ROLE hr_clerk, sales_clerk;

Perintah diatas digunakan untuk memberikan role hr_clerk dan sales_clerk sebagai role default pada user scott.

(58)

Perintah diatas dapat digunakan untuk memberikan semua role yang ada pada system oracle kepada user scott.

ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk;

Perintah diatas digunakan untuk memberikan semua role yang ada pada system oracle kecuali role hr_clerk.

ALTER USER scott DEFAULT ROLE NONE;

Perintah diatas digunakan untuk menghapus semua role default yang pernah diberikan pada user scott.

Enable dan disable role :

Disable role akan me-revoke role dari seorang user

Enable role akan meng-grant role tersebut kepada seorang user

Perintah SET ROLE digunakan untuk meng-enable dan disable role

Role default akan di enable kepada user saat login Password dapat digunakan untuk meng-enable role Contoh dengan menggunakan syntax :

SET ROLE sales_clerk IDENTIFIED BY commission;

SET ROLE hr_clerk;

(59)

SET ROLE NONE;

Acuan dalam pembuatan role :

HR_MANAGE R HR_CLERK PAY_CLERK U Usseerr r roolleess U Usseerrss BENEFITS PAYROLL A Apppplliiccaattiioonn r roolleess A Apppplliiccaattiioonn p prriivviilleeggeess Benefits Privileges

privileges

Payroll Privileges

(60)

Latihan

1. Buatlah role dengan aturan sebagai berikut :

a. Buat sebuah role dengan nama HRCLERK dengan kemampuan SELECT dan UPDATE pada table hr.employees.

b. Buat sebuah role dengan nama HRMANAGER dengan kemampuan INSERT dan DELETE pada table hr.employees. Grant role HRCLERK kedalam role HRMANAGER.

2. Buatlah 3 buah user baru

a. User DHAMBY sebagai HR clerk baru b. User RPANDYA sebagai HR clerk juga c. User JGOODMAN sebagai HR manager baru 3. Lakukan tes untuk user baru tersebut

a. Konek dengan menggunakan user DHAMBY. Cobalah untuk melakukan perintah SELECT data dari table hr.employees.

b. Cobalah untuk delete data dari table hr.employees.

c. Konek dengan menggunakan user JGOODMAN dan cobalah untuk select kemudian delete data dari table hr.employees.

d. Rollback perintah delete agar datanya kembali lagi.

4. Pada user DHAMBY, buatlah sebuah tabel data mahasiswa yang berisi nim dan nama mahasiswa yang Anda kenal pada grup praktikum ini. Lalu ”sharing” lah tabel tersebut agar user lain pada database yang sama dapat ikut melihatnya.

(61)

5. Berilah user RPANDYA system privilege CREATE TABLE dengan tambahan WITH ADMIN ACTION. Coba cabut hak CREATE TABLE dari user DHAMBY melalui user RPANDYA. 6. Carilah view pada data dictionary yang menyimpan keterangan

tentang privilege yang sekarang ada di database Anda.

7. Buatlah tabel tentang data dictionary view yang Anda temukan pada soal diatas, seperti berikut :

Data Dictionary Table Description

ROL_SYS_PRIVS System privileges granted to roles

… …

… …

(62)
(63)

MODUL 5

ORACLE DATABASE SECURITY

Kesehatan selalu tampak lebih berharga setelah kita kehilangannya.

Tujuan

Praktikan mampu mengamankan data yang ada di database miliknya

Materi

Oracle Database Security

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(64)

5.1. Database Security

Salah satu tugas seorang DBA adalah menjaga keamanan data yangtersimpan di dalam database miliknya. Dan inilah sebenarnya yang merupakan tantangan terbesar seorang DBA. Seorang DBA yang handal tentu saja dapat mengamankan database miliknya dengan baik, sehingga user akan merasa aman dan nyaman menyimpan data di schema miliknya.

Oracle Database 10g sudah dilengkapi dengan sebuah framework keamanan system tingkat tinggi, hanya saja dibutuhkan keterampilan khusus dari seorang administrator database-nya, serta monitoring kegiatan server secara berkelanjutan. Adapun beberapa aspek keamanan tersebut adalah :

 Restricting access to data and services

Tidak semua user boleh mengakses keseluruhan data yang tersimpan di database, tergantung dari tingkat kepentingan serta level dari user itu sendiri. Data-data tentang kartu kredit, catatan kesehatan seseorang dan identitas personal merupakan contoh data yang harus dilindungi dari akses oleh user-user yang tidak dikenal. Dengan membatasi hak akses, keamanan data akan lebih dapat terjamin.

 Authenticating users

Untuk dapat mengatur kontrol akses terhadap data yang sensitif, maka system harus tahu dulu siapa user yang sedang mencoba untuk mengaksesnya melalui proses autentikasi. Sehingga user yang tidak memiliki hak ataupun kepentingan terhadap data tersebut tidak akan dapat melakukan koneksi apalagi membuka data sensitif tersebut.

(65)

 Monitoring for suspicious activity

Meskipun telah terdaftar, user-user yang telah dikenali oleh system tetap harus diawasi. Aktifitas yang mencurigakan, seperti pengambilan informasi tentang kartu kredit dalam jumlah yang besar, ataupun informasi yang bersifat sensitif, bisa dijadikan langkah awal pendeteksian adanya usaha pencurian data.

5.2. Apply the Principle of Least Privileges

Salah satu metoda yang ada untuk permasalahan security ini adalah menerapkan sebuah aturan yang dikenal dengan sebutan Principle of Least Privileges. Dengan menerapkan prinsip ini diharapkan sudah mengurangi kemungkinan kecurian data.

Meskipun demikian prinsip ini harus benar-benar dipahami oleh seorang DBA sebelum menerapkannya terhadap user. Karena security selalu berhadapan dengan kenyamanan dan kebebasan user. Artinya setiap meningkatkan security selalu saja mengurangi kenyamanan dan kebebasan user. Jangan sampai karena hanya ingin agar database nya aman maka seorang DBA mengorbankan kepentingan user-nya.

Adapun isi dari metoda Prinsciple of Least Privileges adalah sebagai berikut :

 Protect the data dictionary

 Revoke unnecessary privileges from PUBLIC  Restrict the directories accessible by users  Limit users with administrative privileges  Restrict remote database authentication

(66)

5.3. Manage Default User Accounts

Saat membuat sebuah database baru dengan menggunakan fasilitas DBCA, Oracle juga turut membuat beberapa user default. User-user tersebut ada yang berkaitan dengan database administrator namun banyak pula yang tidak. Terlebih apabila Anda turut mencentang sample schema di salah satu langkah Create Database melalui DBCA.

Namun demikian, account keseluruhan user default tersebut akan otomatis terkunci (lock) kecuali user-user berikut ini :

 SYS  SYSTEM  SYSMAN  DBSNMP

Keempat user tersebut diatas merupakan user-user yang memilik kaitan dengan database administrator. Oleh karena itu pastikanlah bahwa account keempat user itu dalam keadaan aman.

Apabila Anda membuat database baru tidak melalui fasilitas DBCA atau bisa dikatakan secara manual, maka semua account user-user default tidak akan otomatis terkunci. Anda sebagai DBA-lah yang harus mengatur account-account tersebut.

(67)

5.4. Implement Standard Password Security Features

Password Management dapat di set up melalui profile, lalu berikan profile tersebut kepada user yang bersangkutan. Anda juga dapat melakukan Lock, Unlock dan Expired Account dengan menggunakan perintah CREATE USER atau ALTER USER. Limitasi pada password akan selalu di gunakan meskipun inisialisasi pada RESOURCE_LIMIT untuk instance di set menjadi FALSE.

Profile dapat menyediakan beberapa standard security feature, yaitu :

 Account locking

Otomatis mengunci account user tertentu yang telah gagal log in ke sistem Oracle

(68)

 Password aging and expiration

Mengatur jangka waktu lifetime password user, setelah ia expire dan harus diganti dengan password yang baru

 Password history

Men-check password baru yang diberikan bukan merupakan sebuah password lama yang digunakan kembali

 Password complexity verification

Mengatur kompleksitas password agar tidak mudah ditebak oleh user lainnya

(69)

Password verification function memberikan acuan dalam memberikan password dengan aturan sebagai berikut :

 Panjang minimum 4 karakter

 Password tidak boleh sama dengan nama user

 Password setidaknya harus memiliki satu huruf, satu angka, dan satu spesial karaktek

 Password harus berbeda dari password sebelumnya, paling tidak 3 huruf

5.5. Creating a Password Profile

Untuk membuat sebuah profile dapat dilakukan melalui Enterprise Manager. Bukalah halaman Administration lalu pilih Profiles dan klik

paa tombol Create. Nilai awal akan diberikan secara default, namun Anda dapat mengubahnya dengan cara

(70)

memilih melalui daftar nilai yang telah tersedia (dengan meng-klik gambar senter) atau langsung memasukkan nilai yang diinginkan.

Latihan

1. Tampilkan semua privileges yang memiliki option PUBLIC. 2. Sebutkan Packages apa saja yang seharusnya tidak memilik

privileges EXECUTE pada option PUBLIC.

3. Carilah object database yang dimiliki oleh SYS yang memiliki privileges EXECUTE yang juga di grant kepada PUBLIC.

4. Carilah user-user yang memiliki role DBA.

5. Buatlah sebuah profile dengan nama HRPROFILE yang membatasi idle time seorang user selama 15 menit. Untuk batasan (limitasi) lainnya biarkan Default.

6. Buatlah sebuah user baru dengan nama JGOODMAN namun tidak diberikan profile secara spesifik. Analisalah, profile apa yang akan diberikan kepada user tersebut dan jelaskan batasan limitasinya.

7. Buatlah agar user JGOODMAN secara otomatis akan logout setelah 15 menit dari jam kantor selesai (office hour : 08.00 – 16.00).

8. Sebelum dapat mempergunakan fungsi VERIFY_FUNCTION, ada sebuah script yang harus dijalankan terlebih dahulu. Carilah script tersebut lalu kemudian eksekusilah (jalankan).

(71)

9. Buatlah sebuah user baru lagi dengan nama EGOODEMP dengan salah satu profile limitasinya adalah VERIFY_FUNCTION.

(72)

MODUL 6

ORACLE NET SERVICES

Hari ini Anda adalah orang yang sama dengan Anda di lima tahun mendatang, kecuali

dua hal : orang-orang di sekeliling Anda dan buku-buku yang Anda baca.

Tujuan

Praktikan dapat membuat koneksi antara client dan server dengan menggunakan oracle net service dan mengerti cara kerja database shar ed server

Materi

Oracle Net Services

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(73)

6.1. Oracle Net Services

Oracle Net services digunakan untuk koneksi jaringan dari komputer client atau aplikasi middle-tier ke Oracle Database Server. Oracle Net berfungsi sebagai pembawa (kurir) data baik bagi aplikasi (client) maupun database server. Ia bertanggung jawab terhadap keberlangsungan koneksi antara aplikasi (client) dan server database. Oracle Net berada dimasing-masing komputer yang akan melakukan permintaan data dari server.

Agar server database dapat mendengar permintaan dari aplikasi (client), dibutuhkan semacam gateway. Gateway ini biasa disebut Listener yang berlokasi di server database. Permintaan apa yang didengar oleh Listener ? Permintaan yang didengar adalah segala macam permintaan koneksi dari luar komputer server

(74)

database (nonlocal user connections). Oracle Net listener dapat dikendalikan dari Database Control atau utilitas lsnrctl command-line. Untuk mengkonfigurasinya juga dapat melalui Database Control. Selain itu, bagi administrator yang sudah memiliki kemampuan advance, konfigurasi Oracle Net dapat juga dilakukan dengan cara meng-edit file konfigurasi menggunakan text editor, notepad misalnya.

6.2. Oracle Net Listener

Oracle Net listener merupakan sebuah gerbang pada Oracle instance untuk koneksi bagi user non lokal (diluar komputer server). Sebuah listener dapat digunakan untuk melayani multiple database instance dan ribuan koneksi dari client.

Oracle Net listener ini di kendalikan oleh Database Control atau utilitas command line lsnrctl.

(75)

Untuk memonitor listener dapat Anda lakukan dari halaman status Listener (Listener Status Page). Pada halaman ini Anda dapat melihat :

Versi listener dan ORACLE_HOME Alamat listener yang pertama

Lokasi dari konfigurasi file untuk start listener Kesiapan dari listener dan kapan ia di start Listener response time : TNS Ping(ms) Rata-rata koneksi yang terjadi per menit

Untuk melihat lebih detil anda dapat meng-klik link availability,

(76)

Gambar diatas menunjukkan urutan dalam pembuatan sebuah listener :

1. Pilih Listeners dari kotak dialog Administer 2. Klik Create

3. Tuliskan nama listener nya. Nama ini harus unik. 4. Tambahkan alamat listener nya

Setiap listener harus memiliki minimal sebuah alamat listener (listening address). Untuk memberikan listening address dapat dilihat pada gambar dibawah ini :

Adapun langkah-langkahnya adalah :

5. Pilih network protocol. TCP/IP merupakan pilihan default dan yang paling banyak digunakan.

6. Masukkan port number-nya. Oracle Net’s default port adalah 1521. Jika anda memilih port number selain 1521, maka anda perlu memasukkan konfigurasi tambahan.

(77)

7. Tuliskan nama atau alamat IP dari server dimana listener tersebut berjalan,

8. Klik OK untuk menyimpan konfigurasinya. Untuk langkah-langkah lainnya bersifat opsional.

9. Untuk start listener yang baru, pilih Start/Stop dari list Actions dan klik Go.

Oracle Net listener juga dapat dikontrol dengan menggunakan utilitas cammnad-line lsnrctl, seperti tampak pada gambar dibawah :

Pada utilitas listener control ini anda dapat : Start listener

Stop listener

Check status listener Check status service listener

Mengkonfigurasi ulang listener dari parameter file konfigurasi

Mengkonfigurasi banyak listener secara dinamis Mengubah password listener

(78)

6.3. Oracle Net Connections

Untuk dapat membuat koneksi dari client atau aplikasi middle-tier, Oracle Net mengharuskan agar client mengetahui :

Host dimana listener berada Port listener yang dituju

Protocol yang digunakan listener

Nama dari service yang di-handle oleh listener

Untuk membuat Oracle Net service alias, pilih Local Naming dari Administer list dan klik Go, dan kemudian klik Create

(79)

Latihan

1. Buatlah sebuah Oracle Net Service dengan nama kecil Anda sebagai penghubung komputer yang sedang dipakai saat ini (bertindak sebagai client) dengan komputer Oracle Server milik Lab. Komputer (bertindak sebagai server). Untuk konfigurasi alamat Oracle Server bisa ditanyakan kepada asisten/koastyang sedang bertugas.

2. Cobalah untuk melakukan koneksi ke Oracle Server milik Lab. Komputer dengan menggunakan user HR dan password HR. Buat sebuah tabel yang berisikan nama dan tanggal lahir teman satu grup praktikum ini yang Anda kenali.

3. Buatlah sebuah Oracle Net Service dengan nama panggilan Anda dirumah sebagai penghubung komputer yang sedang dipakai dengan server Oracle pada komputer ini juga (bertindak sebagai client sekaligus server).

4. Carilah file yang menyimpan konfigurasi Oracle Net Service yang pernah Anda buat.

5. Matikan Listener pada komputer yang sedang Anda pakai dan cobalah untuk melakukan koneksi terhadap user yang ada pada komputer server tersebut. Apa yang terjadi. Perbaiki kesalahn yang terjadi, jika ada, agar Anda dapat terhubung dengan komputer server yang sedang dipakai tersebut.

(80)

MODUL 7

MONITORING AND RESOLVING LOCK

CONFLICTS

Sumber kekuatan baru bukanlah uang yang berada dalam genggaman tangan beberapa

orang, namun informasi di tangan orang banyak.

Tujuan

Praktikan dapat mengatur undo tablespace dan memonitor serta mengatasi bila terjadi lock conflict

Materi

Monitoring and Resolving Lock Conflicts

Referensi

http://www.oracle.com

*

http://www.otn.oracle.com

*

(81)

7.1. Locks

Sebelum database mengijinkan session untuk melakukan perubahan data, hal pertama yang harus dilakukan oleh session adalah melakukan penguncian (locking) data yang akan diubah. Hal ini bertujuan untuk memberikan hak penuh kepada session tersebut untuk melakukan perubahan data tanpa harus khawatir terjadi konflik dengan transaksi lainnya yang juga akan melakukan perubahan data yang sama. Session lain tersebut tidak dapat melakukan perubahan data sampai dengan penguncian data tersebut dilepas.

Proses transaksi dapat mengunci sebaris data, beberapa baris, atau bahkan sebuah tabel. Oracle Database 10g mendukung kedua mode penguncian, baik manual maupun otomatis. Secara otomatis penguncian yang dilakukan akan memberikan level terendah kemungkinan perubahan data untuk meminimal potensial konflik yang mungkin timbul dengan transaksi lainnya.

Dengan demikian dapat dikatakan :

Mencegah multiple session mengubah data yang sama pada saat yang bersamaan

(82)

Secara otomatis akan diberikan mode penguncian untuk level terendah dari kemungkinan perubahan data dari transaksi lainnya

7.2. Mekanisme Penguncian (Locking Mechanism)

Mekanisme penguncian secara garis besar dapat dikatakan seperti tersebut dibawah ini :

Level tinggi dalam data concurrency

o Penguncian secara row-level untuk insert, update dan delete

o Tidak ada penguncian data untuk proses query biasa (SELECT)

Managemen antrian otomatis

Berlaku samapai dengan transaksi selesai (dengan perintah commit atau rollback)

(83)

7.3. Data Concurrency

Mode penguncian row-level merupakan default. Transaksi lainnya dapat mengubah row lainnya pada sebuah table yang sama tanpa mengganggu transaksi lainnya.

Meskipun secara default menggunakan mode penguncian row-level, Oracle Database 10g juga dapat melakukan penguncian dengan level yang lebih tinggi secara manual jika diperlukan :

Dengan menggunakan perintah diatas, transaksi lainnya ingin mengubah data pada tabel yang sedang terkunci harus menunggu sampai transaksi yang menyebabkan terkuncinya tabel tersebut selesai melakukan pengubahan data.. EXCLUSIVE merupakan mode penguncian yang paling tinggi. Mode lainnya adalah :

ROW SHARE : masih mengijinkan akses secara bersamaan

untuk tabel yang sedang terkunci, tapi membatasi session untuk melakukan eksklusif akses pada tabel yang sedang terkunci

ROW EXCLUSIVE : sama seperti ROW SHARE, tapi juga

membatasi penguncian dalam mode SHARE. ROW EXCLUSIVE akan diberikan secara otomatis pada saat session melakukan transaksi update, insert ataupun delete data

SHARE : mengijinkan query bersamaan tapi membatasi

proses update pada tabel yang sedang terkunci. Mode SQL> LOCK TABLE hr.employees IN EXCLUSIVE MODE

Table(s) Lokced.

(84)

SHARE biasanya digunakan pada pembuatan sebuah index pada tabel tersebut.

SHARE ROW EXCLUSIVE : mengijinkan proses lainnya

untuk menglakukan perintah query pada keseluruhan baris dalam tabel tersebut, tapi membatasi session lainnya untuk melakukan mode SHARE ataupun update data

EXCLUSIVE : mengijin session lain untuk melakukan

perintah query pada tabel yang sedang terkunci, tapi membatasi user lain melakukan aktifitas lainnya pada tabel tersebut. Penguncian eksklusif dilakukan untuk penghapusan (drop) sebuah tabel

Sama seperti penguncian lainnya, perintah penguncian manual menunggu sampai semua session yang telah memiliki penguncian (lock) data melepas “kuncinya”. Perintah LOCK dapat disisipi suatu perintah khusus untuk membatasi waktu tunggu, yaitu NOWAIT.

Dengan perintah NOWAIT anda akan segera mendapatkan jawaban apakah tabel tersebut telah dikunci (lock) oleh session lainnya.

SQL> LOCK TABLE hr.employees IN SHARE MODE NOWAIT; LOCK TABLE hr.employees IN SHARE MODE NOWAIT

ERROR at line 1 :

ORA-00054 : resource busy and acquire with NOWAIT specified

(85)

7.4. DML Locks

Setiap transaksi DML harus memperoleh dua buah lock : Row-exclusive lock untuk baris yang sedang di-update Shared table-level lock untuk tabel yang memiliki baris date tersebut

Enqueue Mechanism

Mekanisme antrian digunakan untuk menjaga :

Proses tunggu session untuk penguncian beris (row locking) Mode lock yang diminta

(86)

7.5. Lock Conflicts

Penyebab terjadinya lock conflict antara lain seperti tersebut dibawah ini :

Perubahan yang tidak do commit (uncommitted changes) Transaksi yang berjalan lama (long-running transactions) Penguncian tingkat tinggi yang tidak diperlukan (unnecessarily high locking levels)

Gambar

Gambar  diatas  menunjukkan  urutan  dalam  pembuatan  sebuah  listener :

Referensi

Dokumen terkait

seberkas sinar-X di jatuhkan pada sampel kristal, maka bidang kristal itu akan membiaskan sinar-X yang memiliki panjang gelombang sama dengan jarak antar kisi

Syukur alhamduliahpenulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-NYA sehingga penulis dapat menyelesaika skripsi yang berjudul “Pengaruh

Nilai PEFR abnormal terbanyak terdapat pada kelompok responden yang dengan keluhan respirasi batuk dan nyeri dada (100%), batuk, berdahak dan sesak napas (100%), batuk, sesak

Berdarkan tabel dapat diketahui bahwa strategi yang dilakukan oleh pedagang apabila suatu saat dagangan mereka sepi pembeli adalah meningkatkan kualitas

Pembuatan Proyek Akhir ini bertujuan untuk : 1) mendapatkan desain tata rias panggung pada tokoh Jasmien dalam pergelaran tata rias Fairy Tales Of Fantasi, 2) mendapatkan

Penanganan bahan terhadap bahan baku minyak atsiri dimaksudkan sebagai tindakan awal untuk mempermudah pelepasan molekul- molekul minyak atsiri dari dalam sel tumbuhan,

[r]

Penelitian ini dilakukan dalam tiga tahap utama.Tahap awal bertujuan untuk membuat peta wilayah kawasasan pesisir Semarang Utara.Fokus kegiatannya adalah pengolahan