Saturday, October 18, 2014

Backup dan Restore Database Oracle secara Offline

Terdapat dua cara untuk melakukan backup database Oracle, yaitu secara offline dan juga secara online. Untuk melakukan backup secara Offline kita harus mematikan database terlebih dahulu, lalu kemudian membackup datafile yang diinginkan. Dan untuk melakukan backup secara Online dapat kita lakukan tanpa mematikan database, jadi database masih bisa diakses dan digunakan selama proses backup tersebut berlangsung.

Dan dalam artikel ini saya hanya akan membahas bagaimana cara backup database secara offline,
Berikut ini ialah langkah-langkah yang dilakukan untuk backup database secara offline:

1. Melihat daftar file data Oracle (datafile, logfile, dan control file)
        Gunakan query seperti berikut ini untuk melihat semua file
        SQL> select name as file_name from
        (select name from v$tempfile union
        select name from v$datafile union
        select name from v$controlfile union
        select member as name from v$logfile)
        order by file_name;

2. Kemudian matikan database
        SQL> shutdown immediate;

3. Dan backup file-file database (datafile, logfile, dan control file)
        $ cp /oradata/ts/control01.ctl /backup/ts/control01.ctl
        $ cp /oradata/ts/control02.ctl /backup/ts/control02.ctl
        $ cp /oradata/ts/control03.ctl /backup/ts/control03.ctl
        $ cp /oradata/ts/redo04.log /backup/ts/redo04.log
        $ cp /oradata/ts/redo05.log /backup/ts/redo05.log
        $ cp /oradata/ts/redo06.log /backup/ts/redo06.log
        $ cp /oradata/ts/sysaux01.dbf /backup/ts/sysaux01.dbf
        $ cp /oradata/ts/system01.dbf /backup/ts/system01.dbf
        $ cp /oradata/ts/temp01.dbf /backup/ts/temp01.dbf
        $ cp /oradata/ts/undotbs01.dbf /backup/ts/undotbs01.dbf
        $ cp /oradata/ts/users01.dbf /backup/ts/users01.dbf

4. Nyalakan database kembali
        SQL> startup;

Dan sekarang saya akan membahas bagaimana cara Restore dari hasil backup secara offline. Seperti yang dijelaskan sebelumnya, dan caranya sangat sederhana, sesederhana backup-nya. Berikut ini adalah langkah-langkah restore dengan memakai instance yang sama.

1. Siapkan file-file yang akan direstore terlebih dahulu
        File-file tersebut ialah control, log, data, dan temp file

2. Lalu pastikan instance sudah dimatikan
        SQL> shutdown immediate;
3. Restore file-file backup ke directory asalnya

        $ cp /backup/ts/control01.ctl /oradata/ts/control01.ctl
        $ cp /backup/ts/control02.ctl /oradata/ts/control02.ctl
        $ cp /backup/ts/control03.ctl /oradata/ts/control03.ctl
        $ cp /backup/ts/redo04.log /oradata/ts/redo04.log
        $ cp /backup/ts/redo05.log /oradata/ts/redo05.log
        $ cp /backup/ts/redo06.log /oradata/ts/redo06.log
        $ cp /backup/ts/sysaux01.dbf /oradata/ts/sysaux01.dbf
        $ cp /backup/ts/system01.dbf /oradata/ts/system01.dbf
        $ cp /backup/ts/temp01.dbf /oradata/ts/temp01.dbf
        $ cp /backup/ts/undotbs01.dbf /oradata/ts/undotbs01.dbf
        $ cp /backup/ts/users01.dbf /oradata/ts/users01.dbf

4. Dan nyalakan database
        SQL> startup;

Apabila terjadi suatu hal yang membuat kita tidak bisa merestore ke direktori asalnya, maka kita dapat melakukan restore ke tempat atau direktori lain. Langkah pertama dan kedua masih dilakukan seperti langkah di atas lalu langkah ketiga dan seterusnya adalah seperti berikut ini:

3. Restore file data ke direktori baru
        > Control file
        $ cp /backup/ts/control01.ctl /newdir/ts/control01.ctl
        $ cp /backup/ts/control02.ctl /newdir/ts/control02.ctl
        $ cp /backup/ts/control03.ctl /newdir/ts/control03.ctl
        > Log file
        $ cp /backup/ts/redo04.log /newdir/ts/redo04.log
        $ cp /backup/ts/redo05.log /newdir/ts/redo05.log
        $ cp /backup/ts/redo06.log /newdir/ts/redo06.log
        > Data file
        $ cp /backup/ts/sysaux01.dbf /newdir/ts/sysaux01.dbf
        $ cp /backup/ts/system01.dbf /newdir/ts/system01.dbf
        $ cp /backup/ts/undotbs01.dbf /newdir/ts/undotbs01.dbf
        $ cp /backup/ts/users01.dbf /newdir/ts/users01.dbf
        > Temp file
        $ cp /backup/ts/temp01.dbf /newdir/ts/temp01.dbf

4. Ubah konfigurasi control file. Edit init (instance parameter) file
        Filenya di $ORACLE_HOME/dbs/init[NAMAINSTANCE].ora
        kemudian ganti lokasi control file dari yang lama ke lokasi yang baru.

        Value yang lama:
        control_files='/oradata/ts/control01.ctl','/oradata/ts/control02.ctl','/oradata/ts/control03.ctl'
        Value yang baru:
        control_files='/newdir/ts/control01.ctl','/newdir/ts/control02.ctl','/newdir/ts/control03.ctl'

5. Ubah konfigurasi file log, data, dan temp file
        SQL> startup mount
        SQL> alter database rename file '/oradata/ts/redo04.log' to '/newdir/ts/redo04.log';
        SQL> alter database rename file '/oradata/ts/sysaux01.dbf' to '/newdir/ts/sysaux01.dbf';
        SQL> alter database rename file '/oradata/ts/temp01.dbf' to '/newdir/ts/temp01.dbf';
        dan begitu seterusnya

6. Lalu buka database kembali
        SQL> alter database open;

Sekian dari artikel saya, semoga bisa menjadi bahan pembelajaran yang baik dan bermanfaat untuk teman-teman yang telah meluangkan waktu untuk membaca artikel saya ucapkan terima kasih

No comments:

Post a Comment