Tuesday, March 6, 2007

External files

Terdapat tiga buah eksternal file yang digunakan sebelum membuat sebuah database, yaitu :
  • parameter file
    Parameter file mendefinisikan spesifikasi dari instance yang berisi struktur memori dan proses, seperti kontrol file, penggunaan memory dan mengatur bagaimana background proses berjalan. Terdapat dua jenis parameter file yaitu static parameter file dan dynamic parameter file. Static parameter file (biasanya berformat ini/SID/.ora) adalah text sederhana yang hanya dipanggil sekali oleh instace ketika database mulai. Sedangkan dynamic parameter file adalah file biner yang dikelola oleh Oracle sendiri untuk merespon perintah dari user.
  • password file
    Password file digunakan untuk menyimpan informasi autentifikasi user ketika database dalam keadaan mati. Ceritanya, selama ini Oracle menyimpan semua informasi user dan password database dalam tabel / data dictionary sehingga ketika terdapat user yang melakukan request, Oracle akan melakukan query dari data dictionary tersebut. Namun, apa yang terjadi ketika database tersebut sedang offline atau mati. User tidak dapat melakukan request ke database. Oleh karena itulah Oracle menyediakan dua buah autentifikasi ketika database dalam keadaan offline, yaitu autentifikasi Sistem Operasi dan autentifikasi password file.

    Pada autentifikasi sistem operasi, keamanan diserahkan sepenuhnya ke sistem operasi seperti user, group akan diautentifikasi oleh sistem. Peran penting pada keamanan sistem adalah sistem administrator. Akan tetapi, kelemahan dari autentifikasi sistem operasi ini adalah tidak adanya dukungan penuh terhadap remote connectivity terhadap instance. Jadi ketika kita melakukan koneksi, kita hanya berhubungan dengan sistem operasinya saja, tidak secara langsung berhubungan dengan Oracle Server. Autentifikasi ini cocok bagi DBA yang tidak membutuhkan jaringan untuk koneksi ke Oracle server.

    Sedangkan pada autentifikasi password file, semua autorisasi dan autentifikasi ke Oracle server dipegang penuh oleh Oracle sendiri, sekaligus meng-cover kelemahan pada autentifikasi sistem operasi. Dengan username dan password yang terenkripsi, konektifitas ke Oracle server dilakukan secara independen.
  • archive log file
    Archive log file menggandakan online redo log files yang telah penuh. Archive log menjaga catatan terhadap perubahan data yang dilakukan oleh user. Di dalam bisnis archive log file digunakan untuk menjamin kemungkinan kehilangan data.

Startup an Shutdown

Startup and Shutdown

Perlu diingat bahwa instance dan database adalah entitas yang berbeda, mereka dapat berdiri sendiri karena bersifat independen satu sama lain. Hal ini berkaitan dengan proses startup yang dilakukan Oracle yaitu
  • build instance di memori,
  • membuat koneksi database dengan melakukan mounting,
  • membuka dan menggunakan database
Sedangkan state yang dilakukan adalah
  • SHUTDOWN, pada state ini semua file database ditutup dan instance dihapus dari memori.
  • NOMOUNT, pada mode ini instance dibuat di memori (SGA dan semua background proses dijalankan) sesuai dengan parameter file tetapi tidak ada koneksi ke dalam database
  • MOUNT, pada mode ini instance terhubung dengan membaca database control file dan kemudian mengaktifkan datafile dan online redo log file.
  • OPEN, mode ini semua database file terhubung dan siap digunakan untuk user.

Dengan model tersebut maka kinerja satu sama lain tidak akan terganggu. Misalkan terdapat kerusakan pada control file dan duplikasi control file lainnya pun mengalami masalah maka proses yang harus dilakukan hanyalah melakukan penghentian proses NOMOUNT sehingga perbaikan dapat dilakukan. Begitu pula jika terjadi masalah pada datafile atau redo log file, pada mode MOUNT perbaikan pada kedua hal tersebut dapat dilakukan.

Berikut ini aku coba bagi informasi tentang tahapan startup dan shutdown Oracle database:
  1. Jalankan SQL*Plus dengan mode /nolog (bisa juga tanpa mode /nolog)
    sqlplus /nolog
  2. Login sebagai sysdba
    connect / as sysdba
  3. Jalankan instance
    startup nomount;
  4. Mount database
    alter database mount;
  5. Open database
    alter database open;
  6. Shutdown database ( dengan mode immediate)
    shutdown immediate;
  7. Connect sebagai sys
    connect sys/SID as sysdba
  8. Jalankan perintah complete startup
    startup;
  9. Tampilkan parameter BACKGROUND_DUMP_DEST
    show parameter background_dump_dest;
Lihat catatan yang disimpan dalam file alert_.log. File tersebut mencatat semua history yang berhubungan dengan pengelolaan database.

Terdapat beberapa pilihan perintah dalam shutdown, antara lain :
  • Normal, merupakan perintah default. Tidak ada user baru yang diijinkan akses ke database, tetapi akses yang ada tetap masih dapat berjalan. Ketika user terakhir logoff maka secara otomatis database shutdown.
  • Transactional, pada mode ini tidak ada user baru yang diijinkan akses ke database dan session yang ada tetapi tidak melakukan transaksi akan dihapus tetapi bagi yang masih melakukan transaksi akan diperbolehkan untuk melanjutkannya hingga akhirnya selesai maka database otomatis shutdown.
  • Immediate, pada mode ini tidak ada session baru diijinkan dan semua session yang melakukan koneksi akan dihapus. Semua transaksi yang aktif akan di rollback dan database kemudian shutdown.
  • Abort, mode ini sama halnya dengan mati listrik. Instance langsung shutdown, tidak ada rollback, tidak ada proses close file dan semua transaksi yang sedang berjalan akan dibatalkan. Mode ini sangat tidak dianjurkan untuk dilakukan.

Berikut adalah gambaran file yang terlibat pada startup dan shutdown database,

Database Off
|
| Parameter File
|
v
NOMOUNT
|
| Control File
|
v
MOUNT
|
| Datafile and Online Redo Log File
|
v
OPEN and Database On

SYSOPER dan SYSDBA

Perbedaan SYSOPER dan SYSDBA

Ketika login sebagai DBA, maka terdapat dua pilihan hak akses (privileges) yaitu SYSDBA dan SYSOPER. Kedua privileges tersebut merupakan privileges dengan kemampuan special.

SYSDBA adalah privileges paling atas yang dapat menjalankan semua perintah yang disediakan Oracle. Karena itu SYSDBA sering disebut dengan super user atau superset dari semua user. Default schema dari SYSDBA adalah SYS.

SYSOPER merupakan subset dari SYSDBA yang memiliki default schema PUBLIC.
SYSOPER hanya memiliki kemampuan untuk menjalankan perintah berikut :
startup
shutdown
alter database [mount | open | close | dismount]
alter [database | tablespace] [begin | end] backup
recover

Monday, March 5, 2007

Share: Creating Database

Creating Database

Untuk membuat database terdapat beberapa hal yang harus diperhatikan secara benar dan harus sesuai urutan, antara lain :
  • Membuat parameter file dan password file
  • Menggunakan parameter file untuk membuat instance di memori
  • Menggunakan perintah create database. Secara default (dengan hanya create database), maka Oracle akan membuat spesifikasi minimum dengan satu control file, dua online redo log files, dua datafile untuk system dan sysaux tablespace dan sebuah data dictionary.
  • Menjalankan SQL script untuk membuat data dictionary view dan paket PL/SQL.
  • Menjalankan SQL script untuk meng-generate Enterprise Manager Database Control yang akan dibutuhkan database.

Semua proses tersebut dapat dilakukan secara interaktif dengan dua cara yaitu melalui Database Configuration Assistant (DBCA) atau melalui SQL script. Namun kebanyakan DBA mengkombinasikan kedua cara tersebut yaitu menggunakan DBCA untuk meng-generate script dan kemudian mengedit script tersebut sesuai keinginannya.
Untuk running DBCA di Unix dengan remote, pastikan bahwa path berikut ini telah di-set :
  • echo $ORACLE_HOME , contoh: /u04/app/oracle/product/10.2.0
  • echo $PATH , contoh: .:/u04/app/oracle/product/10.2.0/bin:/usr/java/bin:/bin:/usr/bin:/bin:/sbin:/usr/sbin
  • echo $DISPLAY , contoh: DISPLAY=10.7.17.131:0.0

Setelah creating database selesai, script .ora yang dihasilkan akan seperti ini:

############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
############################################################################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Database Identification
###########################################
db_domain=""
db_name=ocp10g
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=C:\oracle\admin\ocp10g\bdump
core_dump_dest=C:\oracle\admin\ocp10g\cdump
user_dump_dest=C:\oracle\admin\ocp10g\udump
###########################################
# File Configuration
###########################################
control_files=("C:\oracle\oradata\ocp10g\control01.ctl",
"C:\oracle\oradata\ocp10g\control02.ctl",
"C:\oracle\oradata\ocp10g\control03.ctl")
db_recovery_file_dest=C:\oracle\flash_recovery_area
db_recovery_file_dest_size=2147483648
###########################################
# Job Queues
###########################################
job_queue_processes=10
###########################################
# Miscellaneous
###########################################
compatible=10.1.0.2.0
###########################################
# Pools
###########################################
java_pool_size=0
large_pool_size=8388608
shared_pool_size=83886080
###########################################
# Processes and Sessions
###########################################
processes=150
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=65536
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1