Senin, 26 Desember 2011

Restore dan Recovery dari Online Backup

Restore dari online backup adalah sama persis dengan restore dari offline backup, kecuali ada 1 tambahan step setelah melakukan restore dari online backup, yaitu kita WAJIB melakukan recovery.

Ringkasan restore dari offline backup:

1. SQL> shutdown immediate

2. Lakukan restore semua file-file yang bersangkutan

3. SQL> startup

Sedangkan untuk restore dan recovery dari online backup adalah sbb:

1. SQL> shutdown immediate

2. Lakukan restore semua file-file yang bersangkutan Restore juga archived lognya

3. SQL> startup mount

4. SQL> recover database using BACKUP CONTROLFILE;Nanti akan diminta memasukkan archive log. Bila archived log sudah di-restore ke lokasinya, pilih AUTO. Setelah semua archived log di-apply, dan database masih minta archived log lagi, pilih CANCEL.

5. SQL> alter database open resetlogs;

Catatan-catatan:

1. Bila file-file (data, control, dan log file) direstore ke tempat yang berbeda dari aslinya, lakukan step-step untuk mengubah konfigurasi file-file tersebut seperti yang sudah di bahas di “Restore dari offline backup”.

2. Ingat, control file yang digunakan untuk menaikkan restored database adalah control file hasil dari “alter database backup controlfile to ‘/backupdir/backupcontrol_22042008.bak’;”

Oracle Database Online Backup

Beberapa keuntungan metode online backup adalah :

  1. Waktu backup, database tidak perlu dimatikan sehingga tidak ada downtime
  2. Bisa melakukan backup per tablespace, bahkan per datafile
  3. Bisa merestore data sampai terakhir sebelum masalah. Bahkan bisa merestore data sampai waktu yang ditentukan. Berbeda dengan restore hasil offline backup di mana yang bisa direstore hanya data terakhir melakukan backup saja.

Seperti yang sudah pernah dibahas, syarat online backup adalah database harus dalam mode archivelog..

Berikut ini step-step online backup.

  1. Backup control file

SQL> alter database backup controlfile to '/backupdir/backupcontrol_22042008.bak';

  1. Lihat Tablespace yang berisi data

SQL> select TABLESPACE_NAME from dba_tablespaces where CONTENTS <>'TEMPORARY';
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
Temporary tablespace tidak perlu dibackup, karena bukan berisi data

  1. Ubah mode tablespace menjadi backup mode

SQL> alter tablespace SYSTEM begin backup;

SQL> alter tablespace UNDOTBS1 begin backup;

SQL> alter tablespace SYSAUX begin backup;

SQL> alter tablespace USERS begin backup;

  1. Lihat semua datafile yang perlu dibackup (selain file dari temporary tablespace)

SQL> select name from v$datafile;

NAME
---------------------------------------
/oradata/oracle/ts/system01.dbf
/oradata/oracle/ts/undotbs01.dbf
/oradata/oracle/ts/sysaux01.dbf
/oradata/oracle/ts/users01.dbf

  1. Backup datafile

$ cp /oradata/oracle/ts/system01.dbf /backupdir/...

$ cp /oradata/oracle/ts/undotbs01.dbf /backupdir/..

$ cp /oradata/oracle/ts/sysaux01.dbf /backupdir/...

$ cp /oradata/oracle/ts/users01.dbf /backupdir/..

  1. Ubah mode database kembali ke normal

SQL> alter tablespace SYSTEM end backup;

SQL> alter tablespace UNDOTBS1 end backup;

SQL> alter tablespace SYSAUX end backup;

SQL> alter tablespace USERS end backup;

  1. Archive current log

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

  1. Jangan lupa, backup juga archived log-nya. Archived log ini nanti kita butuhkan untuk recovery. Archive log yang masih dipakai adalah archived log sejak terakhir online (hot) backup. Archive log sebelum hot backup sudah tidak dipakai lagi.

Kesimpulannya, yang dibackup adalah:

1. Control file

2. Datafile

3. Archived log file