Online backup database Oracle
Beberapa waktu yang lalu saya telah menulis tentang off line backup database Oracle di sini http://rohmad.net/2008/04/18/off-line-backup-database-oracle/. Kali ini saya akan membahas tentang online backup. Beberapa keuntungan metode online backup adalah :
- Waktu backup, database tidak perlu dimatikan sehingga tidak ada downtime
- Bisa melakukan backup per tablespace, bahkan per datafile
- 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. Untuk melihat atau men-setting mode database apakah archivelog atau noarchivelog, lihat artikel di sini
http://rohmad.net/2008/04/22/men-setting-database-menjadi-archivelog-mode/.
Berikut ini step-step online backup.
- Backup control file
SQL> alter database backup controlfile to
'/backupdir/backupcontrol_22042008.bak'; - 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 - 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; - 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 - 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/.. - 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; - Archive current log
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; - 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:
- Control file
- Datafile
- Archived log file

April 22nd, 2008 at 6:48 am
Tutorial yang simple tetapi sangat mengena khususnya bagi saya yang masih baru didalam administrasi database Oracle. Pertanyaan saya:
1. online backup itu dilakukan tiap kapan ya pak..?. Tiap hari, tiap minggu, atau tiap bulan..?.
2. Kalau dilihat diatas, tidak ada setting waktu online backup itu jalan ataukah ketika perintah diatas dijalankan merupakan online backup..?.
3. Bagaimana bila online backup tersebut mau diset scheduler setiap hari..?. Mungkin istilahnya lebih kearah incremental backup (yang dilakukan backup hanya perubahannya saja)…CMIIW.
Mohon pencerahannya,
Thx/izzudin
April 22nd, 2008 at 10:43 am
1. Online backup bisa dilakukan kapan saja, tergantung besarnya data. Sebagai contoh, database dengan growth perhari 2G, kita bisa membackup perminggu. Nah, archived log khan terus tumbuh; ini kita backup per hari.
2. Filosofi backup adalah membackup (meng-copy) database (datafile). Filosofi online backup adalah datafile tsb bisa dibackup selagi database masih up. Online backup ini ditandai oleh command “alter tablespace TABLESPACENAME begin backup”.
3. Archived log itu bisa dipandang sebagai increment data. Archived log yang dibutuhkan adalah archived log sejak [full] online backup dijalankan. Archived log sebelum itu sudah tidak dipakai lagi.
Jadi, seminggu sekali kita [full] online backup, dan tiap harinya kita simpan archived log-nya. Sekali lagi, archived log bisa dipandang sebagai increment data (delta)
May 2nd, 2008 at 7:19 am
Pak rohmat, ini kan tutorial backupnya. kalau untuk merestore nya bagaimana pak? mungkin perlu di buatkan artikel nya lagi mengenai restore online backup dan restore offline backup.
May 16th, 2008 at 1:25 am
salam kenal pak Rohmad…
dan saya juga juga merasakan nya :)…Selama saya mencari artikel maupun tutorial mengenai basic Oracle administrator mungkin website pak Rohmad yang amat mudah di pahami…
artikel anda amat simple dan mudah untuk dipahami sperti pak izzudin ktakan pada komentar di atas
he..he…
June 2nd, 2008 at 8:16 am
Menambahkan pak rohmad:
Seperti penjelasan pak rohmad :
1. …
2. Bisa melakukan backup per tablespace, bahkan per datafile
3. …
Untuk menghindari membengkaknya undo tablespace saat tablespace pada mode backup, beckup dapat dilakukan per tablespace atau per data file.
Caranya untuk langkah nomor 2:
Ubah mode tablespace menjadi backup mode.
Cukup 1 tablespace yang akan segera anda backup kemudian Ubah mode database kembali ke normal untuk tablespace tersebut saja.
Ulangi kembali sampai semua datafile untuk tablespace data non temporary telah terbackup.
Cara di atas cukup menguntungkan jika anda terpaksa melakukan online backup pada saat peak time.
Konsekuensinya, tentunya archive log yang dicreate dari awal backup sampai akhir backup tidak boleh ada yang hilang (jumlah archive log file bisa lebih banyak dibanding jika mengubah ke backup mode langsung semua tablespace).
June 26th, 2008 at 2:08 am
Mas, pada saat melakukan alter pada tablespace,controlfile, dan archive log apakah database dapat diakses dengan normal?
saat meng-copy datafile, apakah tidak mengganggu kinerja oracle?
~newbie~
June 26th, 2008 at 3:51 am
Waktu “alter tablespace NAMATABLESPACE begin backup”, database masih bisa diakses. Selama backup, ya jelas ada resource yang kepakai untuk backup. Keadaan menjadi normal setelah backup selesai dan “alter tablespace NAMATABLESPACE end baclup”.
Seberapa besar pengaruh di performance database? Ya tergantung kapasitas mesin kita. Kadang saya melakukan backup di production siang hari kok. Tapi sebaiknya memang pada waktu laod database rendah (malam).