Anasayfa » RMAN Nedir ve Nasıl Yedek Alınır
RMAN Nedir ve Nasıl Yedek Alınır
RMAN’i tanımlamadan önce yedek nedir sorusunun cevabına bakalım. Yedeğin sözlükteki tanımı, herhangi bir şeyin gerektiğinde yararlanmak ve kullanmak üzere bulundurulan eşi, olarak geçmektedir. Veri tabanındaki karşılığı da aynı bu şekildedir. Veri tabanında yer alan veri dosyalarının, kontrol dosyalarının ve diğer nesnelerinin eşini bulundurmak, yedeğini almaya karşılık gelmektedir.
Oracle’da yedekler temelde ikiye ayrılmıştır. Bunlar Fiziksel Yedek ve Mantıksal Yedek‘tir.
Fiziksel Yedek, veri tabanında yer alan veri dosyaları, kontrol dosyaları vb. dosyaların RMAN gibi araçlarla kopyalanması işlemidir.
Mantıksal Yedek ise, yardımcı bir araç kullanarak (Expdp gibi) verileri okumak için SQL sorguları kullanan ve bunları ikili(binary) bir dosyaya kaydeden yedekleme türüdür. Bu açıklamadan sonra RMAN’e geçebiliriz.
RMAN(Recovery Manager)
Oracle veri tabanları ile birlikte gelen bir yedek alma ve yedekten dönme aracıdır. RMAN ile Cold Backup, Hot(Online) Backup, Incremental Backup ve Full Backup alınabilir. Bunlara ek olarak, Control File, Spfile, Arşiv logları alabildiğimiz gibi, bütün bu işlemleri RMAN ile otomatik hale getirebiliriz.
RMAN ile yedek alabilmek için veri tabanının ARCHIVELOG modunda olması gerekmektedir. Veri tabanının ARCHIVELOG’a nasıl alınacağına
https://gokhanata.com/2021/07/veri-tabanini-arsiv-moda-alma/
yazımdan bakabilirsiniz.
RMAN’nin bu avantajları yanında önemli bir dezavantajı da vardır. RMAN ile alınan yedekler yalnızca aynı veri tabanında RMAN ile restore/recover edilebilir.
RMAN ile yedek alma işlemlerine bakmadan önce yedek türlerine göz atalım.
Cold Backup: Cold Backup, veri tabanını kapatıp verilerin bir kopyasını oluşturma işlemidir. RMAN ile Cold Backup alabilmek için veri tabanını mount moda çekmemiz gerekmektedir.
Hot(Online Backup): Hot Backup, veri tabanı çalışmaya devam ederken ve kullanıcılar canlı sistemde işlemlerini gerçekleştirebilirken alınan bir yedek türüdür. Hot Backup alınırken kullanıcılar verilere erişim sağlayıp işlem yapabildiği için yedek alma işlemi tamamlandıktan sonra recover işlemini gerçekleştirmek gerekir.
Incremental Backup: Artırımlı yedekleme olarak bilinir. Incremental backup alınırken, veri tabanında değişen tüm veriler önceki yedek üzerine eklenir. Böylece veri tabanında yedek alma süresi önemli ölçüde azaltmış oluruz.
Full Backup: Veri tabanında yer alan tüm dosyaların yedeklenmesidir. Normal Backup olarak da bilinir.
Rman ile Yedek Alma
$ rman target /
–RMAN aracına bağlanıyoruz.
RMAN> shutdown immediate
–Veri tabanını kapatıyoruz.
RMAN> startup mount
–Veri tabanını mount modda başlatıyoruz.
RMAN> backup database;
–Yedek alma işlemine başlıyoruz.

Burada herhangi bir dosya yolu belirtmediğimiz için Oracle’ın varsayılan backup dizini olan
/u01/app/oracle/fast_recovery_area/oradev/ORADEV/backupset
Control File ve Spfile’ı ise
/u01/app/oracle/fast_recovery_area/oradev/ORADEV/autobackup/
klasörüne kaydeder.
Ayrıca backup database diyerek yalnızca Data File, Control File ve Spfile’ın yedeğini almış olduk. Bu saydığımız dosyalara ek olarak arşiv log dosyalarını almak istiyorsak aşağıdaki komutu kullanabiliriz.
RMAN> backup database plus archivelog;
Aldığımız yedeği istediğimiz dizine kaydetmek için;
RMAN> backup database format '/home/oracle/RMAN_BACKUP/%d_%t_%s.rman';
/home/oracle/RMAN_BACKUP/ klasörü altına (%d Veri tabanı adı, %t Yedek zamanı, %s Yedek numarası) adıyla kaydeder.
Yedek aldıktan sonra arşiv log dosyalarını silmek istersek;
RMAN> backup database plus archivelog delete input;
Tablespace yedeklemek istersek; (users ve system tablespace’inin yedeğini alalım.)
RMAN> backup tablespace users, system;
Arşiv dosyalarını yedeklemek istiyorsak;
RMAN> backup archivelog all;
Son 3 günlük arşiv log dosyalarını yedeklemek istiyorsak;
RMAN> backup archivelog from time='SYSDATE-3';
Daha gelişmiş yedek almak için;
RMAN> backup database format '/home/oracle/RMAN_BACKUP/dbf_%d_%t_%s.rman' TAG='DBF_ATA_20210816_1350'
Yedeği sıkıştırarak almak için;
RMAN> backup as compressed backupset database format '/home/oracle/RMAN_BACKUP/dbf_%d_%t_%s.rman' tag='DBF_ORADEV_20210816_1350'
Yedeği sıkıştırarak ve arşiv log dosyalarını ekleyerek istediğimiz yere almak için;
RMAN> backup as compressed backupset database format '/home/oracle/RMAN_BACKUP/dbf_%d_%t_%s.rman' tag='dbf_%d_%t_%s_20210816_1440' plus archivelog format '/home/oracle/RMAN_BACKUP/arc_%d_%t_%s.rman' tag='arc_%d_%t_%s_20210816_1440';
RMAN ile full backup almak için;
RMAN> backup incremental level=0 database;
RMAN ile incremental backup almak için;
RMAN> backup incremental level=1 database;
Otomatik olarak Control File yedeğini almak için;
RMAN>
configure controlfile autobackup on;
Manuel olarak Control File yedeğini almak için;
RMAN>
backup current controlfile;
Alınan yedeklerin özeti;
RMAN>
list backup summary;
Alınan yedeklerin hangi dosyaları içerdiğine
RMAN>
list backup by file;
komutuyla bakabiliriz.