Oracle Recovery Manager (RMAN & Recovery Catalog)

Bir bilişim uzmanı herzaman şu sorulara yanıt aramalıdır.

Bir bilişim uzmanı herzaman şu sorulara yanıt aramalıdır.
*Bir sunucuya erişim kesilirse şirket ne kaybeder,(saatte kaç para kaybeder? itibar vs cabası)
*Kaç saatlik kesintiyi tolera edebiliriz
*X sunucusu çökerse ne kadar sürede ayağa kaldırabilirim. (testlerinin sık sık yapılmasında ve sürelerinin yazılmasında fayda var)
*Yedekler alınıyor mu, düzenli olarak kontrol ediliyor mu
*Yedekler çalışır durumda mı periyodik aralıklarla test edilmeli
*RAC1 sunucusu devredışı olursa ne kadar sürede ayağa kaldırabilirim
*Bu sürede RAC2 de çökerse ne yapabilirim
*RACx sunucusunu ne kadar sürede devreye alabilirim.
*Elinizin altında, bir kontrol listesi ve felakat senaryolarına göre, yapılacakların adım adım yazıldığı bir kitapçığınız olsun. Olmaz demeyin önleminizi alın . (Örneğin, çalıştığım firmalardan birinde yangın çıktı yedekleri alıp çıkabildik ya alamasa idik ?! dışarda yedeğimiz yoktu! Gölcük depremi bunun örnekleri ile doludur.)
*Yaptığınız yedeklemeleri kurulumları dökümante edin.Acil bir durum olursa ve size ulaşamazlarsa, dökümanlarınızı okuyarak çözebilirler ve size hayır duasında bulunabilir. Dökümante etmedi iseniz ve size de ulaşılamıyorsa (herşey olabilir)beddua da alabilirsiniz 🙂

Bu yazımızda Oracle’da yedekleme konusunu, diğer bir yazıda da yedekten geri dönme restore/recovery konularını anlatmaya çalışacağım.

Rman (recovery manager)
Oracle veritabanı ile ücretsiz built-in gelen backup/restore aracıdır. Veritabanı açıkken yedek alabilir,son alınan yedekten sonra değişiklik olmuş blokların (incremental) yedeğini alabilir, block bazında recover işlemleri yapabilmeye kadar bir çok özelliği vardır.

Kavramlar
Hedef veritabanı (target database) : yedeği alınacak veye yedekten dönülecek VT anlamına gelir.
Rman Repository : Yedek bilgilerinin (metada) tutulduğu yer.
Recovery Catalog schema : recocery catalog sunucusunda , yedekleme bilgilerini (metada) tutan schema
Rman client : istemci/client makinelerden veritabanı sunucularına bağlanmak için kullanılan komut ortamında çalışan yazılım.
Backup piece : rman yedek dosyalarının işletim sistemi tarafındaki adı
Backupset : mantıksal bir kavramdır bir ve birden fazla backup piece den oluşur.
Image copy : işletim sistmindeki cp/copy ile aynı mantıkdadır. image copy ile datafile controlfile archilog kopyalanabilir . bu yedekleme yöntemi sadece disk ile kullanılabilir.

Rman yedekleme bilgilerini (metadata) 2 lokasyonda tutabilir.
1-controlfile’da
2-recovery catalog’da
Şirketinizde 1-2 tane oracle sunucu varsa controlfile kullanılabilir. Çok sayıda veritabanınız varsa hepsinin yedekleme bilgilerini ayrı ayrı tutmak yerine tek bir yerde yani recovery catalog da tutmak avantajlı olacaktır. Bunun yanında recovery catalog un rman scriptlerini saklayabilmesi ve geçmişe ait tüm yedekleme bilgilerini saklayabilme gibi özellikleri vardır. En faydalı özelliği ise ilgili veritabanında bir kontrol dosyası zarar gördüğünde dahi kullanılabiliyor olmasıdır, recovery catalog yerine controlfile kullanılıyorsa (CONFIGURE CONTROLFILE AUTOBACKUP ON; yapılmaldır.) restore recover işlemleri biraz daha uzayacaktır. restore/recover senaryolarında konu daha iyi anlaşılacaktır.

Not : hedef sunucuların her yedeklenmesinden sonra recovery catalog VT’sinin de yedeklerinin alınması gerekir çünkü recovery catalog un bulunduğu VT’nin önem derecesi artmıştır.

RC sunucusu archive log modda olmalı ve yedeğinin farklı lokasyonlarda kopyalarının bulundurulması gerekir.
retention policy nin 1 den büyük olması tavsiye edilir.
controlfile otomatik yedeğinin aktif edilmesi gerekir.
CONTROL_FILE_RECORD_KEEP_TIME değerine büyük rakamlar verilmeliki üzerine yazılmasın.

Rman ile, VT açık iken (online/hot backup) yedek alabilmek için VT nin archive modda olması gerekir.

Archivelog mod : Bu modda redologlar arşivlenerek saklanır, böylece istenilen zamana dönebiliriz. (örneğin pazar full yedek alındı çarşamba sistem çöktü; önce full yedekten pazar gününe dönülür, pazar gününden çarşambaya da archivelog lardan dönülür.) archivelog moda almak için http://sysdba.org/index.php/oracle-mainmenu-1/nasl-dokuemanlar/50-archive-log-moda-alma linkini takip edebilirsiniz.

Noarchivelog mod : bu modda ise redologlar arşivlenmez. (full yedek aldığınız zamana dönebilirsiniz, full yedekten çökme anına kadarki olan verilere erişilemez)

Mantıksal Yedek (logical backups) : exp/imp, expdp/imdp araçları ile alınan yedek.(OCP sınavlarında mantıksal yedeği sorarlar (9i))
Fiziksel Yedek (physical bakcups) : fiziksel dosyaların (datafile, archivelog, controlfile) yedeklenmesi

Hedef VT ile RC’nin aynı Sunucu/instance olması üretim ortamında önerilmez.

Yedekleme Seviyeleri
-VT’nin tüm dosyaları (datafile controlfile spfile passwordfile) yedeklenebilir.
-tablespace bazında yedekleme yapılabilir (bir tablespace in tüm datafile ları alınabilir)
-archivelog modda iseniz tablespace in tek datafile ını da yedekleyebilirsiniz.

Örnekleri yapacağımız makineler;

A- Makinesi B- Makinesi
Oracle 10G 10.2.0.5 Oracle 10G
RHEL 5,5 Oracle solaris 10
i386 , 1284 RAM
5 disk
Disk 1: OS
2,3,4,5 diskler data ve recovery asm disk gruplarına dahil edilmiştir.

 

Recovery Catalog un oluşturulması
1- tablespace oluşturulacak.
2- kullanıcı oluşturulup haklar verilecek.

Recovery Catalog a kayıt olacak sunucuda yapılacak işlemler
(yedek bilgilerini, catalog server da tutacak oracle sunucu)
test ortamı oldugu için recover catalog sunucu ile yedek bilgileri tutulacak sunucu aynı, ama üretim ortamında oracle, recovery catalog için ayrı bir sunucunun kullanılmasını önermektedir.

Rman e bağlantı

Recovery Manager: Release 10.2.0.5.0 – Production on Thu Jun 16 14:16:59 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1257644776)
ile hedef (target) VT ye bağlanılabilir.
uzaktaki makineye bağlanmak için rman client ile sunucunun uyumlu olması lazım, değilse

target VT’ ye ve catalog a bağalanıyoruz

target VT ye catalog suz bağlanma

parametre dosyasının çalıştırılması(rman komutlarını bir parametre dosyasına yazarak rman ile çağırabilirsiniz)

Hedef VT ye bağlantı, log ve trace ürettirme

Hedef VT ye bağlantı, log ürettirme (APPEND parametresi logların eklenerek devam etmesi anlamına gelir eğer kullanılmazsa üzerine yazar yani her çalıştırmada yeni log oluşturulur.

CAT şemasının tablo ve view larından yedekleme bilgileri sorgulanabilir.
senaryo : orcl veritabanı recovery catalog a baglı değil rman ile yedekler alınmış durumda sonrasında recovery catalog a kayıt edildi ise manuel senkron yapmak gerekebilir.
hedef (target) veri tabanında kullanacağınız BACKUP ve COPY komutları otomatik olarak recovery catalog ile senkron olur, fiziksel değişikliklerde ve fazla miktarda log switch olması durumunda manuel senkron yapılması gerekebilir.
manuel senkron için

Recovery Manager: Release 10.2.0.5.0 – Production on Thu Jun 16 14:21:22 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1257644776)
connected to recovery catalog database


Scripting
rman scriptlerini recovery cataloga ya da text dosyalara kopyalayabilirsiniz. RC kullanılıyorsa RC’den scriptler direk çalıştırılabilir. RC yok ise rman komutuna @/path/rman.txt şeklinde çağırabilirsiniz.)

scriptlerin çalıştırılması

script kontrolü

Scriptin text dosyasına gönderilmesi

Hangi dizinde rmane giriş yaptıysanız oraya oluşturur.

Global scriptler oluşturularak recovery catalog a kayıt edilmiş tüm VT lerde bu scriptler kullanabilirsiniz.

Global scriptlerim içeriğinin görüntülenmesi

Sriptlerin listelenmesi

Scriptlerin silinmesi

rman başlangıcında script çalıştırılması

Kanal’ın (channel) ve kullanılak yedekleme aracının belirtilmesi

Default seçilen cihaz, alınacak yedek için değiştirilebilir.

Yedeklere etiket (tag) verilmesi

Rman yedeklerin kopyasını almak

bu şekilde olabileceği işletim sisteminden yedekleri başka bir lokasyona kopyalayabilir, lazım olduğunda da catalog komutu ile rman e dahil edilebilir. Senaryolarda örneği var.

Var olan bir yedeği başka bir diske/tape kopyalamak

Yedekleme Komutları

Incremental Backup
differential incremental; bir önceki yedekten farkını alır.
incremental level0 = full yedek (backup every used block) (incremental yedegin temeli (Base’i))
Bir haftalık plan

Kendisi ile aynı yada daha düşük nolu yedeklere bakıyor kendinden önce aynı no varsa farkını alıyor. yok ise kendinden düşük noyu bulup farkı alıyor.(and or lover)

pazar full alır
pazartesi, pazar ile değşiklikleri alır
salı, pazartesi ile olan değişiklikleri alır.
çarşamba, kendisi ile aynı düzeyde var mı? yok, kendisinden küçük ne var , pazar günden farkı alır.
Incremental yedeğin faydalarını büyük boyutlu VT lerle çalışmaya başladıkça daha iyi anlaşılacaktır. Mantıken full backuptan sonra alınacak bir günlük incremental yedeğin daha hızlı olması beklenir ama şaşırtacak derecede yavaş gerçekleşir ta ki “block_change_tracking” özelliğini aktif edene kadar.

Örnek Yedekleme modeli 1

Komutlar
ALLOCATE CHANNEL ve SWITCH parametrelerini <>; içinde kullanmak gerekir.

Yedeklerin silinmesi
rman dosyalarının işletim sisteminden silinmesi tavsiye edilmesi, silise de çözümü var lakin siz silmemeye özen gösterin.

ihtiyacınız olmayan yedeklerin silinmesi (retention policy ye göre , ilerde anlatılacak)

Rman yedekleri işletim sistemi tarafından silindi ise crosschek ile kontrol edilir. Bulamadığı yedeği expired olarak işaretler, delete expired ile silenir.

expired olarak işaretlenmiş yedeklerin silinmesi

Zaman zaman karşılaşılabiliyor Rman ile yedekleme scriptleri bazı nedenlerden duruyor kontrol de edilmiyorsa ve archiveloglar dolmaya başlıyor.Diskte yer kalmıyor ve erişim kesiliyor . Sadece lokalden erişim sağlanabiliyor. Bu durumda ; acilen yer açmak için en eski archive loglar baska bir yere taşınır en kötü ihtimal silinir ki bu tavsiye edilmez, başınız ağrıyabilir.
archive loglar işletim sistemi tarafından silindi yada başka bir diske taşındı ise sırası ile
komutları çalıştırılarak sistem erişime sağlanır.

Raporlama komutları

Rmanın bilmediği yedek dosyalarını rman e bildirmek için kullanılır.(control file restore işleminden sonra, controlfile ın yeniden oluşurulmasından sonra, db_recovery_file_dest paramtresindeki eğişikliklerden sonra ve yedek dosyalarının başka bir diskten (yedek aldığınız diskten değilde başka bir diskten) geri dönmeniz gerektiğinde.

Disklerdeki fiziksel yedeklerle Rman deki yedek kayıtları arasında tutarsızlık olması durumunda silinebilir. (elinizde yedeğinizin yedeği olsun bir silme işleminden önce , bir sorun durumunda Oracle dan destek alıp geri dönüşü gerçekleştirebilesiniz.)

Yedeklerin listelenmesi

Yedeklerin kullanılabilirliğin kontrolü

Rman ayarları

satırın sonundaki “# default” , değerin değiştirilmediğini defaultta kaldığını gösterir