caterinhuang

Raw device dan filesystem

Apa itu raw device?

Raw device/raw partition adalah sebuah partisi disk yang tidak dimount dan tidak bisa ditulis melalui unix filesystem. Tetapi raw device ini dapat diakses dengan sebuah character-special dvice driver. Cara penulisan raw device tergantung kepada masing-masing aplikasi karena tidak ada filesystem yang menggantikan tugas aplikasi untuk melakukannya. Raw device biasanya dikenali pada direktori /dev. Biasanya raw device ditampilkan dalam bentuk:

crw-rw-rw- 1 root system 15, 0 Mar 12 09:45 rfd0

atau juga

brw-rw-rw- 1 root system 15, 0 Apr 16 15:42 /dev/fd0

Mengapa menggunakan raw device?

Raw device dapat menguntungkan performa karena semua penulisan I/O akan melompati UNIX buffer cache. Data akan langsung ditransfer dari Oracle buffer cache ke disk.

Kapan menggunakan raw device?

Jika ada masalah I/O pada level UNIX(I/O bottleneck),sebaiknya menggunakan raw device agar performa database menjadi lebih baik. Bagaimana membuat tablespace menggunakan raw device?

create tablespace raw_tabspace datafile '/dev/raw1' size 30712K datafile '/dev/raw2' size 30712K

File apa saja yang sebaiknya disimpan di raw partition?

Redo log file merupakan salah satu file yang memenuhi kriteria untuk disimpan di raw device. Hal ini dikarenakan redo log merupakan file yang sering ditulis, dan ditulis secara sequential. Tetapi archivelog tidak dapat ditulis ke raw partition,melainkan harus ke UNIX filesystem.

Transparent Application Failover Oracle Dataguard

Oracle Dataguard adalah salah satu fitur dari oracle yang memungkinkan konsep DRC dapat terimplementasikan dalam sebuah system. Dalam Oracle Dataguard ada 2 buah database, yaitu database primary dan database standby. Pada dasarnya client akan mengakses ke database primary dan database primary akan mengirimkan archive log file ke database standby. Namun ketika terjadi perpindahan role baik melalui switchover atau failover, client harus disetting agar dapat tetap mengakses database primary yang benar.

Transparent Application Failover atau sering disingkat sebagai TAF merupakan suatu fitur yang memungkinkan client untuk tetap mengakses database yang benar.

Untuk dapat mengaplikasikan TAF pada Oracle Dataguard, lakukan hal berikut:
1. Tambahkan baris berikut pada tnsnames.ora client

orcl =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = HostA)(PORT = 1521))
 (ADDRESS = (PROTOCOL = TCP)(HOST = HostB)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME = orcl)
 )
 )

 

2. Jalankan perintah berikut pada server primary

begin
 dbms_service.create_service('orcl','orcl');
end;
/
begin
 DBMS_SERVICE.START_SERVICE('orcl');
end;
/

 

3. Buat trigger untuk memastikan service dinyalakan jika database memiliki role primary. Trigger dijalankan ketika database sedang dinyalakan

create trigger myapptrigg after startup on database
declare
 v_role varchar(30);
begin
 select database_role into v_role from v$database;
 if v_role = 'PRIMARY' then
 DBMS_SERVICE.START_SERVICE('orcl');
 else
 DBMS_SERVICE.STOP_SERVICE('orcl');
 end if;
end;
/

 

4. Jalankan perintah berikut pada server primary:

begin
 dbms_service.modify_service
 ('orcl',
 FAILOVER_METHOD => 'BASIC',
 FAILOVER_TYPE => 'SELECT',
 FAILOVER_RETRIES => 200,
 FAILOVER_DELAY => 1);
end;
/

 

5. Lakukan uji coba dengan melakukan select pada table dengan jumlah baris 10000. Kemudian pada saat select, kita lakukan failover. Proses select akan tampak terhenti sejenak,kemudian berlanjut pada server kedua sehingga proses failover tidak tampak oleh client 🙂

ORA-16191: tricky password file problem at Oracle 11G

Ketika mencoba melakukan setting Oracle Dataguard pada Oracle 11G, mungkin kita pernah menemukan error seperti ini:

ORA-16191: Primary log shipping client not logged on standby

Error tersebut memberitahkuan kepada kita bahwa Database Primary tidak dapat melakuakn pengiriman log kepada database standby. Jika kita menelusuri error tersebut, kita akan menemukan bahwa error ini berkaitan dengan password file yang tidak sinkron sehingga primary log shipping client tidak dapat melakukan login secara remote.

Tentunya ketika pertama kali menemukan error ini, kita akan mencoba membuat ulang sebuah password file baru dengan command:

orapwd file =<nama_password_file> password=<password_baru>

tetapi setelah mencoba membuat password file baru dengan command di atas pada oracle 11G, tidak menyelesaikan masalah juga.

Hal ini disebabkan karena pada Oracle 11G, ada tambahan parameter baru yaitu SEC_CASE_SENSITIVE_LOGON. Parameter ini menentukan apakah ketika login, huruf besar dan huruf kecil dibedakan. Secara default, nilai parameter ini adalah true. oleh karena itu, langkah yang harus kita lakukan agar error ini terselesaikan adalah:

1. Login ke dalam sqlplus dengan menggunakan role sebagai sysdba

2. SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false;

3. SQL> host;

4. buat kembali password file dengan perintah:

orapwd file =<nama_password_file> password=<password_baru> ignorecase=Y

dengan demikian password file baru akan terbentuk tanpa membedakan huruf besar dan huruf kecil, sehingga error akan terselesaikan.

Experience is the best teacher. Hope this share will help others who face the same problem as what I found 🙂