Minggu, 25 Oktober 2009

oracle

Share Kata database dalam frasa “arsitektur database Oracle” seharusnya adalah Database Management System (DBMS). Untuk penyederhanaan penyebutan, Database Management System memang sering cukup disebut database saja.
Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).
Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.
Secara umum komponen DBMS Oracle terdiri atas memory, proses, dan file-file. Lebih jauh lagi, komponen-komponen tersebut dikelompokkan sebagai berikut:
1. Instance
- Memory yang disebut sebagai System Global Area (SGA), terdiri atas: Shared Pool (Libary Cache and Data Dictionary Cache), Database Buffer Cache, Redolog Buffer Cache, Java Pool, Large Pool.
- Back ground process: PMON, SMON, DBWR, LGWR, CKPT, dan lain-lain
2. Database
- Datafile
- Control file
- Redo log file
3. Komponen lain
- process: Server Process, user process
- memory: Program Global Area (PGA)
- File: Archived log, parameter, dan password file

Oracle terdiri dari beberapa edisi antara lain:
1. Edisi standar
2. Edisi enterprise
3. Edisi standar satu
4. Edisi express
5. Oracle edisi personal
6. Oracle database lite
7. TimesTen
8. BerkeleyDB

Jenis perangkat keras (platform) yang dipakai sebagai server (host):
• Apple Mac OS X Server: PowerPC
• HP HP-UX: PA-RISC, Itanium
• HP Tru64 UNIX: Alpha
• HP OpenVMS: Alpha, Itanium
• IBM AIX5L: POWER
• IBM z/OS: zSeries
• Linux: x86, x86-64, PowerPC, zSeries, Itanium
• Microsoft Windows: x86, x86-64, Itanium
• Sun Solaris: SPARC, x86, x86-64

Pesaing
Pesaing dari perangkat lunak Oracle adalah:
• IBM: DB2, Informix, UDB
• Microsoft SQL Server
• Software AG: Adabas
• Sybase.
Oracle dan IBM menekankan pada platform menengah seperti UNIX dan Linux, sementara Microsoft cenderung meraih pasar untuk kelas rendah (Microsoft Windows platforms).
Basis data Oracle juga bersaing dengan basis data sumber-terbuka (open-source relational databases), seperti PostgreSQL, Firebird, dan MySQL. Perangkat lunak EnterpriseDB yang berbasis PostgreSQL, belum lama ini mengumumkan fitur yang kompatibel dengan Oracle dengan harga yang sangat wajar dan murah.


PERBEDAAN DATABASE DENGAN INSTANCE
Instance adalah struktur proses dan memory yang menjalankan sistem database (DBMS, database management system). Sedangkan database adalah sekumpulan file yang menyimpan data (yang terdiri atas datafile, controlfile, dan redo log file).
Selain datafile dan log dfile, control file merupakan salah satu file utama database Oracle. Informasi yang disimpan di contol file di antaranya adalah nama database, lokasi datafile dan logfile, nomor SCN, dan lain-lain.
View-view dictionary yang datanya diambil dari control file di antaranya adalah: v$DATABASE, v$DATAFILE, v$TEMPFILE, v$LOGFILE, V$LOG, dan lain-lain. Control file dibaca Oracle ketika instance sedang mount. Oleh karena itu, view-view tersebut bisa di-query meskipun database dalam keadaan mount (belum open).
Lokasi
Lokasi control file ditunjukkan oleh parameter control_files. Silahkan temukan parameter control_files ini di instance parameter (init file atau spfile). Atau gunakan SQL command berikut:


SQL> show parameter control_files

SQL> -- atau

SQL> select name from v$controlfile;

SQL> -- atau

SQL> select NAME,VALUE from v$parameter

where NAME ='control_files'



Melihat isi control file
Untuk melihat informasi apa saja yang disimpan di control file, gunakan SQL command berikut:

SQL> select * from V$CONTROLFILE_RECORD_SECTION order by type;


Untuk melihat definisi control file, backup control file ke file text. Gunakan perintah ini:

SQL> alter database backup controlfile to trace;



Perintah di atas akan membuat trace file yang disimpam di direktori user_dump_dest. Gunakan perintah SQL “show parameter user_dump_dest” untuk melihat lokasi direktori tersebut. Format file adalah NAMAISNTANCE_ora_OSID.trc. Di contoh saya ini, trace file yang di-generate adalah ts_ora_22363.trc.
Isi trace file ini adalah script untuk re-create control file. Ada dua bagian, yaitu recreate dengan opsi NORESETLOGS atau RESETLOGS.
Berikut ini adalah content control file (dengan opsi NORESETLOGS)

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "TS" NORESETLOGS FORCE LOGGING ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 4 '/oradata/oracle/ts/redo04.log' SIZE 5M,

GROUP 5 '/oradata/oracle/ts/redo05.log' SIZE 5M,

GROUP 6 '/oradata/oracle/ts/redo06.log' SIZE 5M

DATAFILE

'/oradata/oracle/ts/system01.dbf',

'/oradata/oracle/ts/undotbs01.dbf',

'/oradata/oracle/ts/sysaux01.dbf',

'/oradata/oracle/ts/users01.dbf2',

'/oradata/oracle/ts/test01.dbf',

'/oradata/oracle/ts/test02.dbf'

CHARACTER SET WE8MSWIN1252

;

RECOVER DATABASE

ALTER SYSTEM ARCHIVE LOG ALL;

ALTER DATABASE OPEN;

ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/oracle/ts/temp01.dbf2'

SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;



Bagain kedua, yaitu recreate dengan opsi RESETLOGS, intinya sama saja. Hanya berbeda pada poin-poin berikut:


CREATE CONTROLFILE REUSE DATABASE "TS" RESETLOGS FORCE LOGGING ARCHIVELOG

RECOVER DATABASE USING BACKUP CONTROLFILE

ALTER DATABASE OPEN RESETLOGS;


Menambah, multiplexing (mirroring) control file
Ketika membuat database dengan dbca, by default Oracle akan membuat 3 control file. Isi ketiga control file tersebut adalah sama. Sebenarnya, 1 control file saja cukup. Kita dianjurkan untuk membuat lebih dari 1 untuk jaga-jaga (multiplex/mirror), kalau-kalau salah satu control file corrupt kita masih punya yang lainnya. Oleh karena itu, idealnya masing-masing control file ditaruh di file system (drive) yang berbeda.
Multiplexing dilakukan dengan menambah control file. Misalkan kita sudah punya 3 control file berikut:

/oradata/oracle/ts/control01.ctl

/oradata/oracle/ts/control02.ctl

/oradata/oracle/ts/control03.ctl



Saya ingin menambah 1 control file lagi dan saya taruh di directory /data1/oracle. Berikut ini step-stepnya:
1. Shutdown database

SQL> shutdown immediate


2. Copy control file. Bisa yang mana saja karena isinya sama semua
3.

cd /data1/oracle/

cp -rp /oradata/oracle/ts/control03.ctl control04.ctl



4. Edit parameter control_files di instance parameter file (initfile atau spfile).
Kalau pakai init file, edit file $ORACLE_HOME/dbs/initts.ora (dalam contoh ini, nama instance adalah ts). Tambahkan control file yang baru tersebut ke definisi control_files:

control_files='/oradata/oracle/ts/control01.ctl',

'/oradata/oracle/ts/control02.ctl',

'/oradata/oracle/ts/control03.ctl',

'/data1/oracle/control04.ctl'




Kalau pakai spfile, kita tidak bisa mengedit spfile pakai text edior, mau tidak mau ya harus startup instance (cukup startup nomount saja):

SQL> startup nomount

SQL> alter system set control_files=

'/oradata/oracle/ts/control01.ctl',

'/oradata/oracle/ts/control02.ctl',

'/oradata/oracle/ts/control03.ctl',

'/data1/oracle/control04.ctl'

scope=spfile;

SQL> shutdown immediate





5. Startup database. Check bahwa sekarang control file sudah bertambah

SQL> startup

SQL> select name from v$controlfile;

NAME

--------------------------------------

/oradata/oracle/ts/control01.ctl

/oradata/oracle/ts/control02.ctl

/oradata/oracle/ts/control03.ctl

/data1/oracle/control04.ctl

Me-rename (memindahkan) control file
Step-stepnya hampir sama dengan menambah control file. Misalkan kita akan memindahkan control file /data1/oracle/control04.ctl ke directory /data2/oracle/
1. shutdown database
2. pindahkan (rename) control file

1. cd /data2/oracle/

mv /data1/oracle/control04.ctl /data2/oracle/



3. Edit instance parameter file (initfile atau spfile). Ganti control file yang lama (/data1/oracle/control04.ctl) menjadi yang baru (/data2/oracle/control04.ctl):

control_files='/oradata/oracle/ts/control01.ctl',

'/oradata/oracle/ts/control02.ctl',

'/oradata/oracle/ts/control03.ctl',

'/data2/oracle/control04.ctl'




4. startup database
Mengurangi (delete/drop) control file
Step-stepnya juga hampir sama saja dengan menambah control file, intinya adalah membuang (take out) control file (yang akan dibuang) dari parameter control_files. Misalkan saya ingin menghapus control file /data2/oracle/control04.ctl.
1. shutdown database
2. Take out /data2/oracle/control04.ctl dari parameter control_files.

control_files='/oradata/oracle/ts/control01.ctl',

'/oradata/oracle/ts/control02.ctl',

'/oradata/oracle/ts/control03.ctl'



3. startup database.

Kamis, 22 Oktober 2009

Share alamat blog: http://www.wanday-blog.blogspot.com

email baru: wanday.doanx@gmail.com