RMAN yedek alma, silme, raporlama, listeleme, sıkıştırma, şifreleme, doğrulama, crosschek kontrol gibi hızlı erişim amaçlı oluşturmuş olduğum teknik referans dökümanımı sizlerle paylaşmak istiyorum. Bu dökümanı ara ara güncelliyor olacağım. RMAN komutlarını sınıflandırarak genel başlıklar altında toparlamaya çalıştım. Faydalı olması dileğiyle.
Yedek raporlama işlemleri
Backup gerekiyor mu raporu:
1 |
RMAN>report need backup; |
Obsolete backup raporu:
Yedek alma işlemleri
Tüm veritabanının varsayılan konfigürasyona göre yedeğini almak:
3 |
RMAN> backup incremental level 0 database ; |
Tüm veritabanının arşiv loglar ile birlikte yedeğini almak:
1 |
RMAN>backup database plus archivelog; |
Controlfile yedeğini almak:
1 |
RMAN>backup as copy current controlfıle; |
Tüm veritabanının arşiv loglar ile birlikte yedeğini almak ve yedeği alınan arşiv logları silmek:
1 |
RMAN>backup database plus archivelog delete input; |
Belirli bir tablespace i yedek almak:
1 |
RMAN>backup as backupset |
2 |
format '/backup/df_%d_%s.bck' |
Belirli bir veri dosyasını yedek almak:
1 |
RMAN>backup datafile 5; |
Hergün değişen blokları yedeklemek (Differential Incremental Backup):
1 |
RMAN> backup incremental level 1 database ; |
Son full yedekten sonra tüm blokları yedeklemek (Cumulative Incremental Backup):
1 |
RMAN>backup incremental level 1 cumulative database ; |
Image Copy yedek almak:
1 |
RMAN>backup as copy database ; |
Yedek silme işlemleri
Backup sıra nosuna göre silme:
1 |
RMAN> delete backuppiece 101; |
Dosya adına göre silme:
1 |
RMAN> DELETE CONTROLFILECOPY '/tmp/control01.ctl' ; |
Arşiv dosyalarını silme:
1 |
RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300; |
2 |
RMAN> DELETE NOPROMPT ARCHIVELOG ALL ; |
Not:NOPROMPT, yedek silme esnasında Yes/No onay sorusunu sormaz.
Tag verilen yedeği tag adına göre silme:
1 |
RMAN> DELETE BACKUP TAG= 'before_upgrade' ; |
Bütün yedekleri silme:
Tape kasete yedeği alınmış yedeklerin disk üzerinden silinmesi:
1 |
RMAN> DELETE ARCHIVELOG ALL BACKED UP 3 TIMES TO sbt; |
Image copy yedeği silme:
Obsolete yedek silme
RMAN kurtarma işlemi için gerekli olmayan yedekleri obsolete olarak işaretler. (redundancy veya recovery window set edilmiş ise)
Obsolete yedekleri silmek için:
3 gün öncesi obsolete yedekleri silmek için:
1 |
RMAN> delete obsolete recovery window of 3 days; |
Expired yedek silme
1 |
RMAN> delete expired backup; |
Crosscheck kontrolü
Crosscheck komutu, RMAN repository de bulunan yedeğin disk veya tape üzerinde fiziksel olup olmadığını kontrol eder. Eğer dosya disk veya tape üzerinde fiziksel olarak yoksa (işletim sistemi üzerinden silinmiş olabilir) RMAN repository de ilgili yedeği “EXPIRED” olarak işaretler. Sonrasında, “DELETE EXPIRED” komutuyla RMAN repository den yedek bilgileri silinebilir.
Arşiv dosyaları crosscheck ile kontrol etme:
1 |
RMAN>crosscheck archivelog all ; |
Alınan bütün yedeği crosscheck ile kontrol etme:
1 |
RMAN>crosscheck backup; |
Image copy yedeği crosscheck ile kontrol etme:
Tag verilen yedeği crosscheck ile kontrol etme:
1 |
RMAN>crosscheck backuppiece tag = 'nightly_backup' ; |
Yedek listesini görmek
1 |
RMAN>list backupset of database ; |
RMAN>list backup;
Yedek önizlemesini görmek (İçerisinde hangi objeler olduğu listelenir):
1 |
RMAN> restore database preview; |
3 |
RMAN> restore tablespace users preview; |
Konfigürasyon işlemleri
Konfigürasyon ayarlarını görmek:
Varsayılan konfigürasyona dönmek:Sonuna “clear” ifadesi yazılır
1 |
RMAN>configure backup optimization clear; |
Set edilmiş bir konfigürasyonu görmek:Başına “show” ifadesi yazılır
1 |
RMAN>show controlfile autobackup format; |
Bir ayarı konfigüre etmek:Başına “configure” ifadesi yazılır
1 |
RMAN>configure device type disk backup type to copy; |
3 |
RMAN>configure retention policy to recovery window of 7 days; |
5 |
RMAN>configure retention policy to redundancy 3; |
Yedek ve Geri Dönme işlemlerini doğrulama (validate)
Alınan tüm yedeği doğrulamak:
Arşiv dosyaların yedeğini doğrulamak:
1 |
RMAN>backup validate database archivelog all ; |
Tüm veritabanı geri dönme işlemini doğrulama:
1 |
RMAN>restore database validate; |
Controlfile geri dönme işlemini doğrulama:
1 |
RMAN>restore controlfile validate; |
Spfile geri dönme işlemini doğrulama:
1 |
RMAN>restore spfile validate; |
Belirli bir tablespace geri dönme işlemini doğrulama:
1 |
RMAN>restore tablespace users validate; |
Yedek sıkıştırma işlemleri (11g ile geldi)
Backupseti sıkıştırma:
1 |
RMAN>backup as compressed backupset database ; |
Yedek şifreleme işlemleri
Encryption set etme:
1 |
RMAN> Set encryption identified by passwprd; |
Decryption set etme:
1 |
RMAN> Set decryption identified by passwprd; |
Enable & Disable Block change tracking
Sadece değişen blokları takip etmek için bct aktif edilmesi:
1 |
SQL> alter database enable block change tracking using file '/rman_bkups/change.log' ; |
Block change tracking iptal edilmesi:
1 |
SQL> alter database disable block change tracking; |
RMAn yedeğin debug edilmesi ve trace alınması
1 |
$rman target=/ debug= all trace=rman.trc |
Yedeğin Log dosyasını oluşturmak
1 |
$export NLS_DATE_FORMAT=’dd.mm.yyyy hh24:mi:ss’; |
3 |
$rman target=/ log=rman.log |
Recovery area size bilgisini görmek
2 |
, floor(space_limit / 1024 / 1024) "Size MB" |
3 |
, ceil(space_used / 1024 / 1024) "Used MB" |
4 |
from v$recovery_file_dest |
RMAN Catalog DB işlemleri
- Catalog DB üzerinde kullanıcı oluşturulur.
1 |
CREATE USER rman IDENTIFIED BY rman |
2 |
TEMPORARY TABLESPACE temp |
3 |
DEFAULT TABLESPACE users |
4 |
QUOTA UNLIMITED ON users; |
- Recovery Catalog owner yetkisi verilir
1 |
GRANT RECOVERY_CATALOG_OWNER TO rman; |
- Catalog veritabanına bağlanılıp catalog oluşturulur.
1 |
rman CATALOG rman/rman@catalog |
RMAN> create catalog;
- Yedeği alınacak target veritabanı register edilir.
1 |
rman TARGET sys/oracle@test10g CATALOG rman/rman@catolog |
3 |
RMAN> register database ; |
RMAN de kanal açma ve objeleri manuel kanallara dağıtma
Örnek script:
03 |
ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS= "ENV=(BACKUP_SERVER=tape_server1)" ; |
04 |
ALLOCATE CHANNEL c2 DEVICE TYPE sbt PARMS= "ENV=(BACKUP_SERVER=tape_server2)" ; |
05 |
ALLOCATE CHANNEL c3 DEVICE TYPE sbt PARMS= "ENV=(BACKUP_SERVER=tape_server3)" ; |
09 |
(DATAFILECOPY '/tmp/system01.dbf' , '/tmp/tools01.dbf' |
11 |
(ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 102 THREAD 1 |