Recovery Manager (RMAN)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Recovery Manager (RMAN)

on

  • 403 views

 

Statistics

Views

Total Views
403
Views on SlideShare
370
Embed Views
33

Actions

Likes
0
Downloads
6
Comments
0

3 Embeds 33

http://www.linkedin.com 24
https://www.linkedin.com 5
http://anargodjaev.wordpress.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Recovery Manager (RMAN) Document Transcript

  • 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