Akhir akhir ini, saya sedang melakukan riset kecil kecilan mengenai metode backup yang ada di Oracle.
Salah satu yang saya temukan adalah menggunakan RMAN. RMAN atau Recovery Manager adalah tools bawaan Oracle yang berguna untuk membackup dan sekaligus merecovery data yang ada di Oracle. Perbedaannya dengan offline backup biasa yaitu kita tidak perlu menshutdown database sebelum melakukan copy datafile yang ada. Jadi proses full backup dapat dilakukan secara online berikut control filenya.
Berikut adalah cara backup database oracle dengan menggunakan RMAN yang saya sadur dari internet,
RMAN> BACKUP AS BACKUPSET DATABASE PLUS ARCHIVELOG;
1. MELIHAT KONFIGURASI RMAN SAAT INI
Sebelum kita melakukan backup, kita harus melakukan konfigurasi beberapa parameter RMAN, contohnya seberapa lama anda ingin menahan RMAN Backup dll.
Untuk dapat melihat konfigurasi tersebut, lakukan command dibawah untuk connect ke dalam RMAN .(sebelum itu, tentu ada harus sudah membuka sqlplus anda melalui command line) . Setelah anda masuk ke dalam RMAN, anda tinggal menjalankan command - command lain yang diperlukan layaknya command line biasa.
$ rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Sat Aug 10 11:21:29 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: DEVDB (DBID=821773)
RMAN>
Untuk melihat konfigurasi RMAN yang sekarang, jalankan perintah
“show all”.
RMAN> SHOW ALL;
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/backup/rman/ctl_%F";
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 2;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT "/backup/rman/full_%u_%s_%p" MAXPIECESIZE 2048 M;
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES128';
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/dbs/snapcf_devdb.f'; # default
Seperti yang anda lihat, command tersebut menampilkan berbagai RMAN Parameter dan valuenya.
2. MERUBAH BEBERAPA CONFIGURATION PARAMETER RMAN
Location : parameter ini penting untuk menentukan dimana tempat anda menyimpan hasil backup RMAN . Pada contoh dibawah, RMAN dikonfigurasi untuk menyimpan data di folder "/backup/rman/". Untuk system windows, jangan lupa isi direktori secara lengkap mulai dari kode drivenya .. C:, D:, dst.
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%u_%s_%p';
Retention Period: Berikutnya, anda harus menentukan seberapa lama anda menyimpan data hasil RMAN Backup. Ketika RMAN menjalankan backup, RMAN akan secara automatis menghapus seluruh backup file lama yang telah melewati retention period. Pada contoh dibawah, retensi diset 7 hari.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
Lanjutkan dengan verifikasi apakah kedua perubahan diatas telah berhasil.
RMAN> SHOW ALL;
..
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%u_%s_%p';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
..
Clear a Parameter: Jika anda berniat untuk menghapus nilai salah satu parameter dan membiarkan nilainya menjadi default, gunakan CLEAR di akhir konfigurasi seperti contoh dibawah.
RMAN> CONFIGURE RETENTION POLICY CLEAR;
Pada contoh ini, mengingat kita telah menghapus nilai dari retention policy, maka nilai dari parameter tersebut akan kembali menjadi default, yaitu 1.
RMAN> SHOW ALL;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
3. BACKUP ORACLE DATABASE
Pastikan bahwa direktori yang dituliskan di parameter CHANNEL DEVICE TYPE DISK FORMAT sudah ada.. contohnya: /backup/rman/
$ mkdir -p /backup/rman
Saat ini, direktori ini masih kosong, tanpa file apapun. kita akan memeriksa kembali direktori ini setelah proses backup dengan RMAN selesai.
$ ls -l /backup/rman
total 0
Kita dapat menggunakan image copy atau backup set, namun sangat direkomendasikan untuk menggunakan RMAN backup set untuk melakukan backup database.
RMAN menyimpan backup database dalam backup set yang berisi kumpulan file yang formatnya hanya dimengerti oleh RMAN. Sehingga jika anda membackup menggunakan RMAN, maka hanya RMAN yang mengetahui bagaimana cara backup dan merestore menggunakan file tersebut.
Biasanya, kita menggunakan command “BACKUP AS BACKUPSET” untuk membackup database. Jadi untuk melakukan full backup database tanpa membackup archive log, lakukan hal berikut
RMAN> BACKUP AS BACKUPSET DATABASE
Untuk melakukan full backup dengan archive logs, lakukan hal dibawah
RMAN> BACKUP AS BACKUPSET DATABASE PLUS ARCHIVELOG;
Anda juga dapat melakukan backup untuk satu tablespace spesifik. Contoh dibawah menunjukkan cara backup table space PRD01 .
RMAN> BACKUP AS BACKUPSET TABLESPACE PRD01;
RMAN backup akan mengeluarkan output seperti dibawah .
RMAN> BACKUP AS BACKUPSET DATABASE
Starting backup at 10-AUG-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=193 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=192 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00025 name=/u03/oradata/devdb/devuser07.dbf
input datafile fno=00003 name=/u02/oradata/devdb/temp01.dbf
channel ORA_DISK_1: starting piece 1 at 10-AUG-13
channel ORA_DISK_2: starting full datafile backupset
channel ORA_DISK_2: specifying datafile(s) in backupset
input datafile fno=00008 name=/u03/oradata/devdb/devusers05.dbf
channel ORA_DISK_2: starting piece 1 at 10-AUG-13
...
..
piece handle=/backup/rman/full_4dogpd0u_4237_1 tag=TAG20130808T114846 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 10-AUG-13
...
Starting Control File and SPFILE Autobackup at 10-AUG-13
piece handle=/backup/rman/ctl_c-758818131-20130808-00 comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-13
Setelah backup selesai, coba buka folder /backup/rman directory, Saat ini anda akan melihat RMAN backup files.
$ ls -l /backup/rman
total 14588
-rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00
-rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1
Mengingat RMAN backup adalah hot backup, maka oracle database tetap dapat up dan running ketika kita melakukan backup menggunakan RMAN. Pastikan oracle anda running sebelum menjalankan perintah perintah diatas.
4. MENAMBAHKAN BACKUP TAG NAME UNTUK IDENTIFIKASI RMAN BACKUP FILE
Jika anda menggunakan backup yang sangat banyak, akan sangat mudah jika anda menambahkan tag / nama tertentu ke backup tertentu yang nantinya akan digunakan ketika Oracle recovery (atau ketika kita menggunakan command list untuk melihatnya).
Contoh dibawah digunakan untuk menambahkan backup tag “WEEEKLY_PRD01_TBLS_BK_ONLY” untuk backup kali ini.
RMAN> BACKUP AS BACKUPSET TAG 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01;
Starting backup at 10-AUG-13
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00002 name=/u03/oradata/devdb/PRD01_1.dbf
channel ORA_DISK_1: starting piece 1 at 10-AUG-13
channel ORA_DISK_1: finished piece 1 at 10-AUG-13
piece handle=/backup/rman/full_4fogpdb3_4239_1 tag=WEEEKLY_PRD01_TBLS_BK_ONLY comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-AUG-13
Starting Control File and SPFILE Autobackup at 10-AUG-13
piece handle=/backup/rman/ctl_c-758818131-20130808-01 comment=NONE
Finished Control File and SPFILE Autobackup at 10-AUG-13
Setelah proses backup selesai, jika anda melihat file-file tersebut di direktori RMAN, anda tidak akan melihat TAG Name yang baru saja anda buat. TAG name hanya dapat digunakan dari RMAN repositori untuk melihat dan merestore backup. Saat ini kita melihat ada beberapa file backup, mengingat backup telah dilakukan pula sebelumnya.
$ ls -l /backup/rman/
total 29176
-rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00
-rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01
-rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1
-rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1
5. MERUBAH ORACLE RMAN BACKUP FILE NAME
Jika anda menginginkan backup file memiliki nama yang spesifik sesuai dengan kebutuhan anda, anda perlu merubah format nya dengan cara merubah parameter configuration seperti contoh dibawah. Pada kasus ini, kita menambahkan prefix “full_devdb_bk_” disetiap backup file.
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT "/backup/rman/full_devdb_bk_%u_%s_%p" MAXPIECESIZE 2048 M;
Sekarang, mari kita coba melakukan backup kembali dengan menggunakan konfigurasi yang sudah dimodifikasi sebelumnya
RMAN> BACKUP AS BACKUPSET TAG 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01;
Jika kita lihat di direktori tempat kita menyimpan file backup RMAN, terlihat bahwa muncul file file backup baru dengan prefix sesuai dengan yang telah kita konfigurasi diatas. yaitu full_deb_db_bk*
$ ls -l /backup/rman/
total 43764
-rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00
-rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01
-rw-r----- 1 oracle dba 14585856 Aug 8 11:56 ctl_c-758818131-20130808-02
-rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1
-rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1
-rw-r----- 1 oracle dba 327680 Aug 8 11:55 full_devdb_bk_4hogpdef_4241_1
6. KOMPRESI RMAN BACKUP
Jika anda melakukan backup sebuah database yang sangat besar, anda akan menyadari bahwa backup file RMAN yang dibuat akan berukuran sangat besar, mendekati ukuran database itu sendiri.
Untuk kasus ini, anda perlu melakukan kompresi dari database, namun perlu diingat bahwa kompresi membutuhkan waktu, termasuk dekompresinya. sehingga jika anda memerlukan waktu yang cepat untuk melakukan recovery, opsi ini harus anda perhitungkan ulang.
Berikut adalah contoh melakukan backup dan kompresi tablespace PRD01.
RMAN> BACKUP AS COMPRESSED BACKUPSET TAG 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01;
Ketika anda melihat backup file dari sistem level, anda tidak akan melihat file *.gz (atau *.zip, tau sejenisnya) untuk menunjukkan bahwa RMAN telah melakukan backup yang dikompresi. FIle naming akan tetap mengikuti rule non-kompresi backup.
$ ls -l /backup/rman/
total 58352
-rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00
-rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01
-rw-r----- 1 oracle dba 14585856 Aug 8 11:56 ctl_c-758818131-20130808-02
-rw-r----- 1 oracle dba 14585856 Aug 8 11:59 ctl_c-758818131-20130808-03
-rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1
-rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1
-rw-r----- 1 oracle dba 327680 Aug 8 11:55 full_devdb_bk_4hogpdef_4241_1
-rw-r----- 1 oracle dba 127680 Aug 8 11:59 full_devdb_bk_4jogpdl0_4243_1
Note: Untuk membedakan mana backup yang menggunakan kompresi dan mana yang tidak yaitu dengan melihat file sizenya atau dengan menggunakan command "list" di RMAN yang akan dibahas di bawah.
7. MELIHAT SELURUH RMAN BACKUP
Untuk melihat seluruh file backup RMAN, gunakan preintah "list backup summary" seperti yang dicontohkan dibawah.
RMAN> LIST BACKUP SUMMARY;
using target database control file instead of recovery catalog
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
..
4215 B F A DISK 10-AUG-13 1 1 NO TAG20130808T114846
4216 B F A DISK 10-AUG-13 1 1 NO TAG20130808T114849
4217 B F A DISK 10-AUG-13 1 1 NO WEEEKLY_PRD01_TBLS_BK_ONLY
4218 B F A DISK 10-AUG-13 1 1 NO TAG20130808T115413
4219 B F A DISK 10-AUG-13 1 1 NO WEEEKLY_PRD01_TBLS_BK_ONLY
4220 B F A DISK 10-AUG-13 1 1 NO TAG20130808T115600
4221 B F A DISK 10-AUG-13 1 1 YES WEEEKLY_PRD01_TBLS_BK_ONLY
Seperti yang anda lihat diatas, perintah diatas menampilkan informasi yang bervariasi tentang backup. Command tersebut di atas menampilkan 7 backup RMAN. Kolom terakhir menampilkan tag yang telah kita spesifikasi sebelumnya ketika kita melakukan backup. Jika kita tidak menentukan TAG apapun, RMAN akan membuat default tag dengan prefix TAG diikuti dengan angka tertentu. Anda juga dapat melihat, di bawah kolom "Compressed", Backup RMAN terakhir menuliskan "YES" yang artinya dari 7 Backup RMAN, hanya 1 file terakhir yang terkompresi.
Selain itu, jika backup RMAN sedang berjalan, dan anda ingin melihat status prosesnya, anda dapat menjalankan query select from V$RMAN_STATUS table dari sqlplus seperti contoh dibawah.
SQL> SELECT OPERATION, STATUS, MBYTES_PROCESSED, START_TIME, END_TIME from V$RMAN_STATUS;
OPERATION STATUS MBYTES_PROCESSED START_TIM END_TIME
--------------------------------- ----------------------- ---------------- --------- ---------
CONTROL FILE AND SPFILE AUTOBACK COMPLETED 14 07-NOV-12 07-NOV-12
RMAN COMPLETED 0 07-NOV-12 07-NOV-12
RESTORE VALIDATE COMPLETED 0 07-NOV-12 07-NOV-12
RMAN COMPLETED WITH ERRORS 0 07-NOV-12 07-NOV-12
DELETE COMPLETED 0 08-NOV-12 08-NOV-12
BACKUP COMPLETED 0 10-AUG-13 10-AUG-13
CONTROL FILE AND SPFILE AUTOBACK COMPLETED 14 10-AUG-13 10-AUG-13
RMAN COMPLETED WITH ERRORS 1832 10-AUG-13 10-AUG-13
RMAN COMPLETED 0 10-AUG-13 10-AUG-13
...
Viola, RMAN telah selesai dilakukan, anda dapat melanjutkan hidup dengan tenang setelah mempelajari ini.