Daily Archiv: Tuesday - 23 October 2012

Fitur Keamanan dan duplikasi data pada Interbase

Dalam sebuah aplikasi database, keamanan dan duplikasi data merupakan sebuah kebutuhan pokok yang tidak bisa dianggap remeh.

Percuma ada aplikasi bagus tapi tidak ada jaminan keamanan, baik aman dari pencurian data atau hilang karena rusak.

1. Sekuritas pemakai (*)

Pada interbase daftar user dan hak akses user dapat di atur dengan menggunakan pola terpusat di server (seperti mysql) atau embeded pada masing-masing database (seperti access, paradox), tentunya ini mempunyai kelebihan dan kekurangan masing-masing.

Dengan menggunakan user terpusat, lebih mudah bila banyak user yang mengakses beberapa database, sehingga bila ingin menambah, menghapus, ganti password, cukup satu untuk semua.

Kekurangan/kelemahannya bila data tersebut dicuri orang, maka orang tersebut tinggal install server dengan user default, maka data tersebut dapat dibuka. Dengan menggunakan sekuritas menyatu dengan database (embed), data akan tetap aman seandainya dicuri orang selama sang pencuri tersebut tidak tahu master passwordnya (SYSDBA), si pencuri masih harus putar otak kalo tidak tahu user/passwordnya.

Dengan menggunakan embeded user kita bisa set password beda untuk tiap aplikasi walaupun nama usenya sama.

Lebih detail baca disini

2. Backup / Restore

Backup & Restore fungsinya untuk menyimpan data, biasanya dalam format compressed, yang mana bisa digunakan kembali bila ada kelihangan data.

Untuk melakukan backup/restore pada interbase bisa menggunakan commandline tool (gbak), atau menggunakan vcl (ibx/fibplus), atau bisa juga menggunakan API coding.

contoh Backup Interbase menggunakan tool gbak …

C:\DATA>GBAK -v DATA.IB DATA.IBK -user sysdba -pass masterkey
gbak: readied database DATA.IB for backup
gbak: creating file DATA.IBK
gbak: starting transaction
gbak: database DATA.IB has a page size of 4096 bytes.
gbak: writing domains
gbak:     writing domain RDB$1
gbak:     writing domain RDB$2
gbak:     writing domain RDB$3
gbak:     writing domain RDB$4
gbak:     writing domain RDB$5
gbak: writing shadow files
........
gbak:     writing privilege for user PUBLIC
gbak:     writing privilege for user SYSDBA
gbak:     writing privilege for user SYSDBA
gbak: writing table constraints
gbak: writing constraint INTEG_1
gbak: writing constraint PK_BIODATA
gbak: writing referential constraints
gbak: writing check constraints
gbak: writing SQL roles
gbak: writing users
gbak:     writing user SYSDBA
gbak: closing file, committing and finishing. 15872 bytes written
C:\DATA>

contoh code Backup Interbase menggunakan komponen IBX …

uses IBServices;

procedure TForm1.Button1Click(Sender: TObject);
var
   bak: TIBBackupService;
begin
     Memo1.Clear;
     bak:=TIBBackupService.Create(Self);
     bak.DatabaseName:='c:\data\DATA.IB';
     bak.BackupFile.Text:='c:\data\DATA.IBK';
     bak.Params.Values['user_name']:='sysdba';
     bak.Params.Values['password']:='masterkey';
     bak.LoginPrompt:=False;
     bak.Verbose:=True;
     bak.Attach;
     bak.ServiceStart;
     while not bak.Eof do
           Memo1.Lines.Add(bak.GetNextLine);
     bak.Detach;
     bak.Free;
end;

3. Online dump (sequential backup)

Online dump mirip dengan backup namun hasilnya tetap dalam format database (readonly) dan sifatnya menambah untuk proses berikutnya, bukan overwrite, sehingga prosesnya lebih cepat bila kita lakukan lebih sering (mirip fitur resume – kalo kita download file di internet).

Contoh Online Dump menggunakan tool gbak …

C:\DATA>gbak -d DATA.IB DATA_DUMP.IB -user sysdba -pass masterkey
gbak: WARNING: Dumped 196 pages of a total 196 database pages
gbak: WARNING: Dumped 0 pages to page appendix file

4. Shadow

Shadow adalah proses cloning database secara realtime (1:1), seperti teknologi RAID pada komputer server. kita bisa membuat shadow sebanyak mungkin.

Contoh membuat Shadow …

CREATE SHADOW 1 MANUAL 'D:\DATA_SHADOW_01';
CREATE SHADOW 2 MANUAL 'E:\DATA_SHADOW_02';
CREATE SHADOW 3 MANUAL 'F:\DATA_SHADOW_03';

5. Journaling (*)

Journaling fungsinya mirip dengan shadow namun menjadi potongan-potongan file kecil yang dapat kita set check pointnya, ini berguna bila ada suatu masalah kita bisa mundur beberapa langkah sesuai cek poin (mirip fitur system restore pada windows), kegunaan lain jika kita ingin membuat duplikasi database di lokasi lain jauh (kita file kirim potongan2 file kecil tadi via email/ftp) untuk di satukan kembali di tempat tujuan.

6.Replikasi (**)

Replikasi merupakan proses sinkronisasi antar database (bisa beda table/field dll), baik secara satu arah, dua arah atau banyak arah. yang sangat berguna untuk sinkronisasi data di beberapa server yang berjauhan dengan koneksi internet pas-pasan.

Inti dari Replikasi/sinkronisasi adalah membuat catatan/logging setiap aktifitas table2 terntentu dalam database kedalam sebuah table log, kemudian secara terjadwal memproses log tersebut kepada database lain.

Untuk menjamin akurasi data dalam proses Replikasi/sinkronisasi  ini membutuhkan fitur Transaction dan Two Phase Commit yang sepenuhnya di dukung Interbase.

Untuk menikmati fitur ini dapat menggunakan tool pihak ketiga yang siap pakai(seperti IbReplicator), atau kita bisa membuat sendiri dengan menggunakan vcl ibx/fibplus, dengan menerapkan fitur Transaction dan Two Phase Commit .

Catatan:
Fitur 1-5 adalah fitur standar/bawaan Interbase
tanda * (Fitur 1 & 5) merupakan fitur interbase yang sejauh saya tahu belum ada di saudara angkatnya (Fi** B** sampai versi saat ini 2.5)
tanda ** (Fitur 6) membutuhkan 3 party tool, namun kita juga bisa bikin sendiri