Skip to content

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 :

  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. 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.

  1. Backup control file
    SQL> alter database backup controlfile to
    '/backupdir/backupcontrol_22042008.bak';
  2. 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
  3. 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;
  4. 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
  5. 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/..
  6. 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;
  7. Archive current log
    SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
  8. 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


Silahkan baca yang berikut ini juga :

22 Comments

  1. 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

    Posted on 22-Apr-08 at 6:48 am | Permalink
  2. rohmadne

    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)

    Posted on 22-Apr-08 at 10:43 am | Permalink
  3. Devor

    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.

    Posted on 02-May-08 at 7:19 am | Permalink
  4. antok

    salam kenal pak Rohmad…
    artikel anda amat simple dan mudah untuk dipahami sperti pak izzudin ktakan pada komentar di atas :) 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…
    he..he…

    Posted on 16-May-08 at 1:25 am | Permalink
  5. Bukhari Yahya

    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).

    Posted on 02-Jun-08 at 8:16 am | Permalink
  6. Sigit

    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~

    Posted on 26-Jun-08 at 2:08 am | Permalink
  7. rohmadne

    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).

    Posted on 26-Jun-08 at 3:51 am | Permalink
  8. andhika

    mas, saya coba langkah no 2 kok gak mau ya? saya pake oracle8 di win2000 dan langkah no 5 ini proses linux ya? kok kayak perintah copy lewat terminal. saya juga gak menemukan *.dbf
    mohon bantuannya.

    Posted on 21-Aug-08 at 7:30 am | Permalink
  9. rohmadne

    Langkah dua dilakukan di SQLPlus prompt. Langkah 5 adalah copy file dari OS, contoh saya ini ada di Unix (solaris, Linix, dll).

    Untuk menentukan file-file yang perlu dibackup, gunakan query di SQLPLus prompt:
    SQL> select name from v$datafile;

    Datafile bisa berformat apa saja (bukan cuma *.dbf). Kalau anda tidak menemukan file *.dbf, artinya format file anda memang bukan *.dbf.

    Posted on 21-Aug-08 at 8:30 am | Permalink
  10. kirain backup dari browser :)

    Ada gak ya tool bwat backup Oracle 8.1.7 dari browser?

    Posted on 01-Sep-08 at 5:49 am | Permalink
  11. rohmadne

    Bisa, gunakan DB GRID CONTROL. Oracle 8.1.7 bisa dimanage oleh DB GRID CONTROL. Dari DB GRID CONTROL kita bisa melakukan administrasi (termasuk backup) dari browser.

    Posted on 01-Sep-08 at 8:27 am | Permalink
  12. digdo

    Mas, kalau kita mau belajar clustering oracle 10.2 64 bits dengan os linux RHEL 4.3 64 bits juga dimana ya kita belajar mohon masukkannya.

    Mohon pencerahannya,

    digdo

    Posted on 05-Sep-08 at 8:34 am | Permalink
  13. LANGKAH-LANGKAH MERANCANG DATABASE

    Laksanakan langkah-langkah demi langkah, jangan sekaligus menganalisa dan
    merancang semua data dalam spesifikasi.

    1. Mulai dengan minimal, satu tabel, berdasar makna fungsi yang dibutuhkan. Dalam
    contoh kita, makna stok barang adalah quantity on hand untuk setiap barang.
    2. Kembangkan struktur dari tabel ini, dengan makin menyertakan detil spesifikasi.
    Dalam contoh kita, quantity on hand disetiap gudang – maka perlu ditambahkan
    field “gudang”. Demikian juga dengan penambahan kode_barang.
    3. Bila ada duplikat data (data sama di lebih dari satu baris) dan sudah ada wakilnya
    pisahkanlah ditabel lain yang dihubungkan dengan tabel asalnya.
    4. Fungsi berbeda biasanya memerlukan tabel terpisah; dalam contoh kita, fungsi
    “transaksi stok”. Kita perlu tabel untuk menyimpan transaksi. Hubungkan dengan
    tabel utama (umumnya disebut master dalam system batch) agar data terkait
    dikedua tabel sinkron (integritas terjaga)

    Makin besar dan rumit database yang harus kita rancang, teknik praktis ini makin
    lebih terbukti efektivitasnya, dibandingkan dengan menggunakan teknik normalisasi
    secara formal.

    Semoga bermanfaat.

    Salam dari kami :
    KOMUNITAS PELAJAR ILMU KOMPUTER INDONESIA

    Posted on 18-Aug-09 at 10:38 pm | Permalink
  14. Maryadi

    Pak Rohmad, mau nanya nih. Klo mau mem-backup semua procedure,fuction dan package bagaimana caranya ya selain harus copy paste satu per satu?

    Posted on 06-Jan-11 at 1:35 am | Permalink
  15. I was looking through some of your posts on this internet site and I believe this web site is really instructive! Continue putting up.

    Posted on 08-Feb-11 at 2:02 am | Permalink
  16. bagusan mana off sama on backup gan …no reason=hoax

    Posted on 05-Apr-11 at 9:18 am | Permalink
  17. didik prasetyo

    Salam kenal :)

    saya mau tanya klo saya mau koneksi oracle untuk melakuakan backup or restore database dari client dengan menggunakan putty bagaimana yah caranya, maaf masih newbie

    Posted on 07-Oct-11 at 7:02 am | Permalink
  18. Armie

    Salam Kenal Pa rohmad,

    Saya mau tanya punya tidak contoh script yang sudah jadi batchfile untuk backup dan restore database. Maklum baru berani mengotak-atik database yg slama ini hanya Developernya saja.
    terima kasih atas batuannya.

    Posted on 08-Feb-12 at 6:25 am | Permalink
  19. karim

    lam kenal pak rohmat……
    aku mnt script bakup data untuk mengetahuai database yang belum terisi(beluim terekam datanya). so bsa kta tau siapa sja yang belum kedata dilaporan baukapannya. trimaksih…

    Posted on 22-Apr-12 at 3:12 am | Permalink
  20. Daeng Deni Mardaeni

    Salam Kenal Pak Rohmad :)

    Saya baru terjun ke dunia database nih pak, tuorial – tutorial / artikel yang bapak kasih sangat membantu saya sekali, tapi saya punya sedikit masalah nih pak dengan backup dan recovery database, kalo dijalankan lewat sql*plus sudah bisa, saya punya permasalahan nih pak, kalo backup dan recovery database oracle menggunakan PHP caranya gimana pak?

    mohon bantuannya pak, trima kasih…

    Posted on 26-Apr-12 at 1:29 am | Permalink
  21. Eriko

    Salam Kenal Pak Rohmad,

    Mohon info apakah metode online backup ini service ORacle tetap UP ? dan apakah metode ini tetap Up-to-date atau harus di trigger via batch ? dan juga mengapa tidak bisa di lakukan dari SQL Developer ya , hanya bisa via SQL Plus (Console). Mohon pencerahannya. sebelumnya saya ucapkan terima kasih.

    Posted on 01-May-12 at 3:41 am | Permalink
  22. victor

    mas rohmad mau tnya, gmna cara setting agar database saya ketika server mati dia otomatis startup dan shutdown sendiri , sehingga tidak report untuk meng-up kan database, terima kasih

    Posted on 16-May-12 at 9:04 am | Permalink

One Trackback/Pingback

  1. [...] lakukan cold (off line) backup. Karena database ts2 ARCHIVELOG, maka saya bisa melakukan secara hot (on line) backup. Dalam contoh ini saya memakai hotbackup.Lihat list datafile dan tempfile yang perlu di-copy select [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*