1. RECOVERY MANAGER (RMAN)
RMAN günümüz oracle teknolojisinde backup / recovery gibi işlemleri basitleştirmek için hazırlanmış
kullanışlı bir programdır.Bir çok media / Backup yazılımı üreten firma RMAN’e destek vermektedir.Bu
destek sayesinde bazı işlemler alabildiğine kolay yapılabilmektedir.
Rman command line tabanlı bir yazılımdır,Enterprise Manager ile de grafik arayüzlü bir sistem ilede
RMAN’in yönetimi ve konfigürasyonu yapılmaktadır.RMAN Oracle’ın 8i sürümünden sonra sisteme
entegre edilmiştir.
RMAN’in şu avantajları vardır.
•
Database ‘de sık kullanılan operasyon scriptleri depolanabilmektedir
•
Incremental yapıda bir backuplama sistemi kullanılarak en son yapılan backuptan sonra değişmiş
verilerin backuplaması yapılabilmektedir.Tabii ki bu işlem için sistemin Archive moda olması
gerekmektedir.
•
RMAN sayesinde backup parçalarının size’ı ve saklanma zamanı backup operasyonu ile beraber
yönetilmektedir.
•
RMAN işletim sisteminin Schedule mekanizması ile entegre edilip backuplamanın otomatik hale
getirilmesi sağlanabilmektedir.
•
RMAN
backuplama
aşamasında
corrupt
olmuş
data
bloklarını
tespit
etmektedir.
V$BACKUP_CORRUPTION ve V$COPY_CORRUPTION viewlarına bakılarak bu bilgi alınabilir.
•
RMAN backup ,recover ve restore işlemlerini paralel olarak yönetebilmektedir.
•
Online database backup aşamasında extra redo log datası üretilmemektedir.
•
OLTP işlemlerinde backuplama işlemi kısıtlı olarak yapılıp yavaşlamanın önüne geçilebilir.
•
RMAN ile dosyların Tape e yaılma aşamasında kontrol ile taşmanın önüne geçilebilir.
RMAN REPOSITORY(DEPO):CONTROL FILE KULLANIMI ILE
CONTROL_FILE_RECORD_KEEP_TIME parametresi ile rman kayıtlarının ne kadar süre muhafaza
edileceğinin bilgisi tutulur,RMAN repository target yani hedef database’in control file’ında tutulur.
Kontrol file büyüyebilir.Rman depolanmış RMAN scriptlerini kullanamaz.
KANAL İŞLEMLERİ
2. Manuel Kanal ayırma işleminde,
•
Backup ,recovery ve restore işlemleri için en az bir kanal gerekldir.
•
Alocating channel komutu hedef database de bir server prosesi başlatır.
•
Kalanlar paralelizm’in derecesini etkiler.
•
Kanallar farklı media tiplerine yazılabilmektedir.
•
Kanallar limit koymada kullanılabilir.
RMAN> RUN {
ALLOCATE CHANNEL c1 TYPE disk
FORMAT = ’/db01/BACKUP/usr0520.bak’;
BACKUP DATAFILE ’/db01/ORADATA/users01.dbf’;}
RUN {
ALLOCATE CHANNEL c1 TYPE disk
FORMAT = ’d:emrah.bak’;
BACKUP DATAFILE 1;}
V$BACKUP_DEVICE viewı kullanılarak supported olan media tipleri görülebilir.
Read rate: Her saniye okunan bufferların sayısıdır
allocate channel … rate = integer
3. allocate channel … maxpiecesize = integer ile ise backup parçalarının boyutları ayarlanabilir.
ALLOCATE CHANNEL … MAXOPENFILE = integer komutu ile large backup esnasında açık olan
dosyların sayısını belirlemede kullanılır.
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk; bu komut DELETE komutu için
channel alocate eder.Çünkü ilgili herhangi bir dosya diskten silinecektir. MAINTENANCE DEVICE lar
Diskte diğer I / O operasyonları için kullanılazmlar sadece backup ve copy için kullanılır.
RMAN> RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE disk
FORMAT = ’/db01/BACKUP/%U’;
BACKUP DATAFILE ’/…/u03/users01.dbf’;}
Bu örnekte d1 isimli bir kanal ayarlanır,format olarak %U kullanılır ve yalnızca tek bir tablespace in
backupı alınır.
Otomatik Kanal ayırma işleminde,
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; // bu komutla defaul device mızı tape driver
olarak belirliyoruz.
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3; // default deviceımızı disk olarak belirleyip
paralel mantığı oluşturulmaktadır.
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
FORMAT = ‘/BACKUP/RMAN/%U'; // default device ‘ı disk verip formatlama yapıyoruz.
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
MAXPIECESIZE 2G; // Max backup parça büyüklüğünü 2 Gb verip kanal olarak disk kullanıyoruz.
Bir kanal RMAN tarafından otomatik olarak alocate edildiyse ismi şu şekilde olacaktır.
ora_devicetype_n (ora_sbt_tape_n or ora_disk_n).
Media Management
4. Oracle’ın third party devicelarla haberleşmesi için MML dediğimiz media managemnt library lere ihtiyaç
duymaktadır.Oracle Backup solution programa aktif olarak dahil olan Vendorların cihazları sistemde
güncel olarak kullanılabilmektedir.
RMAN ile ilgili library i iletişim olarak aktif hale getirmek için şu adımlar uygulanır.
1-)İlgili media management library target hotsa yada ürün network’üne yüklenir.Bu aşamada RMAN
entegrasyonu gerekli değildir.
2-)Hangi dosyların backubı alınacak karar verilir.İşletim sistemi dosyalrının backup’ı alınmayacağından
emin olunur.
3-)Third party media managemnt modüle sistemem yüklenir.ve Oracle Server ile entegre olması sağlanır.
Kullanımı ise şu şekilde olacaktır.
RMAN > run {
# Allocating a channel of type ’sbt_tape’ for serial device
ALLOCATE CHANNEL ch1 DEVICE TYPE ‘sbt_tape’;
BACKUP DATAFILE 3;
}
RMAN BAĞLANTISI
RMAN bağlantısı 3 değişik şekilde olmaktadır.
5. -Target Database : Datafile,control file ve loglarımızın durduğu ana database’dir.Buraya başlanabilmek
için kesinlikle sysdba olmak gerekmekedir.
-Recovery Katalog DB : Burada opsiyonal olarak RMAN ile yaptığımız işlemleri depolayan db dir.
-Auxiliary database : Kurtarma anında geçici olarak dataları saklayan db dir.
UNIX:
$ ORACLE_SID=DB01; export ORACLE_SID
$ rman target sys/change_on_install
NT:
C:> set ORACLE_SID=DB01
C:> rman target sys/change_on_install
Bağlantı işlemi yukarıda görüldüğü gibi olmaktadır.
C:> rman target sys/change_on_install@DB01 ;Uzaktaki bir sisteme bağlanmak için kullanılır.
6. Burada bilinmesi gereken en önemli konu Channel(Kanal) dır.Channel sabit disk olabileceği gibi bir tape
ünitesi de olabilir.Ama bu tape ünitesi için ilgili üretici firmanın library lerinin kullaıması gerekebilir.Onun
için Server session ile Tape arasında MML(Media management library) olması gerekmektedir.Kanal
bağlantısı aşağıdaki gibi ayarlanmalıdır.
RMAN> RUN {
ALLOCATE CHANNEL c1 TYPE disk
FORMAT = ’/db01/BACKUP/usr0520.bak’;
BACKUP DATAFILE ’/db01/ORADATA/users01.dbf’;}
Yukarıdaki örnekte görüldüğü gibi ALLOCATE CHANNEL diyerek bir kanal oluşturabiliriz.
RMAN> RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE disk
FORMAT = ’/db01/BACKUP/%U’;
BACKUP DATAFILE ’/…/u03/users01.dbf’;}
Yukarıdaki örnektede belli formatta bir alan vererk ve disk channelinını kullanarak bir rman scipti
oluşturduk.
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; bu komutla default bir device kanalı oluşturduk.
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3; Paralelizm oluşturarak birden fazla
makineyı seferber etmiş oluruz.
7. RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
FORMAT = ‘/BACKUP/RMAN/%U';
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
MAXPIECESIZE 2G;Bu Komutla max parça sayısını sınırlandırabiliyoruz.
RMAN MODLARI
2 türlü recovery modu bulunmaktadır,interactive ve batch mode.
İnteractive modda işlemler adım adım komutlarla yapılmaktadır.
$ rman target sys/sys_pwd@db1
RMAN> BACKUP DATABASE;
Batch modda ise işlemler scriptlerle birer job haline getirilerek yapılmakatdır.
$ rman target / @tbsbk.rcv log tbs.log
RMAN KOMUTLARI
RMAN> STARTUP MOUNT ; Database mount moda alınır
RMAN> SHUTDOWN IMMEDIATE ; Database kapatılır
RMAN> REPORT SCHEMA; Bağlanılan kullanıcının tüm scheması hakkında bilgi alınır.
8. RMAN-03022: compiling command: report
Report of database schema
File K-bytes Tablespace RB Name
---- -------- ---------- --- ----------------1 117760 SYSTEM *** …/ORADATA/u01/system_01.dbf
2 30720 UNDO1 *** …/ORADATA/u02/undotbs.dbf
3 5120 USERS *** …/ORADATA/u04/users_01.dbf
4 5120 INDX *** …/ORADATA/u03/indx_01.dbf
5 5120 SAMPLE *** …/ORADATA/u02/sample_01.dbf
6 1024 QUERY_DATA *** …/ORADATA/u01/query_01.dbf
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
’/db01/BACKUP/%U’; Otomatik olarak bir kanal oluşturlur.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY
WINDOW OF 7 days; Belli kural koyulup recover için 7 gün saklanır.
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;//verilen değer backup setinin
saklanmıyacağını gösterir.
RMAN> SHOW ALL; diyerek Tüm settingsleri görebiliriz.
SHOW
SHOW
SHOW
SHOW
SHOW
SHOW
SHOW
CHANNEL;
DEVICE TYPE;
DEFAULT DEVICE TYPE;
RETENTION POLICY;
DATAFILE BACKUP COPIES;
MAXSETSIZE;
BACKUP OPTIMIZATION;
RMAN> LIST BACKUP OF DATABASE; Database’in tüm backup setlerini görmeye yarar.
RMAN> LIST BACKUP OF DATAFILE
“/db01/ORADATA/u03/users01.dbf”; İlgili Datafile’ın backup listesini verir.
RMAN> LIST COPY OF TABLESPACE “SYSTEM”; System Tablespace’inin tüm kopyalarını listeler.
RMAN> REPORT SCHEMA; Bağlanılan kullanıcının schemanın durumu hakkında ayrıntılı bilgi verir.
9. RMAN > REPORT NEED BACKUP days 3 tablespace system; 3 Gündür backup alınamıyan sistem
filelarının durumunu gösterir.
RMAN > REPORT NEED BACKUP incremental 3 database; bu komut 3 yada daha fazla incremental
backup setine ihtiyaç duyan recovery setini gösterir.
RMAN PACKAGES
Yukarıda şekilde gösterilen package örnekleri ile sistemin kullandığı SQL cümleleri görülebilir.
USER MANAGED BACKUPS
Backup ve Recovery İşletim sistemi ve SQL PLUS komutlarıyla yapılmaktadır.
İhtiyaç olan dosyaları V$DATAFILE, V$CONTROLFILE, V$LOGFILE ile görebiliriz.Daha sonra
database’in kapatılıp bu dosyaların ilgili lokasyonlara yedeğinin alınması gerekir.
10. SQL> SELECT name, status FROM v$datafile;
NAME STATUS
------------------------------------------- -----/databases/db01/ORADATA/u01/system01.dbf SYSTEM
/databases/db01/ORADATA/u02/undotbs.dbf ONLINE
/databases/db01/ORADATA/u04/users01.dbf ONLINE
/databases/db01/ORADATA/u03/indx01.dbf ONLINE
/databases/db01/ORADATA/u02/sample01.dbf ONLINE
/databases/db01/ORADATA/u01/querydata01.dbf ONLINE
SQL> SELECT name FROM v$controlfile;
NAME
-------------------------------------------/databases/db01/ORADATA/u01/ctrl01.ctl
/databases/db01/ORADATA/u01/ctrl02.ctl
SQL> SELECT member FROM v$logfile;
MEMBER
---------------------------------------------/databases/db01/ORADATA/u03/log01a.rdo
/databases/db01/ORADATA/u03/log02a.rdo
/databases/db01/ORADATA/u04/log01b.rdo
/databases/db01/ORADATA/u04/log02b.rdo
SQL> SELECT t.name tablespace, f.name datafile
2> FROM v$tablespace t, v$datafile f
3> WHERE t.ts# = f.ts#
4> ORDER BY t.name;
TABLESPACE DATAFILE
---------- -------------------------------------------------INDX /databases/db01/ORADATA/u03/indx01.dbf
QUERY_DATA /databases/db01/ORADATA/u01/querydata01.dbf
SAMPLE /databases/db01/ORADATA/u02/sample01.dbf
SYSTEM /databases/db01/ORADATA/u01/system01.dbf
UNDOTBS /databases/db01/ORADATA/u02/undotbs.dbf
USERS /databases/db01/ORADATA/u04/users01.dbf
11. BACKUP METODLARI
İki Türlü Backup metodu vardır,Open Backup yada Close Backup.
Close Backupta,Datafilelar,Control Filelar,Redolog filelar,Parameter file ve varsa password filların yedeği
alınmalıdır.
Dikkat edilmesi gerek Database’i kaparken tam kapanıp kapanmadığı kontrol edilmelidir.Eğer düzgün
kapanmadıysa düzgün bir şekilde kapatılıp backup’a başlanmalıdır.
12. Kapalı backup almanın dezavantajları vardır,örneğin çalışılan bir sistemi kapatmak insanların çalışmalarını
engelliyebilir yada kapanan bir sistemin tekrar açılıp açılmayacağı meçhuldür.Bunlardan ötürü aslında
kapalı backup almak çoğu zaman önerilmez.
Close Backup şu şekilde tarif edilebilir.
Open Backup biraz daha kompextir ama daha kullanışlıdır,
Online backupta tablesapce lerin backupı online veya offline olarak alınabilir.
Control file ‘ın ise normal binary olarak yada recreate scripti kullanılarak backup’ı alınabilir.
13. Open backup’ın en büyük avantajı database’in kapalı olmayıp iş sisteminin halen devam ediyor
olmasıdır.Database arşiv modda olmalıdır,redologların doğru olarak arşivlendiğinden emin
olunmalıdır.ARCn prosesininde doğru olarak çalışıp çalışmadığından emin olunulunmalıdır.
Open Backupta close dan farklı oalrak online archive dosyalarınında yedeğini almamız gerekir.
Daha sonra ilgili tablesapce leri backup moduna alıp backup’a başlıyabiliriz.Sistem hiçbir şekilde
kapatılmayacak böylece istemciler çalışmalarına devam edebileceklerdir.
14. Backup şu adımlarla yürümektedir.
1-) SQL> ALTER TABLESPACE users BEGIN BACKUP; örneğin users tablespace ini yedeğini alacağız
ilk önce users tablespace’ini backup moduna alıyoruz.
2-)Daha sonra bu tablespaceleri ilgili lokasyonlara kopyalıyoruz.
UNIX:
cp /ORADATA/u03/users01.dbf /BACKUP/users01.dbf
WINDOWS:
copy c:usersdisk1user01.ora e:usersbackupuser01.ora
3-)Tablespace’in backup modunu kapatıyoruz.
SQL> ALTER TABLESPACE users END BACKUP;
15. 4-)Sistem backup modunda olduğu için sistemin Archive’lere ihtiyacı olabileceğinden aşağıdaki komut
yazılır.Yani sistmem backup modundayken redologlara yazılan bilgilerin arşiv dosyalarına yazılması
sağlanır.
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
5-) SQL> ALTER DATABASE OPEN;
Bu işlemlerin hepsini tüm tablespcae ler için yapmak gereklidir.
SQL> SELECT * FROM v$backup;
ile hangi tablespacelerin backup modunda olup olmadığını görebiliriz.
Alter tablespace xxx begin backup dediğimizde ilgili datafile backup moduna geçip statü olarak active
olacaktır.Backup tamamlandığında ise ilgili tablespace not active moduna geçecektir.
FILE# STATUS CHANGE# TIME
------- ------------------ ------- -------1 NOT ACTIVE 0
2 ACTIVE 228596 30-NOV-01
3 NOT ACTIVE 0
4 NOT ACTIVE 0
File olarak 1,2 ne analama geldiğini aşağıdaki sorguyu çalıştırarakta görebiliriz. Alter tablespace xxx begin
backup dediğimizde ilgili tablespace için sorguda fuzzy alanı YES olacaktır.backup tamamlanıp end
backup komutu verdiğimizde ise fuzzy alanı boş kalacaktır.
SQL> SELECT name, status, fuzzy FROM v$datafile_header;
NAME STATUS FUZ
-------------------------------- ------ --/…/u01/system01.dbf ONLINE
/…/u02/undotbs.dbf ONLINE
/…/u03/users01.dbf ONLINE YES
Backup esnasında bir hata oluşursa yani eliktirk kesintisi olmuş olabilir,makineda başka bir sorun olmuş
olabilir,kopyalama sırasında başka bir sorun olmuş olabilir bu durumlarda şu şekilde davranmalıyız,
16. •
Backup file kullanılamaz durumda olabilir,bu durumda ilgili tablespace’i tekrar backuplamalıyız.
•
Database açılmayacak çünkü,Oracle Server Database file ların bir restore edildiğini düşünecek.
Bu durumda ,
SQL> SELECT * FROM v$backup;
FILE# STATUS CHANGE# TIME
------- ------------------ ------- -------1 NOT ACTIVE 0
2 ACTIVE 228596 30-NOV-01
3 NOT ACTIVE 0
4 NOT ACTIVE 0
Hangi datafile’ın backup modunda olduğu anlaşılır,daha sonra
SQL> ALTER DATABASE datafile 2 END BACKUP;
İlgili datafile backup modundan çıkarılır.Daha sonra,
SQL> ALTER DATABASE END BACKUP;Bu şekildede kullan ı labilir.
SQL> ALTER DATABASE OPEN;
İle database açılır.
READ ONLY TABLESPACE BACKUP
17. 1-) SQL> ALTER TABLESPACE query_data READ ONLY; komutu ile ilgili datafile offline moda alınır.
2-) Alter tablespace komutu gerçekleştiği için check point ilgili datafile ları tablespace lerle birleştirmek
isteyecektir.
3-) Bir tablespace’i offline yaptığımızda bütün datafile ların backup’ını almalıyız.
4-) DBW0 prosesi hangi datafile read-write modunda ise ona yazma işlemini gerçekleştitirir.
LOGGING OR NO LOGGING
SQL> ALTER DATABASE END BACKUP; diyerek tüm database’i backup modundan çıkarmak
mümkündür.
CONTROL FILE BACKUP
SQL > ALTER DATABASE BACKUP CONTROLFILE TO
‘control1.bkp`; yada,
18. SQL > ALTER DATABASE BACKUP CONTROLFILE TO TRACE; ile control filerın backup ı alınabilir.
Aşağıdaki komutlar database üzerinde yapılan değişiklikleri control file lara yansıtırlar,bu yüzden
aşağıdaki komutlardan önce ve sonra control file’ın backup ı alınmalıdır.
• ALTER DATABASE [ADD | DROP] LOGFILE
• ALTER DATABASE [ADD | DROP] LOGFILE MEMBER
• ALTER DATABASE [ADD | DROP ] LOGFILE GROUP
• ALTER DATABASE [ NOARCHIVELOG | ARCHIVELOG ]
• ALTER DATABASE RENAME FILE
• CREATE TABLESPACE
• ALTER TABLESPACE [ADD | RENAME ] DATAFILE
• ALTER TABLESPACE [READ WRITE | READ ONLY ]
• DROP TABLESPACE
PARAMETRE FILE BACKUP
SQL > CREATE PFILE FROM SPFILE; yada
SQL > CREATE SPFILE FROM PFILE; yada
SQL > CREATE PFILE = ‘/backup/init.ora’
FROM SPFILE;
DBVERIFY
Backup yada Recover yapmadan önce bir Datafile ın düzügün olup olmadığını kontrol edebiliriz.
19. COMMAND > dbv file=C:oracleproduct10.2.0oradataYAZILIMVOLKAN02.DBF logfile=dbvolkan.log
yada
COMMAND > dbv /ORADATA/u03/users01.dbf start=1 end=500 ile 1 ile 500 .cü bloklar arası kontrol
edilebilir.
DBVERIFY - Verification starting : FILE =
/ORADATA/u03/users_01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 500
Total Pages Processed (Data): 22
Total Pages Failing (Data): 0
Total Pages Processed(Index): 16
Total Pages Failing(Index): 0
Total Pages Empty : 0
Total Pages Marked Corrupt: 0
Total Pages Influx: 0