TROUG. RMAN (Recovery Manager) [Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi] Ergem PEKER



Benzer belgeler
Oracle 11gR2 Üzerine Dataguard Kurulumu Türkçe

ORACLE RMAN (RECOVERY MANAGER)

Emrah UYSAL 1 TABLESPACE ENCRYPTION ORACLE 11G

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ

Startup ve Shutdown Yöntemleri. ORACLE STARTUP ve SHUTDOWN YÖNTEMLERİ

ORACLE TRANSPORTABLE TABLESPACE KULLANIMI

ORACLE FLASHBACK DATABASE TEKNOLOJĐSĐ

Flashback Database ile Standby Üzerinden Veri Kurtarmak

ORACLE TNS (TRANSPARENT NETWORK SUBSTRATE) LISTENER YAPILANDIRMASI

«BM364» Veritabanı Uygulamaları

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

TEMEL VERİTABANI YÖNETİCİLİĞİ & UNIX / LINUX EĞİTİMİ DERS PROGRAMI

ORACLE PARAMETRE DOSYALARI ( PFILE & SPFILE )

UFS SNAPSHOT. Hazırlayan: Asiye Yigit Agustos

SQL SERVER VERİTABANINI EKLEME-ÇIKARMA ve YEDEKLEME-GERİ YÜKLEME

Sun Solaris Sunucular için Felaket Kurtarma (DR-Disaster Recovery) Çözümleri

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

SQL SERVER DATABASE FILE LARINI VE TEMPDB FILE LARINI TAŞIMA OPERASYONU

Tavsiye Edilen Önhazırlık Veritabanı kavramınıöğrenmek. Hedefler Shrink yapılmasının amacının kavranması. Shrink yapılma yöntemlerinin öğrenilmesi.

Exchange Server Kurtarma (PowerControls)

Sorun Giderme. Genel. Disk. Aygıt Sürücüleri 3

LOG SHIPPING Yusuf KAHVECİ Senior Database

1 ORACLE 11G DATABASE SERVER LE

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Windows Server 2003 sistemde oluşabilecek hataları giderebilmemiz için bize bir çok araç sunmaktadır. Bunlar:

Oracle 12c Flex Cluster - Flex ASM

Yedek Almak ve Yedekten Geri Dönmek

ORACLE ONLINE REDO LOG DOSYALARI

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

SQL 2005 SQL STUDIO MANAGER ACP YAZILIMI KURULUM KILAVUZU

Bacula Yedekleme Sistemi

VERİ TABANI ve YÖNETİMİ

Copyright 2012 EMC Corporation. All rights reserved.

"SQL Server Management Studio" yazılımını yüklemek için alttaki resmi sitesinden 180 günlük deneme sürümünü indirebilirsiniz.

ASM (Automatic Storage Manager) 11 Mayıs 2009

Disk tabanlı bir çözümdür ve bu yapısından dolayı kullanılması kolaydır. Ayrıca hızlı bir şekilde yedekleme ve geri dönüş sağlar.

30 Mayıs ETASQLMNG Programına giriş

ORACLE DATABASE 11G R2 KURULUMU

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

Yeni Nesil Felaket Kurtarma Merkezi ve Buluta Geçiş. Ahmet TOPRAKÇI Ezgi CAN Hakan MARANGOZ

3. Analytic Workspace Manager ile Oracle OLAP Küpü Tasarımı

Windows Server 2012 Active Directory Kurulumu

Güvenli ve Sürdürülebilir Veri. Samed YAYLA KoçSistem Satış Yöneticisi

Bu doküman, 2016 Yıl sonu geçişi öncesi alınacak FULL BACKUP işlemlerini anlatmaktadır.

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veritabanı. Ders 2 VERİTABANI

Almanya Mail Hesabı ile Outlook Kurulumu

PARAGON PROTECT & RESTORE 3. Eğitim Dokümanı

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Yedekleme ve Kurtarma Kullanıcı Kılavuzu

SQL Server 2008 kurulum için Microsoft Windows Installer 4.5 ve üzeri bileşenin bilgisayarınızda kurulu olması gerekir. İndirmek için tıklayın

AKINSOFT Tahsilex. Yardım Dosyası. Doküman Versiyon : Tarih : Sayfa-1. Copyright 2010 AKINSOFT

Bazı Cisco Router Modelleri: Cisco 1720 Router

PostgreSQL'de Uygulamalı. (Streaming Replication. Standby)

Yedekleme ve Kurtarma

Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi

2013 Yıl Sonu İşlemleri

SHERIFF PROTEK V7.37

W3af ile Web Uygulama Güvenlik Testleri

Yeni Nesil Arşiv Altyapı Çözümleri

Microsoft networkte, "Access Control" default olarak "Share-level access control" a ayarlı gelir:

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

Acronis True Image Echo ile Sanallastırma

Kritik Uygulamalar için Yeni Yedekleme ve Arşivleme Stratejileri

Veritabanı Tasarımı. Tablo Değiştirme

Apache üzerinden Red Hat 5 yüklenmesi

Exadata Üzerinde Veri Sıkıştırma Yöntemleri

Windows 2000 veya XP kurarken dosya sistemini seçmeniz gerekir. Ya FAT32 dosya sistemini kullanırsınız ya da NTFS.

Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır.

CloudPro Server Backup. Güçlü bir Veri Yedekleme Çözümü ile İş Sürekliliğinizde Devamlılığın Anahtarı

Seri kablo bağlantısında Windows95/98/ME'ten Windows 2000'e bağlantı Windows95/98/ME - NT4 bağlantısına çok benzer.

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

VERİTABANI YÖNETİCİLİĞİ EĞİTİMİ DERS PROGRAMI

PocketRest Kullanımı

MultiBoot Kullanıcı Kılavuzu

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Eki Çarş. Perş. Öğr. Gör. Murat KEÇECĠOĞLU

NOT: BU BELGEYİ OKUMADAN LÜTFEN YAZILIMI YÜKLEMEYE ÇALIŞMAYIN.

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

A20 KULLANIM KILAVUZU

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

LDAP Administrator ile Active Directory Yonetimi

Mac için Kullanım Kılavuzu

1 Temel Kavramlar. Veritabanı 1

Kurumumuzda mevcut Oracle Veritabanı ve Uygulama Sunucuları için üç yıl süreyle yönetim, güncelleme, bakım ve destek hizmeti temin edilecektir.

Fstab Rehberi. Ceren Çalıcı. Nisan, 2012

VERİTABANI KURULUMU SQL 2005 EXPRESS EDITION KURULUMU

Adli Analiz İşlemlerine Başlamak

Nmap Sonuçlarının Yorumlanması

Oracle da kullanılan veri tipleri:

SQL TRIGGERS (Tetikleyiciler)

Veritabanı Yönetim Sistemleri I HAFTA 1

ÇOK ÖNEMLİ GÜVENLİK VE YEDEKLEME UYARISI

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

MIRACLE DATA WORKS KURULUM DOKÜMANI

Donanım Bağımsız Kurtarma

Transkript:

[Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi] RMAN (Recovery Manager) Ergem PEKER

Giriş Veritabanı yöneticisinin temel görevleri ve sorumlulukları olan tablespace ve disk doluluk oranlarının takibi, kullanıcı hesaplarının yönetimi, performansı düşük sorguların iyileştirilmesi, yama yönetimi, veri güvenliği gibi birçok günlük operasyonel iş arasında kendisini kaybetmesi aslında cok daha kritik olan bir görevini kendisine unutturur, unutturmasa bile oldukça geri planlara itmesine neden olabilir. Bahsedilen en kritik görev ve sorumluluk aslında "Veri Yedekleme ve Kurtarma" 'dir. Bir veritabanı yöneticisinin duzenli ve çalışır bir yedekleme planı olmaması kabul edilemez. Diğer yandan sadece yedekleme planı olması da yeterli değildir. Yedeği alınan veritabanın, herhangi bir sebeple kaybolan verilerin geri kurtarılmasını sağlaması gerekmektedir. Aslında gün içerisinde pek te aklımıza gelmeyen bu işlem, bir veritabanı yöneticisinin en kritik görevidir. Bir Oracle Veritabanının yedeklenmesi ve kurtarılmasi birçok farklı senaryo ve araç ile sağlanabilir. En cok kullanılan araçlar arasında export/import ve Oracle Veritabanı 10g versiyonu ile birlikte kullanıma sunulan datapump ürünleri sayilabilir. Bu araçların yanında işletim sistemi dosya kopyalama yöntemini esas alan "User Managed" yedekleme ve kurtarma yöntemleri de vardır. Diğer yandan depolama ürünlerinin sağladığı bazı çözümler de veritabanı yedekleme yöntemleri arasında gösterilebilir. Bu kısa yazıda az önce bahsedilen yöntemlerin hiç birisine değinmeden Oracle 'in önerdiği ve desteklediği veri yedekleme ve kurtarma ürünü olan RMAN (Recovery MANager) başlığını kısaca inceleyeceğiz. Öncelikle RMAN 'in diğer çözümlere kıyasla sağladığı avantajlara bir göz atmak gerekir. Diğer araçlara kıyasla RMAN block seviyesinde çalıştığı için bazı kazanımlari vardır. Örneğin Incremental Yedek işlemlerini diğer araçlar ile sağlayamiyor iken RMAN de bu özellik var. Dolayısıyla her seferinde tüm veritabanı dosyalarının tamamını kopyalamak yerine, bir önceki full yedek üzerine sadece yedeği alınmamış fark blocklari yazabilirsiniz. Block seviyesinde çalışmanın getirdiği bir diğer önemli özellik ise block kurtarma. Bir veri dosyasının tamamının değil fakat bir kısmının hatta daha küçük seviyede sadece bazı block larının herhangi bir sebepten dolayı bozulması RMAN öncesinde tum tablespace in yedekten geri dönülmesi ile mümkün olabilirken, RMAN ile sadece birkac komut ile sadece bozulan block lar kurtarılabiliyor. Yedekleme performansida RMAN ile daha kolay yönetilebilir halde. Özellikle Parallel yedek almak için diğer araçlarda veritabanı yöneticisinin kişisel katkısı gerekirken, RMAN ile kanallar (channel) üzerinden parallel yedekleme işlemleri cok daha kolay yönetilebilir hale gelmiş durumda. 1

Eğer Oracle ASM ürününü kullanıyorsanız, RMAN in getirdiği bir çok kullanışlı özellik bir çok veritabanı yöneticisi için vazgeçilmez hale gelebilir. Zira ASM üzerinde bulunan tüm Oracle veritabanı dosyaları RMAN ile yedeklenebilir, kopyalanabilir, ASM den dosya sistemine veya tam ters yönlu olarak aktarılabilir ve çok daha önemli bir özellik olan veritabanı klonlama işlemleri yine RMAN ile yapılabilir. Tüm bu özelliklerin yanı sıra RMAN in bir diğer kullanışlı özelliği, daha önce alınmış olan tüm veritabanı ve archivelog yedeklerinin controlfile içerisinde bulunan kütüphaneden sorgulanabilmesi. Birden fazla veritabanının olması durumda bu kütüphane bir veritabanı (catalog database) üzerinde de tutulabilir. RMAN i başlatma ve temel ayarlar Başlamadan önce iki varsayımda bulunmak gerekir. Aşağıdaki komut ve yöntemlerin çalışması için versiyonu 11gR2 olan bir Oracle Veritabanı kurulumunun halihazırda var olduğunu ve veritabanının archivelog mode da olduğunu varsayıyoruz. RMAN, bir veritabanı kurulumu yapıldığında, veritabanı yazılımının kurulu oldugu dizin içerisinde varsayılan bir araç olarak gelir ve Oracle kurulum dizini (bundan sonra $ORACLE_HOME olarak bahsedilecektir) içerisinde tum binary dosyalarının bulunduğu bin klasöru içerisinde yer alir. [oracle@localhost ~]$ ls $ORACLE_HOME/bin/rman /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/rman [oracle@localhost ~]$ which rman ~/app/oracle/product/11.2.0/dbhome_2/bin/rman RMAN i çalıştırmak için sadece rman komutunu yazıp enter a basmak yeterli olacaktir. Fakat RMAN işlemlerinin yapılacağı bir veritabanına bağlanmanız gerekir. Bu veritabanından bundan sonra target veritabanı olarak bahsedilecektir. Target veritabanını RMAN i çalıştırdıktan sonra veya çalıştırırken bildirebilirsiniz. [oracle@localhost ~]$ rman Recovery Manager: Release 11.2.0.2.0 - Production on Tue Nov 29 13:56:00 2011 2

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. RMAN> connect target / connected to target database: ORCL (DBID=1229390655) RMAN> exit Recovery Manager complete. [oracle@localhost ~]$ rman target / Recovery Manager: Release 11.2.0.2.0 - Production on Tue Nov 29 13:56:32 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1229390655) RMAN> RMAN i çalıştırdıktan ve target veritabanına bağlandıktan sonra, bir veritabanı yedeği almak oldukça kolay. Tek yapmanız gereken backup database komutunu girmek ve komut çıktılarini takip etmek. Burada dikkat edilmesi gereken husus yeterli disk alanına sahip olup olmadığınızdır. Zira RMAN varsayılan yedekleme klasöru olarak $ORACLE_HOME/dbs altını seçecektir. Eğer db_recovery_file_dest sistem parametresi ayarlanmış ise bu durumda bu alana yedek alacaktır. Alınan veritabanı yedekleri hakkında RMAN e soru sormak isterseniz list backup of database [summary] komutunu aşağıdaki örnekteki gibi kullanabilirsiniz. RMAN> backup database; Starting backup at 29-NOV-11 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=143 device type=disk channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/home/oracle/app/oracle/oradata/orcl/system01.dbf input datafile file number=00004 name=/home/oracle/app/oracle/oradata/orcl/users01.dbf input datafile file number=00003 name=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/home/oracle/app/oracle/oradata/orcl/example01.dbf input datafile file number=00007 name=/home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf input datafile file number=00006 name=/home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: starting piece 1 at 29-NOV-11 channel ORA_DISK_1: finished piece 1 at 29-NOV-11 piece handle=/home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nnnd f_tag20111129t143635_7fbqmmkb_.bkp tag=tag20111129t143635 comment=none 3

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 29-NOV-11 channel ORA_DISK_1: finished piece 1 at 29-NOV-11 piece handle=/home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_ncsn f_tag20111129t143635_7fbqo1vb_.bkp tag=tag20111129t143635 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 29-NOV-11 RMAN> list backup of database; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 2 Full 1.97G DISK 00:00:44 29-NOV-11 BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20111129T143635 Piece Name: /home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nnndf_tag20 111129T143635_7fbqmmkb_.bkp List of Datafiles in backup set 2 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/system01.dbf 2 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf 4 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/users01.dbf 5 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/example01.dbf 6 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf 7 Full 9118670 29-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf RMAN yedekleme işlemi boyunca target veritabanı dosyalarını okurken, çıkış arabirimi olarak ta channel lari kullanir. Channel ayarlarını yaparak backup süresinde iyileştirmeler yapabilir, yedekleme dosyalarının formatlarını dilediğiniz gibi ayarlayabilirsiniz. Herhangi bir ayar yapmadığımız durumda RMAN in hangi durumda hangi klasöre yedek aldığını bir önceki örnekte görmüştük. Ayarlarda herhangi bir özelleştirme yapılmadığı taktirde RMAN varsayılan olarak ORA_DISK_1 isimli bir channel olusturur ve bu channel i $ORACLE_HOME/dbs altına veya flash recovery area özelliği ayarlı ise db_recovery_file_dest te belirtilen klasöre yönlendirir. Simdi channel ayarları ile biraz daha yakından ilgilenebiliriz. Şöyle ki; 4

RMAN> show default device type; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default RMAN> configure channel device type disk format '/home/oracle/app/oracle/admin/orcl/%u'; new RMAN configuration parameters: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/app/oracle/admin/orcl/%u'; new RMAN configuration parameters are successfully stored released channel: ORA_DISK_1 RMAN> show channel; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/app/oracle/admin/orcl/%u'; Bu yeni ayarlarlar ile birlikte RMAN yedeklerinin belirtilen klasöre alınmasını bekliyoruz. Bakalım gerçekten öyle mi? RMAN> backup database; Starting backup at 30-NOV-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=144 device type=disk channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/home/oracle/app/oracle/oradata/orcl/system01.dbf input datafile file number=00004 name=/home/oracle/app/oracle/oradata/orcl/users01.dbf input datafile file number=00003 name=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/home/oracle/app/oracle/oradata/orcl/example01.dbf input datafile file number=00007 name=/home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf 5

input datafile file number=00006 name=/home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: starting piece 1 at 30-NOV-11 channel ORA_DISK_1: finished piece 1 at 30-NOV-11 piece handle=/home/oracle/app/oracle/admin/orcl/07msua9a_1_1 tag=tag20111130t062649 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 30-NOV-11 channel ORA_DISK_1: finished piece 1 at 30-NOV-11 piece handle=/home/oracle/app/oracle/admin/orcl/08msuaan_1_1 tag=tag20111130t062649 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 30-NOV-11 RMAN> list backup of database summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 6 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 RMAN> list backup of database; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 6 Full 1.97G DISK 00:00:43 30-NOV-11 BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20111130T062649 Piece Name: /home/oracle/app/oracle/admin/orcl/07msua9a_1_1 List of Datafiles in backup set 6 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/system01.dbf 2 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf 6

4 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/users01.dbf 5 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/example01.dbf 6 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf 7 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf Evet gerçekten öyle. Bu esnada dikkat etmemiz gereken bir diğer önemli konu ise RMAN in aldığı yedekleri dosya sisteminde nasıl tuttuğu. RMAN aldığı her yedeği bir backupset (yedek kumesi) mantıksal yapısı içerisinde tutar ve bu backupset i belirleyici bir TAG ile işaretler. Bu backupset içerisinde de backuppiece (yedek parcasi) adı verilen fiziksel dosyaları görebilirsiniz. Her backupset te bir veya birden fazla backuppiece bulabilirsiniz. list backupset komutu ile almış olduğunuz yedeklerin backupset lerini bu backupset lerin içerisindeki backuppiece leri ve bu backuppiece lerin içerisindeki veritabanı dosyalarını görebilirsiniz. RMAN> list backupset; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 6 Full 1.97G DISK 00:00:43 30-NOV-11 BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20111130T062649 Piece Name: /home/oracle/app/oracle/admin/orcl/07msua9a_1_1 List of Datafiles in backup set 6 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/system01.dbf 2 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf 4 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/users01.dbf 5 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/example01.dbf 6 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf 7 Full 9182550 30-NOV-11 /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf 7

BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 7 Full 9.36M DISK 00:00:03 30-NOV-11 BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20111130T062649 Piece Name: /home/oracle/app/oracle/admin/orcl/08msuaan_1_1 SPFILE Included: Modification time: 30-NOV-11 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 9182567 Ckp time: 30-NOV-11 İlk bölümden değinmemiz gereken bir diğer ayar ise retention policy. Bu ayar kaç adet sağlıklı veritabanı yedeğini disk üzerinde tutmak istedigimizle ilgili. Bu ayar iki temel birim üzerinden yapılabilir. Birincisi zaman temelli bir policy belirleyebilirsiniz. Ikincisi backup adedi üzerinden bir policy belirleyebilirsiniz. Örneğin, Aşağıdaki ayarı yapmak ile son 7 günlük yedekleri RMAN repository sinde tutmak istediğimizi RMAN e bildiriyoruz, böylece RMAN gereksiz yedekleri silerken son 7 gunden önceki yedekleri silmeye özen gösterecektir. RMAN> configure retention policy to recovery window of 7 days; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; new RMAN configuration parameters are successfully stored Diğer yandan, aşağıdaki ayarı yapmakla RMAN e son 7 adet yedeği repository de tutması gerektiğini bildiriyoruz. Böylece RMAN in eski yedeklerden kastı son 7 adet yedek ten daha önceki dosyalar olacaktir. RMAN> configure retention policy to redundancy 7; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 7; new RMAN configuration parameters are successfully stored Eğer hergün sadece tek bir yedek alıyorsak bu yukarıdaki iki farklı ayar aynı sonucu verecektir. Fakat haftada bir full veritabanı yedeği alıyorsak, ilk ayar sadece bir adet 8

veritabanı yedeğini repository de barındırırken, ikinci ayar son 7 haftalık yedeği repository de barındıracaktır. Bu ikisinin farkı, özellikle disk e alınan yedeklerde önem arz edecektir, zira disk doluluk oranını etkileyen bir etkendir. Simdi bir örnekle beraber süresi dolan yedekler ve arşivlog lar nasıl listelenir ve silinir bir bakalım. Diskteki yer kısıtı dolayısıyla ben retention policy i son bir yedeği tutacak sekilde ayarladım. Süresi dolan yedekleri sildikten sonra veritabanı yedeklerini listeledigimde sadece son veritabanı yedeğinin repository de kaldığına dikkat edebilirsiniz. Ayrıca son veritabanı yedeğinden daha önce üremiş olan arşivlog larinda silindiğine dikkat ediniz, zira bu log lar son yedeğe geri dönebilmek için gerekli olan dosyalar arasında değiller. RMAN> configure retention policy to redundancy 1; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 7; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; new RMAN configuration parameters are successfully stored RMAN> report obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 1 Report of obsolete backups and copies Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Archive Log 1 29-NOV-11 /home/oracle/app/oracle/admin/orcl/1_388_701609923.dbf Backup Set 1 29-NOV-11 Backup Piece 1 29-NOV-11 /home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nc snf_tag20111129t143039_7fbq8k1k_.bkp Archive Log 2 29-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_389_701609923.dbf Archive Log 3 29-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_390_701609923.dbf Backup Set 3 29-NOV-11 Backup Piece 3 29-NOV-11 /home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nc snf_tag20111129t143635_7fbqo1vb_.bkp Archive Log 4 30-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_391_701609923.dbf Archive Log 5 30-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_392_701609923.dbf Backup Set 5 30-NOV-11 9

Backup Piece 5 30-NOV-11 /home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/06msu8pu_1_1 RMAN> delete obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 1 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=142 device type=disk Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Backup Set 1 29-NOV-11 Backup Piece 1 29-NOV-11 /home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nc snf_tag20111129t143039_7fbq8k1k_.bkp Archive Log 2 29-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_389_701609923.dbf Archive Log 3 29-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_390_701609923.dbf Backup Set 3 29-NOV-11 Backup Piece 3 29-NOV-11 /home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o1_mf_nc snf_tag20111129t143635_7fbqo1vb_.bkp Archive Log 4 30-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_391_701609923.dbf Archive Log 5 30-NOV-11 /home/oracle/app/oracle/admin/orcl/archive/1_392_701609923.dbf Backup Set 5 30-NOV-11 Backup Piece 5 30-NOV-11 /home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/06msu8pu_1_1 Do you really want to delete the above objects (enter YES or NO)? yes deleted backup piece backup piece handle=/home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o 1_mf_ncsnf_TAG20111129T143039_7fbq8k1k_.bkp RECID=1 STAMP=768493841 deleted archived log archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_389_701609923.dbf RECID=2 STAMP=768494151 deleted archived log archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_390_701609923.dbf RECID=3 STAMP=768495061 deleted backup piece backup piece handle=/home/oracle/app/oracle/flash_recovery_area/orcl/backupset/2011_11_29/o 1_mf_ncsnf_TAG20111129T143635_7fbqo1vb_.bkp RECID=3 STAMP=768494241 10

deleted archived log archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_391_701609923.dbf RECID=4 STAMP=768549201 deleted archived log archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_392_701609923.dbf RECID=5 STAMP=768549618 deleted backup piece backup piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/06msu8pu_1_1 RECID=5 STAMP=768549696 Deleted 7 objects RMAN> list backup of database summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 6 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 Temel Yedekleme İşlemleri Veritabanı yedeğini almak için girmemiz gereken komutu bir önceki bölümde zaten incelemistik. Bu bölümde de veri dosyaları dışında kalan fakat yine de olası bir geri dönüş senaryosunda ihtiyacımız olabilecek diğer veritabanı dosyaları olan controlfile, spfile ve arşivlog ların yedeklemesine göz atacağız. Yukarıdaki backup database çıktılarına bakacak olursanız, her veritabanı yedeği sonunda backupset içerisine bir backuppiece, içerisinde de controlfile ve spfile yedeklerinin otomatik olarak alındığını görebilirsiniz. Eğer controlfile yedeğinin Ayrıca alınmasını istiyorsanız o halde backup current controlfile komutunu kullanabilirsiniz. Aynı şekilde spfile yedeği içinde backup spfile komutu yeterli olacaktir. Ayrıca yine list backup of controlfile [summary] veya list backup of spfile [summary] komutları ile alınan yedekleri kontrol edebilirsiniz. 11

RMAN> backup current controlfile; Starting backup at 05-DEC-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set channel ORA_DISK_1: starting piece 1 at 05-DEC-11 channel ORA_DISK_1: finished piece 1 at 05-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/09mtduk8_1_1 tag=tag20111205t044600 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-DEC-11 Starting Control File and SPFILE Autobackup at 05-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111205-00 comment=none Finished Control File and SPFILE Autobackup at 05-DEC-11 RMAN> backup spfile; Starting backup at 05-DEC-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 05-DEC-11 channel ORA_DISK_1: finished piece 1 at 05-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0bmtdukp_1_1 tag=tag20111205t044617 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-DEC-11 Starting Control File and SPFILE Autobackup at 05-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111205-01 comment=none Finished Control File and SPFILE Autobackup at 05-DEC-11 RMAN> list backup of controlfile summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 7 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 8 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044600 12

9 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044602 11 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044618 RMAN> list backup of spfile summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 7 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 9 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044602 10 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044617 11 B F A DISK 05-DEC-11 1 1 NO TAG20111205T044618 RMAN> list backup of controlfile; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 7 Full 9.36M DISK 00:00:03 30-NOV-11 BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20111130T062649 Piece Name: /home/oracle/app/oracle/admin/orcl/08msuaan_1_1 Control File Included: Ckp SCN: 9182567 Ckp time: 30-NOV-11 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 8 Full 9.33M DISK 00:00:02 05-DEC-11 BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20111205T044600 Piece Name: /home/oracle/app/oracle/admin/orcl/09mtduk8_1_1 Control File Included: Ckp SCN: 9211363 Ckp time: 05-DEC-11 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 9.36M DISK 00:00:00 05-DEC-11 BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20111205T044602 Piece Name: /home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c- 1229390655-20111205-00 Control File Included: Ckp SCN: 9211369 Ckp time: 05-DEC-11 13

BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 11 Full 9.36M DISK 00:00:00 05-DEC-11 BP Key: 11 Status: AVAILABLE Compressed: NO Tag: TAG20111205T044618 Piece Name: /home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c- 1229390655-20111205-01 Control File Included: Ckp SCN: 9211389 Ckp time: 05-DEC-11 Controlfile yedekleri için ayrıca dikkat edilmesi gereken bir durum vardır. İleride controlfile kurtarma bölümünde daha detaylı değineceğiz ama yine de burada bir giriş yapmak yerinde gözüküyor. RMAN aldığı tüm yedeklerin metadatasini controlfile içerisinde tutar (catalog veritabanı kullanılmadığı durumda). Dolayısıyla controlfile kaybı RMAN için oldukça kritik bir durum, zira controlfile yedeklerinin kendisi de RMAN backupset leri içerisinde. Bu ikilemden kurtulmak için controlfile auto backup özelliğini ayarlayabiliriz. Bunun için controlfile auto backup parametresini on olarak ayarlamanız gerekir. Bu parametreyi on olarak ayarladıktan sonra RMAN her veritabanı yedeğinden sonra controlfile yedeklerini otomatik olarak $ORACLE_HOME/dbs dizini altına da alır. Veri kurtarma kısmında bu yedeğin ne kadar önemli olacağını göreceğiz. RMAN> configure controlfile autobackup on; new RMAN configuration parameters: CONFIGURE CONTROLFILE AUTOBACKUP ON; new RMAN configuration parameters are successfully stored RMAN> show controlfile autobackup; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE CONTROLFILE AUTOBACKUP ON; Arşivlog ların da yedeğini alıp daha sonra orjinal arşivlog ları disk kullanımını azaltmak için dosya sisteminden silebilirsiniz veya RMAN e arşivlog yedeklerini aldıktan sonra yedeğini aldığı arsivleri dosya sisteminden (veya ASM üzerinden) kaldırmasini bildirebilirsiniz. Arşivlog ları silerken dikkat edilmesi gereken bir diğer nokta ise, arşivlog dosyalarının dosya sistemi komutları ile değil de RMAN komutları ile silmekte fayda vardır. Aksi 14

taktirde RMAN silinen arşivlog ların kaydını tutamayacak ve bir sonraki arşivlog yedeğinde, bulamadigi arşivlog lar için hata verecektir. Bunu önlemek için RMAN içerisinde crosschek archivelog all komutu ile RMAN in dosya sistemindeki arşivlog dosyalarından haberdar olması sağlanabilir. Son örnek olarak ta, bir arsiv sequence numarasi ile arsiv yedekleyip listeleyebilirsiniz. Şöyle ki; RMAN> backup archivelog all; Starting backup at 05-DEC-11 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=393 RECID=6 STAMP=769058085 input archived log thread=1 sequence=394 RECID=7 STAMP=769067203 channel ORA_DISK_1: starting piece 1 at 05-DEC-11 channel ORA_DISK_1: finished piece 1 at 05-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0dmte263_1_1 tag=tag20111205t054643 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-DEC-11 Starting Control File and SPFILE Autobackup at 05-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111205-02 comment=none Finished Control File and SPFILE Autobackup at 05-DEC-11 RMAN> backup archivelog from time 'sysdate-1'; Starting backup at 05-DEC-11 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=393 RECID=6 STAMP=769058085 input archived log thread=1 sequence=394 RECID=7 STAMP=769067203 input archived log thread=1 sequence=395 RECID=8 STAMP=769068788 channel ORA_DISK_1: starting piece 1 at 05-DEC-11 channel ORA_DISK_1: finished piece 1 at 05-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0fmte3nk_1_1 tag=tag20111205t061308 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-DEC-11 Starting Control File and SPFILE Autobackup at 05-DEC-11 15

piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111205-03 comment=none Finished Control File and SPFILE Autobackup at 05-DEC-11 RMAN> backup archivelog all delete all input; Starting backup at 05-DEC-11 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=393 RECID=6 STAMP=769058085 input archived log thread=1 sequence=394 RECID=7 STAMP=769067203 input archived log thread=1 sequence=395 RECID=8 STAMP=769068788 input archived log thread=1 sequence=396 RECID=9 STAMP=769068808 channel ORA_DISK_1: starting piece 1 at 05-DEC-11 channel ORA_DISK_1: finished piece 1 at 05-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0hmte3o8_1_1 tag=tag20111205t061328 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 channel ORA_DISK_1: deleting archived log(s) archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_393_701609923.dbf RECID=6 STAMP=769058085 archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_394_701609923.dbf RECID=7 STAMP=769067203 archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_395_701609923.dbf RECID=8 STAMP=769068788 archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_396_701609923.dbf RECID=9 STAMP=769068808 Finished backup at 05-DEC-11 Starting Control File and SPFILE Autobackup at 05-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111205-04 comment=none Finished Control File and SPFILE Autobackup at 05-DEC-11 RMAN> list backup of archivelog all; List of Backup Sets =================== BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 16

12 14.53M DISK 00:00:01 05-DEC-11 BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20111205T054643 Piece Name: /home/oracle/app/oracle/admin/orcl/0dmte263_1_1 List of Archived Logs in backup set 12 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 393 9180048 30-NOV-11 9203907 05-DEC-11 1 394 9203907 05-DEC-11 9214261 05-DEC-11 BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 14 16.28M DISK 00:00:00 05-DEC-11 BP Key: 14 Status: AVAILABLE Compressed: NO Tag: TAG20111205T061308 Piece Name: /home/oracle/app/oracle/admin/orcl/0fmte3nk_1_1 List of Archived Logs in backup set 14 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 393 9180048 30-NOV-11 9203907 05-DEC-11 1 394 9203907 05-DEC-11 9214261 05-DEC-11 1 395 9214261 05-DEC-11 9215764 05-DEC-11 BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 16 16.28M DISK 00:00:01 05-DEC-11 BP Key: 16 Status: AVAILABLE Compressed: NO Tag: TAG20111205T061328 Piece Name: /home/oracle/app/oracle/admin/orcl/0hmte3o8_1_1 List of Archived Logs in backup set 16 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 393 9180048 30-NOV-11 9203907 05-DEC-11 1 394 9203907 05-DEC-11 9214261 05-DEC-11 1 395 9214261 05-DEC-11 9215764 05-DEC-11 1 396 9215764 05-DEC-11 9215790 05-DEC-11 RMAN> list backup of archivelog from sequence 394 until sequence 394; List of Backup Sets =================== BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 17

12 14.53M DISK 00:00:01 05-DEC-11 BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20111205T054643 Piece Name: /home/oracle/app/oracle/admin/orcl/0dmte263_1_1 List of Archived Logs in backup set 12 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 394 9203907 05-DEC-11 9214261 05-DEC-11 BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 14 16.28M DISK 00:00:00 05-DEC-11 BP Key: 14 Status: AVAILABLE Compressed: NO Tag: TAG20111205T061308 Piece Name: /home/oracle/app/oracle/admin/orcl/0fmte3nk_1_1 List of Archived Logs in backup set 14 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 394 9203907 05-DEC-11 9214261 05-DEC-11 BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 16 16.28M DISK 00:00:01 05-DEC-11 BP Key: 16 Status: AVAILABLE Compressed: NO Tag: TAG20111205T061328 Piece Name: /home/oracle/app/oracle/admin/orcl/0hmte3o8_1_1 List of Archived Logs in backup set 16 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 394 9203907 05-DEC-11 9214261 05-DEC-11 Incremental (Arttırımlı) Yedekleme RMAN in bir diğer önemli özelliği incremental (arttırımlı) yedek alabilmesidir. Özellikle çok büyük veritabanlarının günlük alınan yedeklerini barındırmak oldukça maliyetli bir duruma gelebiliyor. Dolayısıyla hergün tüm veritabanının tamamının yedeğini almak yerine sadece değişen block larin yedeğini almak hem toplam yedek alma süresini kısaltıyor hem de alınan yedeğin, disk üzerinde daha az yer kaplamasını sağlıyor. Temel Olarak iki seviye arttırımlı yedek alma seçeneğimiz var. Bunlardan ilki level-0 (seviye-0) arttırımlı yedek, ikincisi ise level-1 (seviye-1) arttırımlı yedek. Seviye-0 yedeği 18

aslında bir tam veritabanı yedeğine eşdeğer olarak algılanabilir, aradaki tek fark seviye-0 yedek kendinden sonra gelecek olan seviye-1 yedeklere bir baz teskil eder. Örnek vermek gerekirse, her pazar bir seviye-0 tam yedek alıp hafta içi günlük seviye-1 yedekler alınabilir. Seviye-1 yedek ise iki sınıfa ayrılır. differential backup (fark yedeği) ve cumulative backup (toplu yedek). Fark yedeği kendinden hemen önce alınan seviye-0 veya seviye-1 arttırımlı yedekten sonra değişmiş olan block ları yedeklerken, toplu yedek ise kendinden önce gelen sadece seviye-0 arttırımlı yedekten sonra değişen block lari yedekler. Gayet açıktır ki, seviye-1 fark yedekleri sadece günlük farklari içerirken, seviye-1 toplu yedek boyutu bir sonraki seviye-0 yedeğe kadar hergün artarak ilerleyecektir. Aradaki bu farkı veri kurtarma senaryoları arasında detaylı bir sekilde inceleyeceğiz. Aşağıdaki iki şemada seviye-1 fark ve toplu arttırımlı yedeklerin farklarini görebilirsiniz. Seviye-1 fark yedeğine örnek. (Level-1 differential backup) 19

Seviye-1 toplu yedeğe bir örnek. (Level-1 cumulative backup) Aşağıdaki örnekte, seviye-0 ve seviye-1 yedeklerin nasıl alındığıni, komutları ve komut çıktılarini inceleyebilirsiniz. RMAN> backup incremental level 0 database; Starting backup at 06-DEC-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental level 0 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/home/oracle/app/oracle/oradata/orcl/system01.dbf input datafile file number=00004 name=/home/oracle/app/oracle/oradata/orcl/users01.dbf input datafile file number=00003 name=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/home/oracle/app/oracle/oradata/orcl/example01.dbf 20

input datafile file number=00007 name=/home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf input datafile file number=00006 name=/home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: starting piece 1 at 06-DEC-11 channel ORA_DISK_1: finished piece 1 at 06-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0qmtger0_1_1 tag=tag20111206t033455 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 Finished backup at 06-DEC-11 Starting Control File and SPFILE Autobackup at 06-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111206-02 comment=none Finished Control File and SPFILE Autobackup at 06-DEC-11 RMAN> backup incremental level 1 database; Starting backup at 06-DEC-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=146 device type=disk channel ORA_DISK_1: starting incremental level 1 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/home/oracle/app/oracle/oradata/orcl/system01.dbf input datafile file number=00004 name=/home/oracle/app/oracle/oradata/orcl/users01.dbf input datafile file number=00003 name=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/home/oracle/app/oracle/oradata/orcl/example01.dbf input datafile file number=00007 name=/home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf input datafile file number=00006 name=/home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: starting piece 1 at 06-DEC-11 channel ORA_DISK_1: finished piece 1 at 06-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0lmtgddj_1_1 tag=tag20111206t031043 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25 Finished backup at 06-DEC-11 Starting Control File and SPFILE Autobackup at 06-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111206-00 comment=none Finished Control File and SPFILE Autobackup at 06-DEC-11 21

RMAN> list backup of database summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 6 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 18 B 0 A DISK 05-DEC-11 1 1 NO TAG20111205T072847 20 B 1 A DISK 06-DEC-11 1 1 NO TAG20111206T031043 RMAN> backup incremental level 1 cumulative database; Starting backup at 06-DEC-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental level 1 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/home/oracle/app/oracle/oradata/orcl/system01.dbf input datafile file number=00004 name=/home/oracle/app/oracle/oradata/orcl/users01.dbf input datafile file number=00003 name=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/home/oracle/app/oracle/oradata/orcl/example01.dbf input datafile file number=00007 name=/home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf input datafile file number=00006 name=/home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: starting piece 1 at 06-DEC-11 channel ORA_DISK_1: finished piece 1 at 06-DEC-11 piece handle=/home/oracle/app/oracle/admin/orcl/0nmtgdhh_1_1 tag=tag20111206t031249 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 Finished backup at 06-DEC-11 Starting Control File and SPFILE Autobackup at 06-DEC-11 piece handle=/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/c-1229390655-20111206-01 comment=none Finished Control File and SPFILE Autobackup at 06-DEC-11 RMAN> list backup of database summary; 22

List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 6 B F A DISK 30-NOV-11 1 1 NO TAG20111130T062649 18 B 0 A DISK 05-DEC-11 1 1 NO TAG20111205T072847 20 B 1 A DISK 06-DEC-11 1 1 NO TAG20111206T031043 22 B 1 A DISK 06-DEC-11 1 1 NO TAG20111206T031249 Veri Kurtarma Senaryoları Yaptığımız tum yedek planlarının ve aldığımız tüm yedeklerin tek bir amacı vardır. İstenmeyen muhtemel bir durum sonrasında meydana gelebilecek veri kaybını engellemek veya kısaca veri kurtarmak (recovery). Aldığımız yedeklerin tutarlılığını ve kullanılırlığını test etmek için düzenli olarak veri geri dönüş test senaryoları yaratmak, ileride meydana gelebilecek veri kayıplarını en kısa yoldan çözerek, veri tabanı downtime süresini en azda tutmak için cok yararlıdır. Zira aldığımız yedeklerin bozuk olup olmadığının, yedekleme planımizin duzenli ve tutarli olup olmadığının en doğrudan ispatı, elimizdeki bu yedeklerden sağlıklı bir şekilde geri dönüp dönemediğimizi kendi gözümüzle görmektir. Aynı yedek almak gibi geri dönüş de RMAN ile oldukça kolaydır. Veri kurtarmanın iki aşaması vardır. Birincisi restore aşaması ikincisi recover aşamasıdir. Restore aşaması veri dosyalarının RMAN yedek dosyalarından geri dönülmesini saglar. Recover işlemi ise, yedeğin alındığı zamandan itibaren veritabanı kapanmadan son ana kadar olan değişiklikleri restore edilen veri dosyalarına uygular. Kısaca restore database komutunu çalıştırarak veritabanının en son yedeğindeki veri dosyalarını ASM veya dosya sistemine yeniden kopyalar, ardından çalıştıracağınız recover database komutu ile veritabanının son anına tekrar geri dönebilirsiniz. Bunun için tum arşivlog ların ve rman backupset lerinin ulaşılabilir olması yeterlidir. Genellikle bu komut, olası bir fiziksel problem (disk kaybi, veri bozulması) dolayısıyla kaybolabilecek veri dosya veya dosyalarını geri dönmek için kullanılabilir. SQL> select name from v$datafile; NAME 23

------------------------------------------------------------------------------ /home/oracle/app/oracle/oradata/orcl/system01.dbf /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf /home/oracle/app/oracle/oradata/orcl/users01.dbf /home/oracle/app/oracle/oradata/orcl/example01.dbf /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf 7 rows selected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$ cd /home/oracle/app/oracle/oradata/orcl/ [oracle@localhost orcl]$ ls APEX_1246426611663638.dbf control01.ctl redo01.log redo03.log system01.dbf undotbs01.dbf APEX_1265209995679366.dbf example01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf [oracle@localhost orcl]$ rm *.dbf [oracle@localhost orcl]$ ls control01.ctl redo01.log redo02.log redo03.log [oracle@localhost orcl]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Dec 6 04:55:45 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount; ORACLE instance started. Total System Global Area 456146944 bytes Fixed Size 1344840 bytes Variable Size 394267320 bytes Database Buffers 54525952 bytes Redo Buffers 6008832 bytes Database mounted. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production 24

With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost orcl]$ rman target / Recovery Manager: Release 11.2.0.2.0 - Production on Tue Dec 6 04:56:03 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1229390655, not open) RMAN> restore database; Starting restore at 06-DEC-11 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=10 device type=disk channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /home/oracle/app/oracle/oradata/orcl/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /home/oracle/app/oracle/oradata/orcl/users01.dbf channel ORA_DISK_1: restoring datafile 00005 to /home/oracle/app/oracle/oradata/orcl/example01.dbf channel ORA_DISK_1: restoring datafile 00006 to /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf channel ORA_DISK_1: restoring datafile 00007 to /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/app/oracle/admin/orcl/0qmtger0_1_1 channel ORA_DISK_1: piece handle=/home/oracle/app/oracle/admin/orcl/0qmtger0_1_1 tag=tag20111206t033455 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:35 Finished restore at 06-DEC-11 RMAN> recover database; Starting recover at 06-DEC-11 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 06-DEC-11 25

RMAN> sql 'alter database open'; sql statement: alter database open RMAN> exit Recovery Manager complete. [oracle@localhost orcl]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Dec 6 05:03:16 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select open_mode, name from v$database; OPEN_MODE NAME -------------------- --------- READ WRITE ORCL Eğer sadece bir veri dosyası kaybetmiş olsaydık, tüm veritabanını geri dönmek yerine sadece kaybolan veri dosyasını da dönebilirdik. Böyle bir durumda restore datafile <datafile_name> <datafile_number> komutunu kullanabilirdik. Hatta bunun için veritabanını kapatmak zorunda bile olmazdık. Şöyle ki; SQL> select name from v$tablespace; NAME ------------------------------ SYSTEM SYSAUX UNDOTBS1 USERS TEMP EXAMPLE APEX_1246426611663638 APEX_1265209995679366 8 rows selected. SQL> select name from v$datafile; 26

NAME ------------------------------------------------------------------------------ -- /home/oracle/app/oracle/oradata/orcl/system01.dbf /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf /home/oracle/app/oracle/oradata/orcl/users01.dbf /home/oracle/app/oracle/oradata/orcl/example01.dbf /home/oracle/app/oracle/oradata/orcl/apex_1246426611663638.dbf /home/oracle/app/oracle/oradata/orcl/apex_1265209995679366.dbf 7 rows selected. SQL> alter tablespace example offline; Tablespace altered. RMAN> restore datafile '/home/oracle/app/oracle/oradata/orcl/example01.dbf'; Starting restore at 06-DEC-11 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=9 device type=disk channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00005 to /home/oracle/app/oracle/oradata/orcl/example01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/app/oracle/admin/orcl/0qmtger0_1_1 channel ORA_DISK_1: piece handle=/home/oracle/app/oracle/admin/orcl/0qmtger0_1_1 tag=tag20111206t033455 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 Finished restore at 06-DEC-11 RMAN> recover datafile '/home/oracle/app/oracle/oradata/orcl/example01.dbf'; Starting recover at 06-DEC-11 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 398 is already on disk as file /home/oracle/app/oracle/admin/orcl/archive/1_398_701609923.dbf archived log for thread 1 with sequence 1 is already on disk as file /home/oracle/app/oracle/admin/orcl/archive/1_1_769154109.dbf 27

archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_398_701609923.dbf thread=1 sequence=398 archived log file name=/home/oracle/app/oracle/admin/orcl/archive/1_1_769154109.dbf thread=1 sequence=1 media recovery complete, elapsed time: 00:00:00 Finished recover at 06-DEC-11 SQL> alter tablespace example online; Tablespace altered. Diğer yandan her zaman veritabanının kapanmadan önceki son anına dönmek istemeyiz. Örneğin kullanıcı veya otomasyon kaynaklı hatalarda muhtemel yanlış veri girişi veya silinmesi söz konusu olabilir. Böyle durumlarda hatanın oluşmadan önceki haline geri dönmek isteyebiliriz. Bunun için de restore database until time <date> ve recover database until time <date> komutunu vererek zaman içerisindeki daha önceki bir duruma geri dönebiliriz (restore point in time). Burada dikkat edilmesi gereken bir durum, veritabanını açarken resetlogs opsiyonu ile açmanız gerektiğidir. Sebebi ise oldukça basit, geri dönüşünü gercekleştirdiğimiz veritabanı aslında bir önceki veritabanından farklı bir veritabanı, eğer aynı veritabanı olsaydı veritabanı kapanmadan hemen önceki halinde olması gerekirdi. Dolayısıyla aynı veritabanının farklı bir haliyle çalışmaya başlıyoruz (incarnation). RMAN> restore database until time "to_date('2011-12-06:13:00:00','yyyy-mm- DD:HH24:MI:SS')"; Starting restore at 06-DEC-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /home/oracle/app/oracle/oradata/orcl/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /home/oracle/app/oracle/oradata/orcl/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /home/oracle/app/oracle/oradata/orcl/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /home/oracle/app/oracle/oradata/orcl/users01.dbf 28