Home / MAKALELER / Veri Tabanı / Oracle RMAN ( Recovery Manager ) -1

Oracle RMAN ( Recovery Manager ) -1

Merhaba,

Bu ve bundan sonraki bir kaç yazımda Sizlere Oracle Veritabanlarında Backup ve Restore operasyonlarında çok sık kullandığımız RMAN ( Recovery Manager ) tool unu anlatacağım. Her veritabanı operasyonlarında en hayati yeri tutan şeylerden biriside Backup & Restore olaylarıdır. Oracle Corporation da Backup & Restore operasyonlarını yönetebilmemiz için bizlere çok özel yeteneklerle donatılmış ve Oracle kurulumuyla default olarak gelen RMAN tool unu sunmaktadır. RMAN Toolunun en önemli özelliği bir çok operasyonu otomatize edip DBA ( Database Administrator ) lerin iş yükünü hafifletmesidir. Şimdi en temelden Başlayarak RMAN toolunun özelliklerini konfigürasyonlarını ve yönetiminin nasıl gerçekleştiğine bakalım.

vds

 

Bir DBA in veritabanı operasyonlarındaki en önemli görevlerinden birisi Veritabanına ait planlanan senaryoya göre Backup larının alındığından emin olması ve bu alınan backup ların düzgün bir şekilde alınıp alınmadığını kontrol etmesidir. Çünkü Bir felaket anında yada önemli bir data kaybı yaşandığı zaman ilk olarak gözler son alınan Backup a dönecektir. Bu Backup ın düzgün bir şekilde Restore edilip veritabanının tutarlı bir şekilde recover edilmesi çok önemlidir. İşte RMAN bu operasyonların tamamında DBA lere çok yardımcı olur. RMAN i bu yüzden çok iyi bir şekilde öğrenip yönetmek tüm DBA lerin en önemli vazifesidir. RMAN ile genel olarak neler yapılabildiğini bilmek RMAN inin önemini ortaya çıkaracağından bunları aşağıdaki gibi maddeler halinde sıralayacağım.

  • Veritabanını Online ve Offline Modda Full Backup ını alabilirsiniz.
  • Veritabanımızın ürettiği Arşivlerin Backup larını alabilirsiniz.
  • Full backup gibi İncremental Backup da alabilirsiniz.
  • SPFILE ve Control File gibi Veritabanımız için hayati öneme sahip dosyaların Backup larıda RMAN tarafından alınabilmektedir.
  • Önceden alınan Backupların Restore ve Recovery işlemini RMAN ile gerçekleştirmekteyiz.
  • Herhangi bir sebebten dolayı bozulan (Corrupt) Tablespace ve Data file ları online modda RMAN ile Recover edebilirsiniz.
  • Aynı şekilde Corrupt olan Block ları RMAN ile düzeltebilirsiniz.

RMAN toolunu kullanmanın bir çok avantajı bulunmaktadır. RMAN i kullanmadan manuel olarak işlemlerin bir çoğu gerçekleştirilebilir ancak tekrar belirtmek gerekirse RMAN bu işlemleri basit bir şekilde otomatize ederek bizim yerimize güvenli bir şekilde gerçekleştirdiği için kullanmaktayız. Ayrıca RMAN ile merkezi bir Backup & Restore ünitesi kurabilir buradan tüm veritabanlarına bağlanıp gerekli işlemleri halledebilirsiniz. Öte yandan RMAN ile alınan backup larımızı compress (sıkıştırarak) ederek alabiliriz bunun yanında Alınan backuplarımızı şifreleyerek Backup ın güvenliğini artırabiliriz.

RMAN i kullanmanın Bu kadar avantajının yanında benim aklıma gelen tek ve önemli dezavantajı RMAN ile alınan Backup ın sadece RMAN ile Restore edilebilmesidir.

Veritabanı sunucumuz üzerinden TESTDB Veritabanına ait RMAN tooluna aşağıdaki gibi bağlanabiliriz.

bash-4.1$ rman
Recovery Manager: Release 11.2.0.3.0 - Production on Wed May 15 09:12:09 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target;

connected to target database: TESTDB (DBID=2602199602)

RMAN>

Yada yukardaki komutun yerine RMAN e aşağıdaki gibi direk bağlanabiliriz.

bash-4.1$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Wed May 15 09:17:09 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: TESTDB (DBID=2602199602)
RMAN>

RMAN Toolu Backup & Restore olaylarını yaparken belirli konfigürasyonlara göre yapar. RMAN e ait Konfigürasyon ayarlarını aşağıdaki komut ile öğrenebiliriz.

RMAN> show all;
using target database control file instead of recovery catalog
 RMAN configuration parameters for database with db_unique_name TESTDB are:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
 CONFIGURE BACKUP OPTIMIZATION OFF; # default
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/product/11.2.0/db/dbs/snapcf_TESTDB.f'; # default

RMAN tool undan gelen default konfigürasyonlar yukardaki gibidir. Bu konfigürasyonlar ihtiyaca göre değişebilir. Değiştirilen konfigürasyonları aşağıdaki sorgu ile öğrenebilirsiniz.  TESTDB adındaki yeni database de bir değişiklik yapmadığım için aşağıdaki gibi değişmiş bir konfigürasyon çıkmayacaktır.

bash-4.1$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed May 15 09:37:09 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$rman_configuration; 

no rows selected

Yukarda listesini sunduğum Konfigürasyon parametrelerini şimdi teker teker açıklayacak ve bunların nasıl değiştirildiğini göstereceğim.

Retention Policy: Bu parametre ile RMAN ile alınan backup ın saklama sayısını belirler. Yukarda görüldüğü gibi veritabanı kurulduğu zaman default olarak RMAN 1 tane Backup saklar. Bu parametreyi 2 olarak aşağıdaki gibi değiştirebiliriz.

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 new RMAN configuration parameters:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 new RMAN configuration parameters are successfully stored

Redundancy 2 olarak değiştirildiği için RMAN geçmişe dönük 2 Backup saklar üçüncü bir Backup alındığı zaman ise ilk backup obsolete olarak işaretlenir daha sonra eğer FRA (Fast Recovery Area) alanında yer kalmazsa otomatik olarak 1.yedek silinir ve son 2 yedek saklanır.

Recovery Window: Bu parametre yedeklerin saklanacağı zaman aralığını belirtir. RMAN konfigürasyonlarında Retentition Policy olarak ya Recovery Window parametresi yada Redundancy parametresi kullanılabilir.İkisi bir arada kullanılanamaz. Recovery Window parametresi aşağıdaki gibi değiştirilebilir.

RMAN> CONFIGURE RETENTION POLICY TO recovery window of 3 days;
 old RMAN configuration parameters:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 new RMAN configuration parameters:
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
 new RMAN configuration parameters are successfully stored

Backup Optimization: Bu parametre ile Backup ı alınan ve değişiklik görmemiş blokların yedeklerinin tekrardan alınıp alınmaması belirlenir. Bu değer ON yapıldığı takdirde bir backup process i başladığı takdirde daha önce backup ı alınmış verilerin backup ı tekrar tekrar alınmaz. Bu değer aşağıdaki gibi değiştirilebilir.

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

Default Device Type: Bu parametre ile alınan Backup ın Disk ünitesine mi yoksa TAPE ünitesine mi alınacağını belirleriz. Default olarak bu parametrenin değeri Disk dir. Bu parametrenin değerini Tape olarak aşağıdaki gibi değiştirebiliriz.

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
old RMAN configuration parameters:
 CONFIGURE DEFAULT DEVICE TYPE TO DISK;
 new RMAN configuration parameters:
 CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
 new RMAN configuration parameters are successfully stored

Controlfile Autobackup: Bu parametre ile Veritabanımızın beyni olan Controlfile ın her Backup operasyonu sırasında otomatik olarak Backup ının alınması sağlanır. Production sistemlerindeki veritabanlarında bu parametrenin mutlaka ON olarak ayarlanması gerekmektedir. Bu parametre aşağıdaki gibi değiştirilebilir.

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 new RMAN configuration parameters are successfully stored

Controlfile Autobackup Format For Device: Bu parametre ile yukarda otomatik backup alınması sağlanan control file dosyasının backup ının alınacağı yer ve device bilgisi belirlenir. Bu değer aşağıdaki gibi değiştirilebilir.

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/recovery_area/ctrl_%F';
new RMAN configuration parameters:
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/recovery_area/ctrl_%F';
 new RMAN configuration parameters are successfully stored

Device Type Disk Paralellism: Alınan backup ın kaç paralellikte alınacağı belirlenir. Bu paralellik sayısı fiziksel cpu sayısından eşit veya küçük olması tavsiye edilir. Bu parametre aşağıdaki gibi değiştirilir.

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
new RMAN configuration parameters:
 CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
 new RMAN configuration parameters are successfully stored

Datafile Backup Copies: Backup alınırken datafile ların kaçtane kopyalanacağını bu parametre ile belirlenir. Eğer yeriniz var ise bu değerin 3 olması güvenlik ve tutarlılık açısından iyi olacaktır. Bu değer aşağıdaki gibi değiştirilir.

RMAN> configure datafile backup copies for device type disk to 3;

Archivelog Backup Copies: Backup alınırken Archivelog ların kaçtane kopyalanacağını bu parametre ile belirlenir. Bu değer aşağıdaki gibi değiştirilir.

RMAN> configure archivelog backup copies for device type disk to 3;

Encryption For Database: Bu parametre ile yukarda anlattığım gibi alınan backuplar belirli algoritmalara göre şifrelenebilir. Bu parametreyi aşağıdaki gibi aktif edebiliriz.

RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;
new RMAN configuration parameters:
 CONFIGURE ENCRYPTION FOR DATABASE ON;
 new RMAN configuration parameters are successfully stored

Oracle veritabanında şifreleme için kullanılan algoritmaları aşağıdaki view den sorgulayabilirsiniz.

SQL> select * from v$rman_encryption_algorithms;
ALGORITHM_ID ALGORITHM_NAME                                                   ALGORITHM_DESCRIPTION       IS_ RES
 ------------ ---------------------------------------------------------------- ---------------------------------------------------------------- --- ---
 1 AES128                                                           AES 128-bit key       YES NO
 2 AES192                                                           AES 192-bit key       NO  NO
 3 AES256                                                           AES 256-bit key       NO  NO

Herhangi bir Algoritmayı aşağıdaki gibi set edebiliriz.

RMAN> CONFIGURE ENCRYPTION ALGORITHM 'AES128';
new RMAN configuration parameters:
 CONFIGURE ENCRYPTION ALGORITHM 'AES128';
 new RMAN configuration parameters are successfully stored

Compression Algorithm: Yukarda da bahsettiğim gibi RMAN in en önemli özelliklerinden biriside Alınan backup ın sıkıştırılması özelliğidir. Bu sayede hem alan sıkıntısı var ise bundan kurtulunur hemde eğer network üzerinden tape backup alınıyorsa network trafiği azaltılır. Bu özellik aşağıdaki gibi konfigüre edilebilir.

RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH';

old RMAN configuration parameters:
CONFIGURE COMPRESSION ALGORITHM 'low' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
new RMAN configuration parameters:
CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
new RMAN configuration parameters are successfully stored

Archivelog Deletion Policy: Bu parametre ile Veritabanımızın biriken Archivelog dosyalarının hangi policy e göre silinmesi gerektiğini belirliyoruz. Archivelog ların veritabanımız için önemini bu yazımda belirtmiştim. Veritabanımızın olası felaket senaryolaruna karşı genel itibariyle arşivler 2-3 gün saklanır ve silerken 2-3 günden önce 2 defa backup ı alınan arşivleri silinir. Ancak bu dediğim silme opsiyonu bir kural değildir tavsiye edilen bir opsiyondur. Eğer Arşivlerinizi silecek alanınız yok ise bu saklama gün sayısı ve birden fazla backup ı alınan arşivlerin silinmesi opsiyonunu azaltabilirsiniz. Bu durum önceki anlattığım senaryo kadar güvenli bir senaryo değildir. Archivelog Silme policy sini aşağıdaki gibi konfigüre edebiliriz.

RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DEVICE TYPE DISK;

new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
new RMAN configuration parameters are successfully stored

SNAPSHOT CONTROLFILE NAME: Veritabanının Backup ı alındığı zaman bu backup bilgileri Controlfile a yazılır. Bu yüzden RMAN sık sık Controlfile ı okuyarak kendisini yeniden senkronize eder. İşte RMAN kendisini resynchronize etmek istediği zaman geçici bir Control file Sanpshot ı oluşturur. Bu parametre oluşturulan bu geçici Snapshot Control file ının ismini ve yerini belirlemek için var olan bir parametredir. Bu parametreyi aşağıdaki gibi konfigüre edebiliriz.

RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/recovery_area/SNAPFILE/snapcf_TESTDB.f';

new RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/recovery_area/SNAPFILE/snapcf_TESTDB.f';
new RMAN configuration parameters are successfully stored

Tüm konfigürasyon parametrelerini açıkladıktan sonra bu yazımı sonlandırıyorum bir sonraki yazıda RMAN i anlatmaya devam edeceğim şimdilik Esen Kalın.

Mehmet Salih Deveci

Oracle Veritabanı Yöneticisi

 

About Mehmet Salih Deveci

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden 2011 yılında mezun oldu. C#, ASP.NET ve Oracle, SQL Server Veritabanları Teknolojileri Alanlarında Çalışmalarını Sürdürmektedir. Şuan Türk Telekom A.Ş de Veritabanı Yöneticisi olarak Kariyerini Sürdürmektedir.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın